From 7ccc5fef3b61c19737bcdd5bca54f8504a799ba2 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 29 Sep 2018 16:43:16 +0200 Subject: [PATCH 01/98] Update README.md --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bffc977..30270b0 100644 --- a/README.md +++ b/README.md @@ -349,7 +349,7 @@ Amis Delta Dex Experimental Developments - [https://amisolution.github.io/dubiex/ui](https://amisolution.github.io/dubiex/ui/) - [https://amisolution.github.io/amisdeltadex/](https://amisolution.github.io/amisdeltadex/) - [amisdex https://ami-solution.github.io/amisdex/](https://ami-solution.github.io/amisdex/) -- [smartdex 0x relay](https://amis-erc20.github.io/smartdex/) +- [smartdex 0x relay UI works with conduit API](https://amis-erc20.github.io/smartdex/) - [0x relay with KYC/AML](https://amis-erc20.github.io/ERC20-Exchange-based-on-0x/public/) - [0x relay dex](https://amis-erc20.github.io/dex/) - [amis 0x relay dex](https://amis-erc20.github.io/amis-0x/) @@ -357,13 +357,16 @@ Amis Delta Dex Experimental Developments - [ethexchange dex](https://amis-erc20.github.io/ethexchange/) - [netherdelta dex](https://amis-erc20.github.io/netherdelta/) - [ED exchange on testnet https://ether-dex.github.io/edx/?network=testnet/](https://ether-dex.github.io/edx/?network=testnet/) -- [](https://amis-erc20.github.io/0xygen-Relay/packages/frontend/public) +- [0x relay API 1](https://amis-erc20.github.io/0xygen-Relay/packages/frontend/public) +- [0x relay API 2](https://amis-erc20.github.io/conduit) +- [Amis Line Mobile Wallet](https://impartial-ellipse.glitch.me/) ## Wallet On Ethereum, one can easily create a wallet to store, send and receive AMIS: - Metamask AMIS integration only supported manually (Metamask integration underway) - [MEW AMIS Integration completed](https://github.com/amisolution/ERC20-AMIS/wiki) (AMIS tokens added automatically) - [TrustWallet AMIS integration completed](https://github.com/TrustWallet/trust-api/commit/65cec408b22bec82d17260a628a851c7e7afb840) +- [Amis Line Mobile Wallet](https://impartial-ellipse.glitch.me/) On BitShares use one of the following: - [https://openledger.io/wallet?r=openledger-wallet-amis](https://openledger.io/wallet?r=openledger-wallet-amis) From 35542896983953d8e748335932a194c50fca60ed Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 11 Oct 2018 09:42:23 +0200 Subject: [PATCH 02/98] Add files via upload --- images/Amis-token-holdings1.png | Bin 0 -> 76305 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/Amis-token-holdings1.png diff --git a/images/Amis-token-holdings1.png b/images/Amis-token-holdings1.png new file mode 100644 index 0000000000000000000000000000000000000000..84937e4714c09e2066e6e73947b658860454f13a GIT binary patch literal 76305 zcmeFYcT`hdw?3*Mf`T9-pwbjnRGNYm2_zyaDpir*yGWDX0>OePRi%Rvl_p(kKp+8W z(n9Yg^w0wYNJ84(yuR;uzVF;K?tgcTbMN>q2JD2Lz4w}P&GO7=&AivqQaf?{-0?$) z4xM=T;O>({hZr%34lxL@FaZC_Z!uZ}4u?ITsNFeKgyvrc-W+jI(NsBfs3eA!V#Nf! zKlb8*k>{a9?2QM%hg;pg+a5YZ&w6-Q<*A?f8ueJM-JthW#C~1sNC|cRa#Y{cMf9%b zszRIhSn7mA(5zh4rF@)ATjjZq=yRYE-VVcWV#h9iIMn;}!eNH@<_s^t+-CX~yA;?f zl9Kl=CxjvIB>|2{4f!sb2g0B0SjA_Os0nXd6@>>--iwk4i-ULbEvPF7sD0pNP%N*_o|ZPY+jVS0bo<}W>^db{ zu#JOmq`8gNlHQwv65af)&n^GC>hBvMO{DH`2&AFUc8NA))+($d`~LIZycQahpqpuK zQ?+(aM*ri~uG6qN+tfH5jc}b*yt?`ycipe(kg~_EYh$&Q24T$Q|C;K-Lj!sbPH7xW zchF59_usBtvZhR-y^u3)j$IzZKbZv;Dc`m0<|c77zg}t``A6cv=U(Z4BiPMJ5tG~P zNSgnshJ)3&B7?`*O%=if{CDndcA5DGtyDmet@mQ5U0+Q4PvpbacHuugC6Sx^DXL93jOuO0*1kyKCc`fzbvB_-XNL zbd`6?dsXlyqrP<0_f%5|{{AuS|6ff}~9!{hJYvOgLv zt;dGHt2^RcK~=Hiedp^MSaX{qoSr2F)u+s++2u6VbT#~KK;u;u*;CP^`-4y%KQh*3b#{D(sJX#p4jTUojSxV6>^5Bht!}yy?^Pq;(_|bb z?BUJrqn|Eyb=o|A8>#rQDc9g;&Fxyx@o}bE-Ys#^C7PrHF~TjO>QA}S& z`I<%<*qz;B*1S()g}D`+3qJa6U!3~1KD?MdaPO+Nk^whcsv}4Pv++wlZ(kr^qkayu z8;!|t?|5wUVn)8~+L^`0OYX?QTY4GrCa19C?WlfYAEG-&dZfi62cH!ht?am58UV>fq)za3Rd&e!w$F(w zK(aP<@Y^P@uQO~#_$35y8f^iRyLG=-8~S_gy>7e&3>N+!;jX#3ZOSz&ZE*IvMNlMt z(C2vZR`oDihCi`kzoK;#+=6xL@B)Kw#;B5-dG&L=49_jZh`HdDTw}7kN6KhQJq7W3 zTkT%pR0)V#c?PA^w;~z$1S)FsC?4lv^IY7KsaXp1j2T80G|fAeLpqbAO36Eme4XGY zr-Lk$OPQ&0tkEHDObz`^Uf^+w(V2@1rsxNenn~$qDOh5t;EjRGAXBHsb5GRet*-c< zbWCt^onx@8$@hrj(2QP|{cT=Lvd2~;SpPQgW~nJ7q%wz~(O=P~UV4<5ZFJ%J)aoaL246o#xO%Sy}+luzRe;?B4F&4bZr4wkp2Ri;}KP)&KbvjAJv<{gmDzu9(bbzo+x4y)sc>v@f_! zidWuYIYfqR>ZO@r!*@cW@D8t7j;Mf8F6nA!50mbLum9#i)akNWUYs~4ojIo9PZ+IO z0=#F@Efidlf#Oy?+wQ4p8zFUn{a)ENyC$|{0Ii8_l&$@0myLgNt#PNwZ@u;=zg(wp ztCgvsBvO4rHgia7m{{mVyl;q+O?PwbfCi>gC9BFO))0Nr?sO<#5Y=1>sQ6VhCaB*t z`JUsHU}e*|8+PIOPt9VV$wiZ3BPU1O;^FhDbqE>VJJqqRf*&;{Gd?RXvwtqC_O@9s zI*A+D^9d#1Q&NWzBY{JQ)_dQ?*DuHWh&9#$fzpPnjT-vIFrE$4+I;?0K@_5H7|pAJHP!6STHgwCqL|0$L;KrD zR^)3(6W??+BL{)Qpap<8YyWx1@pN5#Q3 z61CGcmEIwd(jT8s>P+~i-RRT2_=r!Gw+a zPC1X&l)xINCQwD4*@ZtsiU5ag7yr$_7p#<*i&&ZMx!J^ys?M^AkV4)Hl82c*&)NHT zq~U`9lehix(Maf2ap-U}W)Q`qXHlQ(|FZDk(|?C~BxXDrtpX#}T7WzysIdXn`_KMP zjR$z9qLH_Zu$O}`G(l*!AE2AR{q*4F`gX)7CU=6}OF2=mAZ04zl~$h%B!p*Au9 z@$g+IW~sO9Y3b;?yCwWusvP`}TGmdU5s-5p*=*v{RwB*EYU??#EiH{?O|uqiV+H;U(2;CUHBb9@ zIb!L{|HC0UjjhNg6u1A2YJYCqNPAN~B}YHbLkW zCKy^<8GV$jPu+CVr}Q}K*Uk?%hSF7w&9~-I?!UXKy$&2iie2KQ2mI1>^}yc?1vPoO z44rF<@}E)4AbA2})v!Rnt~Yt1dEw||7S&s#m>^;da<36WY^NgW++=F5#T1rK$fIJ5 zQ^p8^7Rc@xR@-YGwA7tCME?cHj97ez3ww%=XBOI2?*Y?B>8 zp)MNO*WWTS=2BbOfteJEAa|(6BRDnlGHYoU)by&FdCe;oIxm4X@#D7IU!zrsRj}Hp z>(*>(O;``RO=~uO7rRcFvK;hQ^)mQY@T03`oZFevn@mna1b@*LccpfTSJ_m#4t6ql zCwdy%k7MRHe7^Jd+IssaMU=Fn-NN)cAi|9HZarEPZ~;doS5gfpE24BA?*>z(JK#)6 z2ZE?CUS4yfS>LATqXIS?wc}9X1OG@A;;?~q_7*@()w(yH9J5-h_cFi#F>5B1{W3`Y z-8##oaTlM-B1?arpO`$o{)e8&B1~XhtQ%+AD|uWU)%0nXeG#e)v2elL$>>y_Np$}c;gGbTAu&K_?X&Ty+08R3Ho8FD3w9#d($QYl4+UMQbsU`|?yV&)Sx2gRtb9qO! zp*@0W_q+O~ir(*qZ)^v}t1M(8){$}z7s^fj8KZCVO13(`@^U1fcz=%|3VOgYI6XW; zsXMPERPc(cHz$;*{@#3A-o%Ely%$Vw;+fhNcgVa|9h0>fHV%8GMu|hVtmK z(N>lznEcCjw#-6E%h1u^6xNx$E9b#7X~nexxs9f6X^Cl`=+Hz{58CwvxF_vWqNyMH zmQ&H>R${BqQV_PwP(~)MT=mgWgq$HOSK4q(a+{Q%?DvKnV{&IgS;p$3ZugeEG|A*A z8=fgNSCs#hY<9C`g=g}I;hfwvA8<3Yp=zaXrJ0YnkXH5aDGzM4P+ZbY#p}2H6=jFs zod_cVB4EnqvqZWaNrS4twf9p}%#)3(P)rVll^4c)g|% zn~m=!>1$)Zu?ftv-E2@udfN6*@r&(~!)32OJ;RsT);l}D?=4U`!V{@}PfkTo!nKmI z*Dhw_;(hn4{6CheSSvx6K0+ex$JJ$JQtS{4E7;0XC@Ey7QcEYG`%P=#7M-&k`$=*I zCr21}^SjpdGNrPYEhRX1s7vm0m%9C{PbsphQ41F``mwEEudwEU*dOtKVm?mcfDExEMadRKYi~03_nE>^UHRGE<#YZg@%M@FfV?aB%4$?AUQ}_F zkxy1I&n+6tWt@FzrWAEG*~E6D{nz%|7+SnsWzmzrhK&nT3tj;lXc#Z3$mc3}&7~cVojTOuhyT#yE(e86RXWU8aPIL+% z2j#1QHjK@0nU9_Sv?sBdBY3a4ZhcM)gUjU3G545>!uZ+uzrxt~Pj89B@V`CH_un#3 zd2I5&?TMbjLj3ORZE^&YH!qC+vG8wJ!8}qj1a_+a(v#;iUgl&C$adDZ;0Y2M^<2`t z-Yry8W}9tBPM@LzlF7|%{N#5TqIz_|Ty<^*F_~n-%cg$mMwDC)KPc`4?bp(p{c-jF zY$HA~+K0TP^+PP;Bd*tTv=LeH_BTZwc_olz_e_iokw+fcGcu0pGtD?Y{=DUU$%L9U z{e-brMc(E3l{2a0^_{_~E2oAn25QYN^QAb-svfx)`{3S6j^T(K)&E2CGG)SPgQ8nJ z;#=*TUi)K}Y*B*21h-l>GL#Y5?#TyZq_i=UG*OGnZkzzZUZ-<5%T4ix@KnogWAP|G z*CAVoYZtetw3kCrus>f$^hLomOu%>l#BcMPaW4ZYZ|)XZJ@Ngq_q@ej=kj)DOIzR; zKtznn`<3K)>MTZD+KXS6=?-zfW^^ip-{D(wNmg%Um;E-E`@N`z{_FOoc2P`ar)HWT z=a+?!c{?izrHyyK507C2uaW_!QvZo=MUy0X=XhQzrquF2bn zkMK;~>fzUov~!8L^tk_G!+lxL9DBLj9&fv?OEJchm6Nrcm80b;J4|x084D4^y$x&;KLI?yb{7wesA%Z z#1|IiPPNf?ohpr2pogB{?RgtzFoE22*xP3tg-@;?QD?|MTFQbb4z#UF`5U8|D0vbV zoQ6z;31h2L#-5`RAad&+6k|3X{MmPnW|)GeZ-6)gt%P1|fUJU-2F1)@1$Bi(=-Dy* zt{(JHoO_zg5`L`2>@E{Q*h;cc(B!LOw8i!cH;n4SoME()pLQocMybS|MVU^y;Z!u& zhgvN1wzU9!B=e;nqtTl%_(+wR<{zNuD_VIY4FOeHe9zQcH&~E8ZoOqrAIwGNrM_LH%o*6lxu55Huf$ z+N+GAF9Fb72t_+aVRfxC8NCCgBEzPrMgKG<|(U{-r9elVC;2B8m#8T5>PmRh zZVb^|tok{uoWF|WpfeD*9@Nfa3_FE{g%M@Rkp211b0pX#*^^b&posnh>;C*rP%RD6 zzvA5XxS+rFoJ?xvgct5LPKhEuXHmOdsiHhPB0J3G;9++cNty~fQy>JTpjGX`W&yBE^2LmwkT zV~}iF0u0O;WuH^EOH-pEEXK$OV1r)S{a*DMPb98G6U#<5m;eV)tO{SzZM?qXP`cp_PahKDQ7|4@)^%_H^hzV2`t!LZGyP?sZvwFd9<&1@^?&G_aK3@99|InDpAbAj0byE_zw9m|G%!9H(#uwmX5b|GAbBC?Q0| zcVoz#bHUMFxrsqREKx+SItdtkQbq`aZqnX_z%2Ix(sp=KlL8dhP4#L@KwNIB4qj1K zLt|onh5Xrb7r;5C2Sm&q=vXouzwK}TUrGqx>LQ@&dSBXhRg0(SVdiCY4wO9;uNIgK zsN3k&PNrQapYZ$*L&8BVNkBs3^q&Om+aB=^L;BLM<#20av$uzESB*~__gk(@NEe1@;X2^dlM77jTg$2S}+TbK!?Y0@1+1mVPsmry%V zK^JQe|*cp^=DY` z=T%;C6)^~lFHV!$k=c+UfOmOZ^ooQ6S38SeqE$z4C%jB)b8`r)z(^KXu;3HFBZ|eG3;N%5dz!I5W?FSNBT&$p*i1KXi7PEgt*5`bu9f5GAteNvkP)n4sl=&^3L zAfgU1zX2;x1S~VVJ-pRRkrXPTI zJ{O30#QI4l;NTXyDPQ!Px(Z}-W)Qq>Xx}LswqU>x&?50MaH|)uWF%4R+SG02LJ+p2 zwrl|z1}CP|6PBT<#M*%78y1qd?mb_WdpWC>UaGwG!NQEzX%V%Bl1Ne7*Lx2sYVafv zmnU`8emf!P598?5h{P#USESR6>5jR|3Jw%*$&(%&RHH6w|LpRz&$JICskwiBc1BdL zZ?APK;Kg{tYR;5rCi;uh4^vZT(D(s7-x2^|4-l$&xuIX3ZYGmXune1naiB#R3}U(s%gDK^onh3 zI!E1eCI?v8%bYqOS#VG&c32Bvc|6sF&qPwPGVN~y5+Etva7Ygx(@sbZ3v^N=!0K9asN#2K#M&9pS`FU5_GNustMbOza8iNPEh(sWrNTmA z>UcMNbmP>l1qGc4A6=DUOb&&^m*C6{!Q!3G@`>6H;jIpmwKO5>9;btuEcEz%2LW_! zi#|f|#Jd$>ZUzt4>;UD&BDU4S-enFy;#2t#-EGtQI2%7K;I}UqEVctMnlXL;l=&JC z2Sp2F*nR^RXrytr;Gw%)qmFUJ|0FK?~mE6A!Vn6gEv*e1h?Pkqz617?F>GRLCLQV zNknedFMwGVN^;V(mE1}Rj03zhS4nkX5;5n=sK8*VB;j=8X>6Ez zg>dlf|4j;v;>v^z|Ku{?WqP&bCc_KxgzM_v1bk92x2Q4V3QDMZcD5NSwJg4Zz-QdnZ`p>4}me=nhf4 z4*THhrigwOG@p8eWO8pkwYE4tu$ubOXwx`DzbBsIr`1JQaWn^;P~cop#MP2KM0Dw$(cTN;tnd@FiOPG2RIe7|G=8 zs!-rIv3P?kUBNe_iZ8n^{~+?AoF**ItJnzV}v}0 zxV1*aQc#Bg%xiIZn|I1<8rU3*KDq#`H0gDB!4~GYIrU>!%!EJSS=w*fXagNc+Vq^Z zdojR-Zvr)uXTEukX+W72iCldA=1t_Lt_c41N%YB;e|A{>zFz4k85v9=qfqyo-cU!R zVWxN>bPW(t))-$QZ*;wbI{*XsRifxNnAo>Ha_$`xi1G}QDBzmQQ8G9XZ2W=+B@m}r zK#hzO3K$GWQKMCZXD7q3`!zU)0m$bzS-QzrQFExx^ST4>!u2NtiX;M|>5=^qeN|cQ zEL|RDG1Z(7c}XfJ5O2Pslc{Q{R4l-B&!P6*U)d+W#Q-Ai`i{^ z*yD>|rMGfG7Y|~?0km`871~pZ)~B6rxc8Y8Rz3G$`&=yTUctlrt>)XWvhlF(sf^z= zbWS%PQ5;>fQFO2`;bpi{;W?92Y8tpM>#rIy{8&w(+7X|$RM zTP1&nZlNfXdi*?>T1hzaXJRsIu|pGTuW0u#i+8xiGb<{jr70G?X!Qb%{?aXUXCDDj zEgQ$K<|&{(V7&hoBGq)VJ%6kZqu~MB6r)~$N-Uv>g0z?-Ft%DKY#J3*&+uW$+d&5j z4+W*$S%7?rNXxF2Jw4ANRSr_qN3}Rirs)P3H)?JRM^JLDZm9bw_|Ad28@*^ig<5}6 zIk}@Q35BI6)e<4WR4xo*JBV=0fB8g@gkyrH~xCXc{IE z@Y}sr0CeRqQ1J&@fUav`;rrX(9n|U`oC%GKyTc1fal*<^l6zp3diQ)Z%4gbhq82aqp{{dyG`$<6Ft1&A;5yYr#GTin zIIZg4A(I#dN-WTm!P`$_Tm03jBN@C2`rOF}nyS)xJujHAjvc`u5rp6o2Ct+?%c9a))A&W31+_W+cg^#wf>%<05HB&22Ngkg-Y3JeJh&oH(NRGTC?23C$9viaCb8c z`AzTiCxF@9`G7rTu^iA0agG@r5he)zAmV9XRN<5Ze~;uB3|uSWf*__}uly^@nk$KG zVnxk7@IbU^NHqZn7W%p`|Ng;dA`pX4K$%})1$_D4iK3!H-O|&^M5g#e#JYh)t)a#Ee zlq2u7M8OpUh~q@esRE^y-%@GbLko$p^(8&AQDM%@%i6H##E>|b*UO*blKO@G;MEte z=3?k<5I-nzukQWX;joq<5({!iCwLNgohGszVV%&U#fHVm<| z$(n}trTqSTzgR$kt5XB3_StinV<52`wy8&^1JH@wV6Z_yph6*(LaX4k^Qt4!oz_lB z%EE!`{IWQdh5`rvn)OZkG25^0=5^HDyM-!i0j8IU@@ro&eucqDxj`4JY>rvOgM60f zTCh3zSZ&4k3um^9YiGkXyTR(Q_-+uc46Z!$t`S1&QC-kJ{j#iEG2+_d03IzSv>H5K zh)DNu;Uyje_VuB(oqofG5u2DT+2#CViO^e!u>zD7Z%FC)sByUQ>Imb5akvJ zscT9=2IITb1ia_#2oo9qYFM>VyDpRVI##NhgrzUNfsyHg_-(4zewPT!YrcAX|9aE< zE6)8->XKkeY}op=DZ2S2u=+74cFU6B=(F0WO;Y#pJpQyRbmi)-Sd3!dZwbVN$G&6E z3Qz+8#%(*;E)rwzeYz}r&aug>2o-L;Xmfm223;|1j&GJ?$CX%FUnWP@;IiA^o>(ZH z;a~s7DtW!eW8twz9UG=|uoiV|rLkK4Qw+%c3D3zstTrTQw^|()lRAvPY9)G<$y26vCKIl-*3*I7 z(-Sr@^X6`-a0;WP%Dd5;8kldm7?AM4hl(lPNlssO|t)E>CKtc%k3< zlU)#l^LUMVUkt#PaDeM~pi?WJsGY2`ZY6vq8zy9V!rjv;w1Gv=bz(_u$SZiZP1H2> z@P4Eel(tre^xL>)amRll-eAfXS4TSUbAJk;1@djXm9f7?*iq}1<4KE&+4u-4Ip&5&YU0=8F<{%DHU^&!!e&y$NucvvQQ9yvysCIhs_jz*Sbw-azPwCZ`V$;`QpA6n-Yn0F@ZHzC5TD=sR`UQ zB=5WNz~xJg*oiX0txURtrgNBJdACTJT*Wm$quPByi^!j0$X;Ww*xlKBsMU*@JQr<; zp31GB5R+<^Z2GoL@kC4osB3~@zmBy6`>_@%!NaQa88P5}z|Jb%Hh+6fS<`~Bc8W0T zBy{p8TorXsO(^J%E1#Sa(yk++2KTdrH|8+pXn|QET_i@yv}_@2d)PEcw!d~%z1_9+SAj;KHDOI=gsZ|K(oP>@6ZS0MA#M~~L z?Uu1ntf4SCJsu`cpJ3Jola74U)dB3-MOHmJy*S?v&veUM(z; z3Ys#c3YGHDh+7CQhpiP)b-gK#^cF7>Aa8w~EhU{vP1ZmhOmXj1utj;oquF9TdkN1s^>3wYEeh->n6D6(JyKhX@ z{Qw#}hf!denXcEG*L@KEB*&cePx2nu(=dT<$tt*?t3??=^dojd-<~BT6vHOP4QqTP z#xFKE`{1f`D74vRhtDdFsjjtKqYm&iI67jwQ|3Kvv1)GVD78f%*${I?!F3vdOjaS_ zjS(CCIi)gCz|x?BMHh?ue1t=~`&`sQ-QpJ-(mok26uk7+CPumCivnQPj?Gn_cjPC% zxHz*NFhAI}AnQ-6^bkkrTM{%Kvn$Xj^Z z`2xYPeaBe;1B5td5?z5^BRi?F6~{+bZG7-WVLxQa&lW;fRdJ*W-xvcC$qJl#^^VXG zr)F)rah^a?Q1`iDF$Y3R1%P$vJu5S+O%Iyk)}!OHmf7ollc})tMT*~^ZQmZKQRI;< zG*566EC?@c>YTG)FDUSjTTQSp%UVyzuF+tJ+#8o$C-!4F(oh?M+W7kL%QUpCIy{Il zoia|}a$G1ZYpBTK?g~$J%F8`hbgd|NTw4e%q8fMU`zg7zMK&9$oEt-iJ6S2B^ORu* zgY-A6`nb_1US+;m7t|htI*_&z)}vMHgI1vRsB%ocpzZ>FT|60Q7%k4WbqH}Q9?3~7 z^WFQVZvJjk&(hW_WJIJ+&`9sbWW^U$O9= zdGI<^<%Z*{PxpcxSaY$J2_oh4cVUZ35x^c}Hfh}(D1z3&NkYdR7UfVlxmSwP?6DTP z)E;D@*5bfSsynhdIJI*YKYdxtzVLk(#V@vaJ25SDAI}1z4X+0`s{P{}1f{purPHLWg2#esi#2CIroOL@-kxhx>K)DvNLuDCKX-#|L&k>C z=VhKE-tUQMr6fN0f6LbWav^>5ixM{V*Z!ps4q8FqBoik$yueiLR-mV{JN?D4_KfIx z#o0}5!JU$r1m9Q~#S+s{nqQP(^wY!8nfW?IA^d%J)9C#pA1zr1lMTm?iXvGCIkW5Q z6VI_XY{Md+n+QD}47qT#x8K**N9}`UQ&zKcEYE$7!xW%lbCWn^+wdVNey}-FA8zo9 zly*=Zu7O7uy^wx)#W3zp57W>FaPOv0`NySU{3V5MB^bG+)CUP0gR@q4AVhw$Qo?m0 zwK7{v_xr&e5<85?1>LVrtlNeg2gGp~C|!gEo)!mpY(!Rn3|PFh&S`hs*W7K_JJLMh z9ux%lwQqm*+5NH}N;oUwN1$~>;z}Qv+ZGqnlGb)hSC;U`Et}*5@wVvkLjP{Iq%j0H zd)DwOCvW3^;?Y)F(Qce)vfZlfmL+ZX{;MPP)goZ6)op)P1~mq492~ zOg9_rpNhOT>3i99;9~K%nWz14ryI~Yew6?4`-#Zd{Z7P)Bi0Vpg>(IG(>kAW)*-*< z&H6;qdS{Imwz2VsOn+Qp)r*aUUfLKazV_o9*{u{VBn zuJc^nFhf*l*6~Wu8XurB4c~=yFdIj{J<$?obE8suR>K@6Uf801(8om3}u&K!^vB9~m{D4GP48 zP{r&^9N?<$B)6Go?Cp3f$KOT6eO#6^T*2%MZIw@})^wkR0pBc1d%-#Oewkm1FyZL{ z-@Vte$}5+lyW7^tZdSI~p<45&K!!*<1K($wGLe-|OT^`7wGo96)(iJ}8M^#doL|4v zw^imCuULV8l@S*iUsJXD*wa2-rd2>iv>O+-q9XA(;RUp$qPv+o6=;6gR94O9XK1>kqE=R^rG>9*6sJ+0uC^8l|b zG^YrZAU7Id8)c%V(B6Brt6hK8@5XH(cBi+~#XHG~$?gh2YOYe(CMpJ_nTQmFscB+m zJokQC*`*>_HJ+ut4l_|E+>TSTitLPjB;y;%*H8M^)~283g1@32qbs}4$A=X7VVNm8 z=RxkN&s9b}2C?A~o#O zzjIe$`|x=Kl@STp`6RPVc(mJdMYj?FqlO6uEYX1KADix0V1htHIRA9!mZVyO`u!WO z=btbTam~Re<1h=UuG#o(pIW4H3sTXi(^Q7p^l}Ad{gl@HoGd6;yQxT8W+`%b%_9OZ zO*Jc?OX!JyrS`iC=kztQzq>Ju%RJ%eFEb!tj$O$1e|2f_Y1D8Z?h|{!j zbU`*XT9)+bJtRdmUanm_+rm%AeJ;eWQd|3CJ?|8GAD z?H2i0sV2ov+xm*wTTMm1ts$9({Hw#=tM*-zMlv98AL^;2luXIW(dp8z(ZVPMPh3r zoj;%LGv{*qv^;j!Kg{#!ZSA76o zc;*n&;&Sro#868(%X7!&x0s=^cD;d`4-CTKiT4`MYKnfuTwndRER?A~a#pRxh{^DZ zicZDr%MZi|*$UF%k@|V(jiy&B8J_s)#j1)GUM*m~lw_>_<;cVLIvs`0H%>j5H#vJ4 zeC6(waeFh)yq1EkgljJ@_}=M3ABq}3|Gla(ikowwukQq^up&PHyYB_2yU;4G%8(0TRcIkV;m{S8fbTb-c7rz)lOgDy;&Yk8N$^o?~5c^_S` zNVt9M)2XisCJ{Cl2V5(q8K64vGAp}&3O|i9nv>9*zO(V>OWNUc2o)W76FxEF?^#)V z!6r^(29I%fj=v+m5S9MA{__|3S3yKJ?1QnD1AntUx8>I(Due7P=L;uNXMca$H_m-! z`!aw0_=8bBP4>d_>>rYGmd_<#p1OGHjs$|I^}+W^=TK_;*b4=SmZOqu2g3*Jb6+p; zU2<ng@Oso&Tht`QwT2nQH~j7ou_N*IhHY8NXkJ znmkn5f4%2={#hiv}|Fu3W9DK6zDSWFjh0 zplRrGM4w0Ly{9Top#$n=S03oUNzru3HR31SmwPlD-p_x-Xto|ba`(%#FUF3RVpf$; z^>0)ZiM`9@zFIIK@bGhnYQjbCAO1=5A;XE$81ZM){hoOv36$bJ%6ck)%}W`+JizP2_ya|vBtNrryU+( zWUmd^v%m04!QM=sMNekgSuCi)8X98bKymJ?V!0Gy6n(Tj@UkniarOOBL%_;Bse(9t&Q zHv0>5x(iIP&V_t($7Dm(aFM$@;a{)yA6JV4q_O_~`%Z|T@hE@F)v_0D_ZK9D^Qjp~>zpLuC)cfC-&BthX^&qi{U(IGu&o=fG*Nb6bR zku1ZqdUTcnlabTbVC$*QJ9qL98S-6>xRe??q7l!lQCi_Ta&h3a4^n1G_3GO^4KaRM zK$`Hc!mNj99ql}y`KZ^{l^p24NUZq|carx7K=)bIvrQsH?tHSh${B1`U9xPBJdbZE zFKsfOeRjLXVb=ce(-Nb&o;_mt`#G*S>n;XRqB*y1VY7jd`gPW0xeS&rAH)-!d8}ph z%&)f%{j`eJ(H$Y74LP#T59b~x zI$d9q5O;3arA)uKRsY(!xVuOZUkdu}5662vt)Wj-nmL!+PCb42#yKveApcC~9mCwK z&AAmv@}z6>?lGPg({V23blO#QAMk?;`&`d=6KgJD{SqEJ@SybRy-3+q{g=KXM$XXB zUiVd-#sx1K+3DX?%4K3v`f}CRE_NV=L1F0AlewQRL)Z349@(W{a&7Wf?N4TrEBrlM z_2E&O0)w*At84E+M4kHJ&HdVlMNBqJ0YE@{_68NtLadp>3uUbfgRexNi_!ic#olzi z__x@8;~5w8JM-R&RvdcCd~>15`IE8kp;qH3&rK0s#`lCwa-GYXqN-etROtnAY{L#MvCujTQa_;;0Wy&q{PKo*`ZlMK1W^F*ZW z3HOa5XJe+RDBF@P_r9|yINbu{Y~zi%w=#LoZ-!(~#A`lrIzDZv{wQj-(kOq)Ml9YX zp^9_(gr)<)rwd2S-MQ8^%d%s8EbrnSxktB$^w{h#6b!`84j41&C7TU?I~>k^rE=(9 z#r{`?=SpBsP|_eG-g*cKDR-VQ zTutf2=bDH4ogU`8Ps%xQ2RUbzcAb)+{rPoS<4CH$t-I-iEF=Dx>EbH!cYnWYS?lL%iXGNFYWmL7_-xaoI^R1t^ndt+ zRz-fqR~+GvWq4xuyg>HUjR*P`D#oJ|%nvaI><=VDth+8VxD2Pc>4mCS;Ge?Tzs9{* zLLP~lR_EsGZN2kwnJcVC6bu_LWV&l=aJ#JNfmoU3n|k(2Vd=K#T`3H0r*4Q1X2*wI zW0bsmy^zg13(wpX-d1XD zz2-~X_et^3`ybtoKg=tfq<^%ekHl!*Ja2yCe-aW(Yx~0Zg!PMI+56k$-dGd8nJ4Q? zgE^{K7S6{=sfZAtG~eAR(Rs4p^mXffH^#^5Fy}CLPk~rpdjac(AFm7FX_Ok5W#2Bn z+xe)%@zR&}5LQkNvDb#nl*1*~9>pg|+Kpd@KRlc(Ejx7X{h5pT#pes1!F1c6!?{d4 z1*3PrtpCIp=Do=ENnh!|5a;osHSr54G}l^q-|))SpxGW`6V|P!BIMob@n=Kaj&?(# zCr29e?_M@4G}1k9By68GR(?vyu0E6{J6@&0ixy&dquPMQ*-k>GIWy#G@;RrdyKJ8Z z4L<10!C}%%Ap;CohMa|ad?rcydR0$B+PljqAKm&rr{2SYe0qa3NIdSePZC;hoPDIj zY&KK&{F%H%#xkm0-$B=Be-)(^Fcgq`IGRiN&sl_PHhF)&B=0lC%o+A%;q9@pTQ%Wl z&g=3ArN+0kmP$SnS>jIpb?4aqo}p8bXKpKh)LA(G%8v75=rn^6$Ov}A^ zXXA1&GeJ@S^`Lc*Q9aYXWVGz#yU>P$RnCdBisOeGbeLk%I=;`EG{2Qs8!?SI_kB6t z>hTPERgQBwG+|=INa!yABRxSTkb?myqiuMGTUj5`aOj@nkveN#!z&FeW5%yI8NZ93 z3ZFc5-ASk{ocs2}=EFYGNi6!uCyuha7Zko5=%dx1+qmBrmA0$W^!4e&;~$65Kv z;SVI%yYpvUfnA=!SLsOF|JlmG z*~)3ys*Zj#fz{)dq!_1ah2b$=ek!TVUnX45ye#A@LW-=@sYI<(Vf_aNPP1Okrh+#Z z2~}#KDcX4jbphO?x+KwQBzJ{LNxNGFf%udEaVA@?Ysh?yzE4{$xupxKW4@3BPC@Q^ zr9cA2dvJWU)DBpO+!JeSzZ7#jH)G-D8#g(~cpd?_$PAP;r%w}uso-zzAz04>^BbJi zdJ__eV@G`~=cZO-Mf^BkdpHBfMWFNld+q;nYbzu!@^aQBWg^fikjaQ+MoD~3SR7jc z3P`Z#n4gaCYf<1V1e%3PlnjfR9-_I+HYFoiUPj%qLUxjSe6|)Wbl+J*7L>Sl5?o1w zV<@a(?=cgMCmu(9L|0BnO-{`7rlq-ibOmLb3=46?i;tmSQgrh8pttU#tkB^ z&R2mTUuk=@yeyi(B_RiDp~l*J8>N`D`@paGp77y-GTb}rm9~JLq!;yndoq-W=WY`L z1W;%?!=Z*|I?NP&-F8Z(#t_3W*S5C+RX1TdhuyX(Ap#?(XG3hBAwqrjj$Vr2A>yUZnk&AZiJ@aX2o-YDYmbz3b8rb(bpc&A0lmqmcIgQLr5t6RzaK~t zY%6ELY+DtBxiUP%ZUgeysR;jLW=c3I4Nu~nIYoGGP_|}3BQxdh>hpRw#}~Y%Np3AL zsz=IGnsl7?rQ%88uqzz3gHshTj;t*X5xaQf1umZ{t8mmz*@9Y=9Te+!2`M{30h<}5 zu&2csTdR8sdq_(t82TW)&T>QSd^Hk!bZSYJJZvovBnwb;j^mpQUKyMfa$O@6OQZbY zL6cHEmgio4sp~;Bu=zZnRtBpgWxWD%ODAu5tA{fBs)BOBfxL5w9%T`iS4>zN>wl%m z#n4H|qaon+H*DzUdN>!Y&w^nmY_M5wfL0=c1%LkSSui0)8G)9;A^a3#jN3s?25*al z&Dk=MoO|P;^5!D=@)U;@>`=0%Qw?n^;|m(@m^afRoEIjT)K17#M2gEEOM51!Aw8S0nB6>$UcEsrYe1h%c0!s)d z2a-ops@D{l!9vijDc3n(g{m~M+DlK=S3u}niriT5IFB-|S=?k;kc{~%tnd+&-upI# zRXm_%v%{pqw8@`+Q6N;rxU~f@=hYw6vNR?v3ubxfE87d$I#~NbRh3u28AaKg%)QdEVo5#EN zr~AO9U!MiDnGTrR_R1p{67O$4g3KFf6379{8{CdDId0S(7Z%Ftl-F*FL1mC~0wWYD z!m>}EjcQe;lQk28v?a4u2zlyJ)eEp*I;uXQ!%=yL;0LKedMvt|y+=L&!qNpU?EhOu zWYgNTnWWi7}|y4vpYsJEHbLy#x)9PNy87B{B568&77!&F67ta0ht5>Eemq+TkgF%o?c7Lv;rfncJP;f~>K%T7p zsJL;`$j&HGuo{Nebt81qm18JnGOS$wa$kJnoC|=iI zsl^ij=FUQiycwNBmnoHL;cOJt&#EF^&>{wN%Y`(hOMXhoNKSlUE62__j>8ZgON4U{ z3%#CNi=nTv?Y=(B>UFPj=lG;LyUik2IH=cIGHF zv!HV>iNm160*VCWpBNARsvznhI?BhBgBv|40Jj-nx(Q6^OkowQ?y5^=gGFbiIK zLqT5a`}R%K&qgY=#y5AwucKlOnk{8^$XW!4dcG9NW`Nw*y6NlOGRPuu{_-5&;^Tie z0X@XHdAwD|KL}Hkp?l!KLbiO$UsK7O2xbr>4M<$?uey1vUu(S_$FA9ewoy=xor-_!B z`w$`40)z*-&*pWga3cAgw{&{K@a$kVh|pBw>_hTLal-jtS7^9##1IBa(_yzIvK{Ux zq?w{S>6(rzDZL1(z&lL~=L~BC4LB^vvkPyO%~S-;14$T+hN4xHjG93l_yi;YTS?tc zsd-01vV=$*>RzrvMlOSvPaY$N9EMMp*gv_ev)y0nwVPs=Y<;ekvAb#)eOsk#lPViu zFsXS~RX<}KHC1AN7*5`&oJ>28Ml6O=_f3raoTG0?p4V*@%>FtbOgG(_tjo&GgtLIT zfhIDTS@RkYItbFtV6u;;afxDdpv}AnFZmUa+DkP9&$gRGFE|&3B(F zY^}@6O(JF~;6B{Lo97CTlSTNz+!r3ftzHV=1jb*0QxAGhma%fpjlv0Ri8MA^EMJ-J`wNdwq938! zfZ*r5iBHUHN(;E2rFAYQvywfvVB@r;-|9pqG7ndn!OW7IzEE)+&p9C0CUTzmvzet1 z{wVWJMhCWqTFGEMH!Rv=LX-I7U~!=786FL$N2T3m*j{poa|9Ok5t=0Xmd!7aZXTH2 zzG^}mfcZ5W1TGmVOt$iUd?Z%JP`OSxp$igoZQ4|(DY0y7lzM!PDVKi;pj9t|eHn60 zuZn$-V-&vHJU2s9FOg;eiByiM1D90eR4`;?nWxH~OYQ&{zA$@a> z)Aih)Pq`E#fFJssdQcMTa0%IOS2Hk|=_qBGM7yA+`lgXqnQ2W36tvE6{pkOU>1TNz zqafh1$R#P-E$7)`f0V~KfSs!N2XwL{1P?y6MPHul&5>3{c zQF3asAgnXf-&m+*9OJ~Q7*0**70~)*Zt^biMd*~r*4>xBZ%)+{zvTqw+qf})Z%IR$ zdQ-a|v_szPfT41B*G?J-+6hnRXOqVm{Z+tHK8~z4fqs=#a#<@$1bwbGH&@R% z1;XH78xYgX94)Kj2yD^*;2;qXI`5bO_)sau`IKcn>2~yOyFT$J?w6Pz^-b3rMd*}u zBVRkl`dIy1n0w%H(;|%Uuhq%8*-&Q%;^2eBaJw^il~Z5ivWRc~b)sN%4Sbb$$h+Ud z6KwQv-AcWJRz}awXtO!8bB+_l>SA!-J}p(>S&^6;r0kbU21x{P5VsuDimDhlMG7%T zNsWhy9h?|2+72vzmTgX9MPCoU*Q(jKBg4fphw#ecC5J;qU>NP?b{O@*OIWrCkf?wS zY|Nc3CHS1|D?t*5U5N7Gn-Gx$MyzA znm;_2EJgMeuZ!U!24|`#oalEm9uYIVNX{jf0=Yx|6&ZC-Ftiy2y@o9-2=(=xAFpIO?Qwy6+-^%NSf zhE1k*!h!+TmwLjl?#J55UJ@Z2tY&>J8K`y6t~DyYeb!>Xj1!6V)1{- z=~dePvr|y)RtDf%&5V1BA|*Uxp$X~$a|Q%(d44VXp+n^t@7>NQWEb=n zcasS%Gnu$b)}rzo9W(OV0zg1Y#{XtQ8@zs0f^B_!<%KD)?af>>mrtECn%q*O8dQ@F zqoj%;bRbUrk}S9i8-x--_@&wp@>*sTjn7v3JY4>!MR^}~r3bG?Avnd2q=(wWm=8&rDZ6}JZ4 zJy#Dn$uyI5peo&5!?U$Z?wK!J{4NNE&hK{%$E68zkt`Y8QQ@bgX?chm$C?^ON zcGb&3(tObIGX0=r7SA_p8I^iK31P8PT zbesTQHzI0v6$c8HQI%vrKw=&0Sk{w911pL9Tmwj820>ZLWYMSN%35! zm6$4|@>r`ginlIQ5DI$8VH2awP-Y~+*IC(HsLj6Di_9sp#v&fhQtF=JR3oKf8S(vn z1yR*PecqqK?cNUni^84mc+=o54sl+U4yVwx?akyY9y!G6?c2wwa83tn4}@yLY$?w@ z4q1cz2Mjq+4iEAE3ILSk%e0ctz)awfidLnY6L3Hv>42Y>eahz1?A3fB8+AhTsa&cR zgb8dn5+td0wpzs@SrPahk(r)8v)8zppSMaId-UFCnQP}Ud37MU1vH^65MbFLsdv4L zOca_2aeJ0hxk^0`WLog==v>#+Wkp#B=`9x&Wu@i}TQcr$;#ug94q;#4e?CB2SrHAFe{F4p*hIMRMXm z*<(7~x7hE&CE(pH%=!C&-(9`C;5QQO82C2&=)2XQ!+!%V;j7#)K6LEK9UaPQu0D7h zWiNU(eYQ{5_%9?nm^C50S}owteW`vD9v};f5y@$$s;wJg6@x4{p&8eeM;1UHDP~1> z6%I198@z>bF*6B7qgpG;76(DqC(LwCAOn+42Yj$4eED&8;jD+sPw>@70JD3XIcdmF z_m<{_d7`YdXK}0obc7UHiWp!nor|ggvW9e72R8;qs+bi>>Ea0WOYQ?}t!@!l@MZgD z|6^!*PUJGkTUap{r}6TQ*D=@7JM}R1`#xn6li}xD9oLf&A57giprnmISFs85F?* zFT#cNTN14pM%EcS07#0hAqI@I>>|xsZSxr?D>d9=*vZ1?D&`OgIIdDe2}Th5#FP7! ztYYpRW1yNUwXU@9K+-0PN~X9eMAcl5c@OshL0c>g8DUi9b-dj3k%lHD+f(OhrR>?C zs!upUEeZli0JqR*Q@lyl_NZjY`;}Gqho@BJ0BR^LpO^#X3YNMX>q&5N)t=Z{-U^Wl zAibr+`Gge^$L?`Jhi649)C@{R%>d0w#Q(4{_?qqM9$!Tgu5zYA%1@U`kf8~^^Rk~- zW*xqO5w^r0Jf+3qkl;jR0KAZl1)q02LxTHdk;iR5b(&6CilZSCR}3OW;4F4kyCxiY z{}4Wfk0<&E8(*zB+y8BwDn7dQ;g|KlDZ8Ujdku%@yYDXuI8Dju?|61wNUvOJRcmVL zS}z#6-CUKPp)M1_GtkjSoFYCr`m@-*R#1tc)$6ZCO zVYx?WlyW1a7WQe*Ju_-vVacEF{4Hhz8Fjhl)u^JL=={T6QOOPCt4^VLiO&RW+DMIP zG=U)B_p3^Yq6Q)62_2R-PlJ1_guw>ebEpU=FNt6F>v0+dTp`lx_SeCtzh4Zb%pte_ zp{K$wf*PvfrlRqH21tlI>7Sr`9^$4Gr}0=ta}^)j{{Q#> z4m_5OSFslL`?yUE6@~eUx1%7H4QnlnFvhXPN$14n*nBxa?jhsmBfV*&)#mjMqWK=q z=6I~5+>D)D3wy=QsL#k0wYrf z&Q)3gxyL0>WXe)nKz_~dAcz^SW{ygwKoUP^sC*_So2LR~l00cBt1f=ctw@IGcE=+# zL|T!8%~8Jj3sd6J!jGZy{)jSiF{GibEO?MP=0+xXY&0@CFEedT6lFSwvGTH@Q zt3=3wQ0LCiS0B3j>L4Yx2cgo$^D?QNXBVq8z>Wt94|}6PVG)xXmdzwMvKE`PXUg$>R%9UF5N_7ENzuHB8hjJHC4`4uSO)le44g@s zIKc^M3J+xFoY3o8-gFtZN!3imhYPhxU%1uT(SD*ka#Rs;X4?{)Uwl8u2}Tqw@hi}^PNjP z{z;mTmdoVz1M$)9fHOgnHfZTtNs)^q3rk(+sB=F@>~w~=OjHB_kj;fhX=F9?T&btk z4vxoKw9D|Z;6n1OvNRER@3!Vu0td?K4M(zpU`8 zwD{N#gF5p_`gx}-8(y+*rU-e37zwj0YWR_n>4<%g1vS9vJ8FQ+FegB|e@!gXb^{T)MU1sL-FVz)3_ z0K~WgGT=B!+|vL1>aOmW$VNS%Bm2!3=H#EK{mDP!hwJxU_D^oTl%KkGv)pmHvD6cU$#oIrrd?I96<&$Ws0pWZr0gG%Gsp}F{n5xV#PP=>;{_T|58w@-dYeyZcDFU zx!@tv=Sni&DC&<0B?;!@_=&<^-0+N9hR|4e&J6yf)wdjhCWM*zb_7HQ0ES&P0C{Hf zOhpDvTAdSxRuL)9X12>Ih@HWpPY$ytJ*pZX#p~VTZHC2(u%VB|wPtpl^lPaf=-4!h zA?O=oUS5b1dDotfl!zY?YYvjxnHey0kkM#GJUwH69qkC!UA6Oq+`RI_Ub_c%220%` z;tcGJVrNVUlYL%UrbY>Luum=7AqI|L&Mox`ZmPAq#C=Yvz(@!3%S4fCbPUB)BgZpg zxptE<(jdQ1;bSEoa5Qgru%Jwqjl2T?w@dr!_E#3akXF!Gn+%)XF;1_O%?QatE3sq3 zaGTOfh8wG;Vya`@^LMYSG+s-joBQx?5~fd93i8SMNSEeHnL}!Inl)Y)5aup$^sk+y zQq}=$rtsy{RG$(+KH;04bagY{`IWK5*9q5luU*`4+tT{ed-NUZa+G%QrDtcS199Nv$;TwJYo$x*;j)}f`8qiXpIc> zKZBfOD}msX9=bzkHi&A^+m%tO14dtEXH-3q;M zZkwAiub(aP;E(V6P%lolx8dks)&tje;h0&X=7L_8zjNTu#!j8ZX7qAE&#k5?+S7x+ zYU16y0=0+UHrWp3@E!MR^;ML88+MaHOlzy%HLm{{uHGFjo;zDuX!W7#XD3_XT_3n+ zj^0zEk4E^~gDDy4tcdQk?v-jnarkYb-Vvo@ z4L!26)|+3RF&K}W~?lViNn|LvEZA{x{cE+k^=dZbsg-km?3mw%(0l`KzINcVF0NWshm6 z8Ekg^swH=Y-_|>dDAYcDEh8^5cyBYW*GkPLQ*Eq6d=TYPt5iGk{vv;z{=Axt`mRr< zePp{P_Cf1mW9*(JYuL9JzkK#ukIG8J{}7gaE_`~f<^tQj2R-a$UJ}h*KA$0#mE|5}Y+rj*VW8|My4vvZxs8^C(=z7bduK`MsFO%~E zI2LT8<~!Nz=%-R^pc=>m@DDLaP#_UvsbFW?1QP$`@0u~`Fd$R{17z+PmR2(LRkNK| z(0a0h{DoqVvY#1lE$J``ljBZ2eb}YeIVr7Lb*PgAbbbYe4=IBq42gCu1?}{u*@u$B6FDdDUCYk-aZuMn&c$^8`=Yma^p73U zm@tbTDsLkoLwcV5ns(oc_f@@+qH-~0EBvpDU9hVOcQH;uQ|$Cjg@mr@k>J#e4(9pq zfB#-jtahFRs@va(4Pl zaMV%QdW7{@$nq=HLw~)#9dZ8>y$!n)$M2J3WOb>B^U?inq95#chHpfrz4~=+zoM}r zvSWTOaN!5FCnK(7CG*u99k_~TrEfU*Zgb!KTTR%{@s(%xo=!E!$EHdDKHR6@?eG+L zyUfJ8S%`VZCAeE_;e-GLu-pb+l<1O^V3`E_)EAnz%I!d0hEcN_JD8D_^8#I<* zcSd6>5fi3t@cVb!w{G3i^{vR&vbK^A|FDkS-w!d&^3VhJw|mFF%*`ADcTau%_p+Y2 zOSk8@-jZHv&=uR!J}liWQ@r+&j`^LDW=6!g59Rs|8QXlAw`0tb63o`l_?_K5ZO8R3 z(0=^KI3e6AzdC9h8*?yjFvPY}8zOGz?)=njXM3Ub*V&TvQVgl6b));2%LDYgyVIZc zZ$Jtq_Qu`~wtVZAVc#taH#m*Fc`&Ljjx!#z1)8FPtyLslN>Bn{N^eZ;mff-6ZOBdJ zLW1%R7vKKlBPw>IW5%?9x!fuVS+=)|j7X$cS*-()k}t7$4P)el{NB2)hk9{!!*ClID-Lk$D&SS=3k9XZ6=Du{(ClHuX^{x!KjfwuvtCE8b}+`-&))Z_gHi0>Eofd z7f=mR{1Hw#+-tg6cAQ5NG;p|pO#;?8JK;9Z-lPGd&4el-mtIY9Bkc`R>e~R2&##%K zfFecwKC}`3Go&|#a4nkiZF)jag894Gqc9s7Lme{TqR1RTJ8RB7{t$V%G8OIKxrsE_ zxv^?zKWH8g+jtTEvo`2MG?lY^cY7eXD`n{G-#7QqnoF+)x18q>f+Q{J-ghpxY82=2 z@>@&tOPzT_zs+6J`WX+o(EWGl{28aO%~RMKO`efUQ>l%`cRT+%fFDXmFK306-Fsu! zs2k@S*%)u_6hs61*u3f$;Vya^+KKD}t&AH3?Y@+4KG+9+txW`vJnQ@LojxIp&y`rF-&}>P`OPQzf9NdpUpstwCYV|9W3*WP{6oBZ!wT4EQ2y}urvj3t-oKMm z4Q}rrZgit}SL|IPSM2Q@XQR{hBm)e-K8(ums1d8$IiS|@Ex6>J84WZH6Bs-)>}UqMElYyVQ(u@UY-Mib|4-GW4d(b0{1`+rK|7b{bg}ZM{BiNnmcXm4(QQchQWXMKjM+)eANBES0jf z4>Idcsv%7|5-}~F__{^P%sE*j`4=SbuGdq}(vZddKKp-7H*A$(JJ`sCEMVd%t-V9~ z*m_3-o5}@;UKA}4;b2p{ofS`?UcI+4xvX*CpE4}6yk2!ZlpQK;uyC&4@brc*O0i7M zJ@O3V`?`D{myTCCX<*kvP^W>p;t@nl_*OsmAf#!=5;^oPs!cvv61yF3AsL?AMSH=+1nxeZS5=ZN^iY_w$$?9 zJMr0*i?>&ojE1sW{tg>hXbd;6Z*JYRGWgX(`LkuhhL zD=%^M_+^C8+R)?*a`m1^q?-Zg&#sTf)upgKTzf-pCJ_i0vb>!S@3@D#(f?@7ODy$9 zFji_;iqFBm9i^-=R_Y&1WfR7<(+h1*)iHkndx4(=aQEitUN*=4HysceI3<>oYe9Ia zx4_Oz#C#wQ1~98=CrM=ChYTF5gB1SrxSBxaCbgR+t=Asn4Cd6t%<3e&OZQrxW5j@i9@(Mza&h^uXS|MC zx!*Fs7U?@^yT=XzFnCgOiy~t`*D=*Qd;Tc-^82QfKRu?Ny%t2>Ugx^53!qkI>!Uj9 z^L2jD6ozGWwdS`M$MF>J zWa?!rQyP%4s9$wk2CDmiH%nBi_um}uXWKv{bZOrcvcE<+e5pFAs}&rJ?Wzm0h&{)m55d;d??p7CnN zHP?}H&lAfhX>%9U^*3HbVPC?MJ_O&tU8+JHUkq!z_%G*_`eB#0uEP3WV`IcJLF;qZ zou3l^qwIf9yq$kg^l@?o{{y}9T}(XwZg}zCc6(3vVaNL}j+9$)`_JKal)fU{+j!Hz zJq2_5C+fN|?A0b~)L*Vv&6YE^k+&5uEP;3Brael!Uli4cX?{5TwIjLf|J3v8_e$9P z^SlJCMEeKZ07N^%s>v~$|B3(rxN1?P^gcRT$`8}pB}dR0*`#Uu?J zD9{tu;=^pN-kO=@m%HAiuTY7wfSmEh>pqbpxy<7eJ$TVF~&q2RQ)a!-b;Z+gL`$oy(Z@yGfJ@`N#?~?=X*FMUVWruZC;=)hvptzpjNla#GVT-8HduqS!{)De~DhMVp3emQpJ zCneIGQhvO@o&M(5n`uM%qW|0jKOuETYFy}n78-r;nIh;sZ+h3$H<{YAJJHB z7I)>1hLD<(p5{k>))1imC;wc2n0fa7nEB7^;r8XVjlc6%i0f1qxfO91T)xW5x4+Yv zS^@3Gn1P0uduMj9>qM=6SHH%reAHOaZOL2R>E`SbM5}JXt$iA#F8AE>o?)evST*uh z^LY4#u?re)Lsq2dDY34Y^-E@n_aX*OrA9vuE;EeYQ)< zi%u0?6lbSxoAGq5)%Biwx8pMTH@Nvq`$;kd^RiP+dzfm1?jk(2(kl>i8K$J0M{$tm z5pju+C1YU++2UuxsvknR%u-Ex4`Dj~I(>Z?Tj>JV-jr>h7T0>gDA}tT(=J%0tg6b~ z-fy>%coy~SoigOdxK{FyzuUBZiCF%o=$dN{OAhd}-#VgwA`fy(P7NvvLzhD$y~H>w z?}XRB)V*>#0*NzvZSQtCp`ds)=@)iez3r9OvJD@~|LeXiN8c)t@PaabBtn*XaQl_4 z*dyaxZCB?*ea@C|hhM)F?gO~vB5&L>XfPVG*5cp3>A-T`o#PS1e>tn{xv!lRS#a@W zPO9v5&dnFctRPed0M|yuWg%e9UjP(8r6uKtKzmDgaE;7bsS3cdP|9FrwwC_97HkQt z$>zk9ZYgNKNk~f(ZKaccbg~8e&{)>nl~6H3u74jisx;J7(VFqP~) z6t|XX9w54YG^;``1^T6kFdsgj2;_JYB^%*qX*MCL#Xpm0>>GYYD~wSJKm>$@Nf)$ zBCnxz#P`TSI#W|A5JXWogLwJUX7|D0AA>%x>((XexJrZy=$Z)IjqV2v8?sLmY!L_F zr%sPbDu4_SrxB?yx!ZO^H43<{)9~^BPZwo?cg)#)^7&gi;mT-LyKx1kKDBVA4U%_Ot%&G2RSb>T zQcHPwH?`|QWTf3b-(L2FTyx{#Mbk+0ae7|IUc<%lQ?Ma{#J!jF6XvW+&HLIRL);}1 zyOUA<$=_vt7=+oO$f?E-?Y~otE5Y^}%H6pd7oY)Qdl83I>~POb;nfv#g!PrbJps38 ze99afc3mVM6YR)$o{4_aZAE!| zbf=vZe(@G>A}ooxE)d0~{P)h-i4S>qYgShDTrM_VTzLbyfvP?KTP8eR3y*{Eu*W3B-T^U1)E~ESNV&>=huyP5y_3KSHmW6R#H5M zlvc3E-B;O|o(tM>6>4HFQjIcs_f3kllVJ@Bo;NG)svv0w64{_N*0bXuS8mAo3uzty z9R&UAWQ`^MG0OrCj=+XKZ7ws7P3OS@_g3`x+0GMh*y;QWz7<`e=pqXp!`}%Qdzb8P zczWyUPH+Bn>HUeX^FJ<2r1|B9tSjkDu65(HwdCZ6g38Yl=Ucr3&Sy%l{XHglenwYQ zA{7gK-_Ws+4j=4_P4JL=m&XVFbq-`&u9Z+llZJ$bFaBfH*KiuP_NXUrO#V!SuO~wi zKk)*$vpCRkB-3!ME!&B6=0KzApz@YWv%HTcCMw|h{HWLUKZN)TdX2poS0jAe2RdAl zl~KORhdL)-|LClk`wSFkCl2XL;@)LE^mN1Z?wd#;zd70~6 z71}&sE_J87DdVQe6Ib0NWYDw9G4RSXsniF5!OS^crD;3TgxCeJRPV)2^hv+i0uPHj ziK})AOdvO{wq;GtZU;(M9*TH4eC#lFi#<^G5X7gzYXBV9au)=JK51^+l&E7lk2K&| z`wA1vk8V$aG>Jr_M|fM3%rjVP1=zHQFII^1$%GPvQ$-VT1sZ&%`XVfb61)3~)HY$; z{TQatLdE|ycwO;-d*7D3Gua4TK{LbFzKx66!q45c{J8i8TnmLu)=}o-MoJ3Ptw%k?9{)ZizRA z`Lnt2Y{%i>x9x%4&OdQ-XQP+dr|5ex;`M%MyX_Lw`1jruu(CI)TR-7jIqZfDj>36& z$L?=l>r5!ss68UxrSvLDRK@-nX-}2P&Fk7N3_RV~S0*XA8%}GBs17o%sa&-i$u+F* z^w96*@zx}1-E^DnAEp?gnL1YgCH+>=h#WZ{&|yp9=nu z=e(@g;@#$Nug_k!Z4Mdg)6Vc6r3ua12r`Sh*|D^~9u5O!QRb4eTBy@T=#*B((k7d}>( zm#NiuWITAZ?HzOP?*T35nrnpcRYg~8FCTwbWZSnzdO&0Ed4ms1@Bi+t1(wYH3pQ+8 z8}jm@IV=6SSUgntg-2kl-l{Odzhb8y#%i|wB17^R4(7KSasB0yQsWo|pqva=e+l2m zeAU&LzKV*fB7dA1V_DwGZ&&2ryVt79l!un!a|QV9L>2GftH?G>mfW7$L1Se4*Ay7O zL)+|B4$dp<6B1CyL;V4l70#wt7woU(%uj_j&IhF>z_wc3@z(U z;LMJXLshctz(^jc_~-9{2Edj|nQWoG%`J0M&&g^6J;%s*s9cp*67w#s&AvC(!Eo!Pwkm~Qn{L)_>35ePgBF^DN z9jk(LPaI$KAKWxA9|->E*L`n8wfpBwr&F&&N+410*BhXVl*aAFh@HWK;BT4Xq803a z1F0u3>OBg?|Fkj>N6yqKPsV7Yqd=HT2l%ayQ4 zmyPp$y~6U;9>g&KH}8_J?xbrA1idYXX(lc6JQIJ?yDe7T+2{VX{FbHl>N)C)9#_aw zaD48w@cv#&weQ5;zW8ms=}OHrcg{3I(Gh2J0s?&A-_l>OuR~ z?;O1$SgQb;Fjtx9wOwyfnaxYQmfl<=2U(6YpY~M^E2itN87=LPhuv=37&*1IaBZ{+ zHjsMFIk}Jf?CaAHeh^wj60uVy7ao_}9e!7M8kc)9g}Y!?_~?~bRFz6&+|#3>I~e{q;u zxT`ct#DX1rvV8NN`#V8j$2-D~0wH5;s`O{36TFg8BKRq> zuFUaex-GY$eK|}0v@&Q)j=9FyvhU?QrLP5(aOJ?Wn_H+*;{fF+OD!y?M^Ch6kwDSvuy-tds4(9=fIq93BdD1BVx&5vDy`jjx9qZcOQZ4S@t1F4v z$~pS3XCF|!`(&&A_qA8LQwi6OAiW?dP%ZA429d|sKub<((0k6s735* za>H$%@q@5slO<9VhYayJQ?~zZf*7G2{6MSvl1_tP{PvC@WJqTVGSqlaB)fPq92MC& zjM_S<S}J zUEsG()eTOTSR6R$tn#z37;bN$aq$53w{g2&^Vc~7>Jjv2sgaV0{`(6T6JHF6hrGD_ z;$B$aPe|V>=-Ps4)k*kU2zGhfg1<5HKqq^rTNu^%o=G1I7S@k!Mja%@G%c(p$t3^C$PRth z!BW5!wDXTY&z+DqMQVYjzDQW5Z7saB=HOHpTj z2eEONQLQ?nW%SqA*l)o!ul~(UBCZ{sa9DHF?A3@U^?RF1J1w~gL^*{CN=<5@7TgFk zk?GUIpBL}tEa5XNbc@g^Dp?`Imq~l4=~I?!#ses-*c?A*&$mN-Ne9!pK>c~h0??R( zW9FQ`A;2*`4ari;Sw0gZ)@PPWc+k=#@Qt^G=cbQhO>xQ-I&&^xV1HJ*f~!DZ3V8<- z*;b}S1j?L{aR&oNKs^QyN%h(`4s4xyJY?8%LEs8DNr7RXd;O8GvD4tEUX4sHt=q%6xq5qhmRvg#X}<6nwZ z@B9$q;(|`qEi-tleq1h^RICqf$kLAb8lm^!*n97wCckK1I0*z|f)pVE1e9VU2`x$y z5Fr$iqA`RJdMKeI0)l{`0SqEVQ3zEO6fi)Lgr+FH386}pVgm%F3Igg+Ecf-C`^TAc z@0~f{x!?EAow?_~FwDGJ*=xOful20Go+tfBr2q1YneFr4l6!X~4me)lEI%I^G5Hb6 zE51|*ddLNJ7FWhh7yp@`cm0v0{j>4iZ$Igw7t4LF-?wG{0JxOHW_8dRxb&>el_m+| z`Ku1~B7yd|Z10j@G_*t*-h_c z8Y4HAB$-b_0BmVn23f?ESiVfT>({7UJpStLi^YZyU2meU1^3P`5KLd69}4E|{}w&y zJ1_C*twei*v~N`(R=H=7tF0X%*moefIOyxgUE;=7a0B6o zux{0#69(1u>5Bj3D;v)~d&dsRJN}D8Y)~dHUx^PSnLS=t1dk zX9YdO2DhvKk$vsYJ5{k(|ND9W`lOo77jC?9_|E`?SKFER-b3}=ZJM*s4hyL<_#ya@ z!BrsRj{7nsbn8lE(9f$eE*nQOL{5BIo7p+&Az0<}rSSUOyZXx$MfYL$nQE0=B5Gq< zFBk*;zZ;JqvXve+#Io{<$M1QB)7vIj&XXie7 z^qB2>ZCh1HNgFUw4XlW}BlAnv$S~BS-`%=CO}M28FF#x7lyvJL!1$<_=Ac+u`qGC791n%j9GRVi9x~%ddF8 zw-~r#trMoJ_Br5mV5Cv?l~3k5`Ad4;M$$uHU1Rp|RE`|~bNT_(!04xLY1TKrjE&0Q za9`!>9j$wIBFveeg|{J33UBe{1KNp*{ncZif4{E}`k9~pc0IOvXD#{9T9EUPZ&#La zl~0;x694>@8z1tkYx!i31g_&n16P8$w#s?bU#NTL<3AmHu=19tf2DMMiTo&;`L4O) zeMkI~U_@oZLg^2XQuyOqRL1=Xi_Tc#7az1wT(Oq(|2FX_apdRIjgea?zR*vI5De45 zXg$q_uT#88+DLxLSee!n&KUFM}^~meSd-%t5o@XTH2sCf49&hO4ysZ zIq`!h@6)FOR~hqJN0$X}Wu0)n@TK+g>baAj?>51fHm7sH+`%B`cWdhBpjA$_kAGUP zKGiz%7H}1Dih)`-5ZvF_Due-ATRWOqsC4~BulB!?5dTxU{kiPB4^I4h>dDeyOQ+tS>oPJI z`$j(!Gs(o}dD{s;9}4;K11}%J*_X5XvLLVT*cpW|yE!X?ai(?EpJ(aCCy$fv?OMLx zyuhb9Z(^I9Fx3Z7oNZ4yvys*)g9FL zG};4n^{eka@wD#8SARmAJ*87{<423Mt{RuEHUIqL|HkvppLOuk_LFlTf9IYJ9DFz^ z!pDGz&zm5Y)OCOM@l}ZQ5AQtM%<%BtpZk+z#QWBj=Ir=~ASO3yTmNypaK<~K>SNTg z{d+q~4h=pFQT0RQ$Bd5!=ltHj-ZS&t__ZhT(K@?4s9J$&V|g+lcw)FzZ6t;#<^FoVhhjyQ&!r%$N8Jn{j|B0dpT~+exQuQZZRKY>P=U(1Zwn`yGSR( zHr)*7ecCCXZIZp^aM^#1vVk2);5nL6%V!~{G$$qyF};26PO6J;55NtpGkOTBxjf9@ zGmGhpMcaJF7f1BXrfIUC9=gs}#+rM_FA61&KB30I9X_9YPR%_u<8&ECgX zd*8c!&=c@M^YMWKl2*QvV|kcDO!w>#h&SH7X21T#1WkAliO?~ zU2lbWU9%AW+YFFJ)l196_D6&z9yv?;jTi5_6L$H#&e~)~h1J1iEkS`NHJcj?4Aey_q}=grshkkt1OBZuq8Ra}SjnPK@z+HItO(cE0HuSf@OHmlnd*FfX=31uh zt6P`Do$GEhEY{a#RGWXR$|@a?D?n0y_?xuM7Tqu$oY+jXxw`!RY~wPgdGqGxp8>t* zhKH~822QRx1HhSMz36z}JbwGI(D|3^QlJh>)%#YNvwH47rS}BO)%rvqp2SOP;cC{uGF-Ie)Y2sYuHc zBPx{l&OGop`4dyb!1?!HpUA_cHy^$W-=CQidqL|BE%v%zdHrkqtDG^l;{lZbaP}#C zENr3q3lEUsTd%R*4pNef7Mq*i%v)>n83SLQ7rC*sIHqw)ZEHhb>^ z-=O1p=kza|*~v{0nppZpcMrhad$pD%vL(dM@(*Pc@<>N>#Sc3s+|igPnS`_Q-!vF4_EcG=Vs#|^evvklp?(4Zwzr#BEuW2osn)=Ho75S4VjV{II zM~?UZ)H8fpb5`Y4=&V=X^@V-+!%FifJ@cDyL|(&n-YktC8x0)2N|YkDi(HHQqQ&%f zUL@ZeKI*!+W3wUm?lY{`dA=GE>xH1|{?ZrsK`}1DEek&X#Bx^dC;=VhGl3ZXuyklr z;lxIyEq`%cQgBEmM}D+ys-#6n%rMiOsa8w8AF#!i;ZBx0ObMXM0{5S1*M4uC8fL+X zu+CgfbAAU#{2g+@F2VOT2yiEyQ;JOFmRxW$=hh^4F$yR);h7N2i&Fv5YCkfU__hjZ z++dl%$8z>T;R^*`j%9nUm0d?4b;s~eHoG4g4?~)y%t@~b;Va4l;VI(a$By%s6{Ck` z8ovP?a{p?;_IPQBL$VrMCACbRL15d*n-tjU9P#bUyZ}1$T$I2DhNj5FbVF?c19f& zGf(g%dk?JsbN1ISsP2+bbm9h1_upb#9Qqq+4~?-hC7=UFM!+m1pRmL!}c*% zgy=N#uSgpC$Qk}6Ib-Ecv!Oag_li*l$JUXTZY}yrd}Xklo!r8R``v&Oc7i$97VA&) z#~QT$Zs0wGIUR}6xM$Y^5Eyo5KAy`TE1gvdy8I`&d8_=?ufDvSKQ^?le0}k5tNzcA z1!nWkLi|&M_0Z2#%O{&OUkP4WSnYECx}bDh;rC#WZW5m7YijH;d0a2_4dLvkXZ$fH zHvZ&y6_3*1A3$_IL5?%%kSDPZL1lc2hm)DPd&JU1WO#{B(}JPnxy)S6;iTBhUEF41 zzPp@%l5Hv5SDDO7u43w+P3-Q5VxYMGa&j>Q!51ho%DBS3C<(qmqI!Yy=p3p6?VGfRoOm zFq#Jy56x?3hy^Rm!P%M^O@Bb=;aiHw)l!Hec~_NvmQJ>-Wb!+&LbC!LG4o&wLwgx_&p!#Hsr!#J}I7f3I(6 z%Za%OS783%HZEZNpzy-0&e!qz*&0lStf+BvM61h6J|AO4Nkw4qluKxZU8nfW~ z>+Z&rrr#iD2EqJzjL#bWhw8PF;jjB5KU=vW=lEs`)olZ7(uCwxL$2~MuNxkL#X|dw z#?OZf5aN>F99B<$*u|jV#+sOvrL#xRkLTW*743QE6`K)Yh_RUr?eKaM5c%x)OriK^ zsk7HW&%>6VZHh$y+4-h_L&rUC&3;G)F{zTTa(#AADq|_nx-cU{uj6(c!Ba=<5sHKP z%x8`<0_ZjE?`9JH`6H&S|HYv2Ly9Xa_hPjVLpn=_fQjE)CN4V7;rXO=glgxScs4*n zj&CtXDJlZDX8pANtxpFhdOBAdT4)t8OIMD&SKHb?a~qLP29*g}s=FIL!IGjh^Q2YUPYOA=hq z>dGv%19Uya44H1b%!EE=G5~I@bYI3T4?(KJJK}5cS-@fyQ zSFnRcg&1%-fnl2>k~p1{$f>?8@b)fDA`kD8sWVRItsD8RdU?OEmw0}b3ec_~z)JRs ziKN5!rEl1p2Rjw+g!My|C+Xyps*j2NWZT6AYi}$taf@wD1iz^wERF@>D%OLAEVlbg z2o^lKS#zT!xVwoqhzaI5a1m3!obnEP#N!kDh>xqkn16+}L;<4^FKETBL zl!df`dBvL*A^j}(Z@cF(O9wEud9^@?#-!@8z5GF$As*?gEO3^f-*6UF zOhL8@02^_EBMRM^Yh7X+xvFpOP!u+*dz>?k?19W4C$j7nb;LYw9O=q>rdp7e2rxUd zPNb{QkR8(le}}B8v6I-*w|aypgm6=opoW(6H(7xAXf$l2)HcnbLc-n}Rc0(|UcsE@ z`{|>&ZnCyNNhc8Cg4zf=Q5Ze@A@*=({k+UA{V&}fB5xw+az}1bxPnJ_xUWv!pog6G zjJ!$MJH~#l7^gONPMj;&8S6g#0C_mM{ef2~e;QVP?T|`V?!h>5jm$*%=+b2f{DwJF zJa+2nBryHZuqykP005QUkM}Gzdee4^w^>%d+EP%vxNrkID7M~@4_;CF-+d~65@3n% zm?(N33UD0}UUfbq8~N1|JvHrF!bbA7xhc{Zp>#rV}tubA||9~B;U|Vbd{aN%N zRFcR3(wn)7sX%5fE?J>tFN@O5Q=)r@a0!)GnvY+~N_RMlvld|9gh{Wfody9ej zbd!{W52Rd|p3(7&0AYE-SF5@VThSoBQ-5g%pkCFY_CEg)U7ltTcN*hA(l2g*Pw9Og zV|L;c91!q^os(6mNkFhR2JTcD*ej!?z)4``uP?^|@=k)`UF=>Plc}SI&WYx_?_t&B zcy2hVG}SQo5I|Ia__Au}oH6TGI+jyy>xCS&Ia?@|HnvCTV7amA3kMd}8GBm`u@aya zH|l<(wrQYiNA=|5`;8|yy_GSKbv|XQz5DWM1U|)}e>{kXNAN4jkJ^f2FwFi9Q%6k2 z48R*?J~Mq>Ilcu(5Hja({XF#78us+jPlp$!S0?py!_D z#&_7#+yUS_nf9HVqc%qbJZt%ldzM5yxF|G5(y|E9n8-_&uce%=xX(!PaoX!A4hocn z+_Nio2WSD7(22k#=EC;}70mGqv9&ry>#KJ&i~!~bfg(!Om2}Dx`7`6I(ihYBNiX3| zhQX(@Yf(wH)#icx!^cj0E9y*!D(~BG6m!=zHopQ_9&s-U-brU?Qjgfn#p#UWq08^4haUi5%72mR129Tg2@XkUTF{mCKXK=)Ae) zI;p4!#2ouj8?2BbSsV_^KS@3O&PMvlIl9oqTZED>lF1EX{%aXnYV4%uepE z-9-n+37JE+y%cn|NrVmwpH4he=g1d4a zC-2?5_8r1y>_R_Iz0SvHqv}acV)&i7lGmxc^n(Sk0q)NuA3=JYcI#gPm@!QqI?oTY z4<{8=Fms{BPuGS{JjKibq<_0}H4oaB)&fVzzWt42)u8?Uf%J(1TJhv5QNvWr)d0u1 z+E&hPDyAwakoIq_Sa}Tl?^aw}LUf=Gv7Tz}+ee`C7=3`|O2vzyY8}%z_wD-UFrw4- z>|;AH2rIZWKhTn+B~=G-sgSu9R;T9<3m1ub`0jBSzxM`d4wO<43;g zYUhJn)u#dPVA=NfK-44F&SqI;G}K)$i|MuB2&Ac6TOGJ-T%cWxUeS%NV=DXp?1(+) zjZm#o=`-ty9zq0S?l>vkrGK^}bG;SxWI~AN$MUcKm@1HOec~-S};&J3^e~BqJhn zM139)(3G&o=bqT#eXurIzOd1$e19@7YIy3PP0ENDmnd($D{N*Zo{e++7@Jb7Lz#X1 zTz-`8ZX~+&xIpJIqV_6E(Z^d(DLsJL)AhmuQ>1zPwf`l?S-}9mKz}m0wT3vSRq*(p zjzn5*g^}O3vz@MQF=%20dj@3@SRQOw` zq=NvLJ=mVsHozzCAI#|})l|jzqfz{YYw)DGXM`PZg}Cr>4P4J5WJ@Nn>#G%w{W%mR4mI6`YZmZs zw0QWwZVJF_c%~v)%#X~KhlSY@WM46+P9nr=s&C#ttyStd=TU(i&IJmgkY_+^_E1W0 zUC=0dsSVI3Idl`)h6ABVd`E0!pLevH1r%18&rti_#h&i2UJ5L>vd{A) zrs=Afu9Uso=~ae=Ok>80=YgGY3Go*SiS1hJe4XHoGJr6gs#G^bF1o<+;=*2=4OkA5 zc|{%R&~P$+qz-4vt7}mza_rDLP>!3d$tTEOqIIx^4FR$fv5p`6BCB>g&Hw|?g%kMd zMcJ~40OY3ZzTHbJbht&>Jcv6UH`x+qeVY5yaS! zBG42r=#NTn3H;E&|6f1&KkMNkppb&@lJwetua&W#zWWenQa8;Z*{tl=ZcWHvKAmXZ zjVB1{bD0ae^r!hyu_N}%7J73&N@osmP>7Y!6(%XB@?(OD+#`qGUjpJ#WlzYtSc8@< z_f@O3fg#Vv<2qkYv9T2?bK*~qip3NCW8Di52?CrqsA6~j;DV%DaWo9ADk$ZsFmzUH z-2@oKlT)ZgrIPl``0?i&cyYgHhzCjH9$@>!K*4$lMM4!ZBfRUS*x;?L$bkHusnXbsguSsPx9qV7^BvOwGGZAj2NXkb zune|Daei=(*x@~tWa!s#21;Fu-GO$uq>@7vQLE30>?r@@o>{(VR;qTcOU>?`TKkWw-AtCd3s6pm_WUp+XLn&A5wpKF0kz}Yb-L7Z}0CC#8lWND$t04Un-_yxL z0W_1?;F%i|9&gOj*tT^c9z%7=R#~GHq#Sx?t^ckKvd|sm_-w)LC3@nGr{c;3A^BY8 zti9mPZ*XfxqLB&Lz|wfT)*gnCKpe5ZJIrcx0GMqAPUVsP*w#h;?$sD9q3{SFbT=*QN&rzKs6gw$T#18l~D_%?01e&U!B8b=?Dxj@8;2V(fo{U-@ zpCVm(cf~c6q-rPc0A8_K%g;u9dLl{m9D8t>5EF<3Ruh{xX z{qs!Gp#OK>8%NU}G(IxLyavDsVJ0_=y0G(#`Tft-O6UU!J2s_t) z|Czr0E$D3Jvw`&H!mGg*_9y&HyrU++Ivn-CD}1!Bddet3rs2XO*l2xR7h+*Wnlh3& zSFe2NE-DadtZgPAn+D>Rn=2;r?|~dpFbXA}Mw8H|50)MnE!-1wmf^I}`0euN!QU&t zRzB{W__i6{{PCBA>!p~rolU2K&FH1&LOj^4MSOQ_uIB+eff2+f23)DJ@S1;n17#IA z)J??tx2El~1!YAlT%akhK@gV{7??QUCt9rBtoo8+=t^R=a&myhIYxeqJK8f7FT~N3 zr-0%WsI&`P{8Cnu8}(a6d7Wr@3YXV`9_h6ae2<4~$5GMF6l)sIW*5fM4uoFLwg5~3 zly&|`6CzDSeLR&jYpLDW(DdF0(Wg}smtq+w+S`z=HI6c*{$3}WMM$_wQ--NlF{|wi zRRf8$R1l!Zh+^rjq8yw~6hx>b`MXn;vZ$;9w2MM>XD-f{@?B71$QY?JRoNv~Ri)RM z6&MgR%&Hiq^j zAL7Brad}%`M!`?h+EV4SEhNb{_LHPG-Z+xZ(=8#=#n$&4aSloMFk81EQH5>hK}Tk$ z)YZuQ#Q68xC(%@-aE0*qI5qyq*iL7v+aTwHsru@;fbAyk73mpW?zS53wzYB@N1S5C z=p!bA#|8KiRCRu~(9L_G_(es7EEhQc^|P@WNgABJGR|f!UInTQEo}wzCQ)ltX}C$dQEDWzMQ{INp?} zirL}*@nw-Y{%Gfxo84Je-6ayX6T7e_crWD+b*$CL@A1OqYkZi8i;T|EY$=k!QAxC$ zx|7ptpL;F9+i7xS1yfyUT4Rd}UH%5{D&3He767vjnpwL_vDbA0#pBvBJpKLW04rJ_fI%v<;f$l3r0Y$S}-7 zlUYX?NHp|wt&`r*PgoZ`bGJ?LiE9fn3Kxnk)Y==eP8iYxytl;SQ90XHcO7-zd&IU>de*;F_8>1|B+fvVy@(Flh6xt!o7nc9E zIRC#dj!DTMGRv)pj!s{tyLlR5g}xRms|&cWOF}$YHA9H(HXeVM87;dtweKyzqs%q5 zGofD1mYvy4WlLWbax~WeX|U!p4t!yzlfw zi|j|MY(YvmxLEEvX|D@P)!MD&0)-Zmq%})q`8-YvO|BeHj_>3d7cgAdX>K1T>4wp& z9#TSC`KPDADSes<+h^Epm+2z{3A5u!54J?Afz(8gh8j8fqgf51(}LN${)I%5NqJ$R zh7G54WVZH{!TjUu5tw#!WZZV2R0KDd*M8js(MVTjTTuf@3DU2-SFAa;Myz2dbBEaJ zS1**1G*-SfOXYqM^(mCZcuGZT$&23al@e&DdEW^KDTVgqnW~7AS6WH2g-^per7)%s zMFhe_`jW?H>%~+^Tp~@qK_59TFvlH6B+JRK2sB^YJ8#lHo8%V!q(?^_|yrPHoLbQ*6|US(0XAq zr%0})+o_sR+#9!8o9a$Ia^6{^%i`sy_}F~eP50V}^Ck#eHc47Y?JT3VHG;j><}L_( zZlqS2#5t7xoP$dtDNqJeVkOH<^`rj-ksyr1{O^Q9s}}EbzOlD&0^|^&JNn8ZPg_7B zd4Bklwm``P2pv9IE@Ui1iPZfRXQ<{>f~Oup6KKktc!p3b`X~s^&!d#$_F!yzPF%~x zn_V+A+Gw(tFPg@7G1VVLlJs1E=sAGE(|tE+`7t;g?RWeRPHY2>MYy+x!f0)`BN zY+>O=Bzs;1LBW{A6QaXoapba;4htsE?jC0E_3Q6gl*yvf3~m&1L*I_D8lf)MO$v}2_De=g$E>xF=+*ibcDR3JC(MSNV5R}y!W%d(D=armr!?A`Itp_g~ zoMtq0(A8FqryoAFnuI1tMDCMncZzarg;(0ASu#=KG*m<(iOf!y;Pa+`vanCCO5GsYe{4QL#Y&;9?o;CkRu+ zZsDOEz32s&BhYB~9yj&tj&{X53`W#cUi?A-?VQpsIbx9wF&m`A^rMzy7P9Sf|T?8@| zq{}_QF7+%I3a8B<_5WE=+;(9vx{^Fq>U{jLNJCljf=!Esba`OP7>BrpFUXhS6Cl(& zo#*#4ks)7qVR1Za-)BoMRZH0JfzMa>0GaVj91p}^I7rBAf3z2E_VnDBdVc}Qz12>2 zOO2VmARDn=EQbfBLJ7CgbOc%}&akhS%3jCaK{p)opryZ-XhAS>mgh_l6vz$v1j_G0 zk-e0A0lxD}oE%32^Vbp#X5>6YIZ9#Z{EmYiMI}oHy!U0oSfM0(g`%Rfu-G&l!~9zN znB$HIncn7`e@9g&PZGW_5@y&MX)w4Fg`q!|bL@l;3kQ=}7 zYt=aWZEW9bJJGg_13sUetW8;!45T5$N{vIMy1*!Iu@-tN22$CQ{w(G+RJ}^VP=uqN zEhyAFAU9HhBfrP+W#Uy;!o6~Y)p{WaVP91N9J!lqrB@Xp?X!X5ki}Xmax4*KmMDyb zF%3{ETai}pvd{qeP2hqAna_8qUqKHmt&rhSIW*PG2XIOCF}nmSKxw**$Me!aA}Mh6 zB`{eU^FP>vw1K5yp+kIFp@cqlSxBSR6CNeDQiuYtuUTJLk#os}qGX4iggn`4_Br96 zll`Ev$`%Jx&=W6J6-psqo=_pdO=VSiw@6_+K`gi4207B&TKptmN)yg@Vv&|vPf0>M zwUAt;akg5g0Z-(0l1Nl#)@vw*#%_s=jZ~mApy<__@4ynV3&~ar|9xGgaP1dhTevr9 z4`>sPs{CQNt^LWx2zwOef_bP$8W-Yl-6C5-cE!{-WiIz5Mw@|ynQ18X^6y$dvy*SMhA@Xi`hGtJ~Rp{?D z?1JYoeNSb+5hDD8vu*h=_%95{A<_JhF$=NjMD%3=Ad?fK@2%^bHkw~E$Uf2X31h>^ zck#+e2C7u3)izVXhL)bet*WvI4$I6qo-^IH3yuY%1VW}10I#!%z(VIE`m!r}Y7GaiVwxEB|+`R@$FkY=n2D2BA0vqSU>eyiI@%!d=W5SFzn z9j?SLU`V@Ml5jUVC!(Qb7=aiw<2V^A#q#Dlfx1}0QHlho7fU6KkxG>4=#65S?LG;T zOAIfdowR^2VW8dd%n7Mb-&nXB)ZvrnCumx|m}38MxBQ0>)vcRWR4$P)Qyb%Z4X#95 zi9?oc_r)kz>!3Yos`1vfJS%Or4fKk7|DS(AzPm$#kKxwBqI= zdv}rcsga)n^g7mmkY75YpbZuaCQRNdRXFT=XkTUNRvW%n3@Zt^ z=1T;3n89pC2{0j4G6ofME?&GG_ne}PDg-O|jgIZlq4h3zNK)JCy z3ha6QntAmx9PIc%0qgqW6t)B@BG7ejVH*tjoC-8DLtS~;n>?VrrrK2CM*1xqc&i2O zP(q#)2x$frqVv95?LPhwZX?1PIM2#bsr7U-p!!S(a1)_Ab(RFkQbVY`)an$-cGgm? zO#cY0;YY?~LTMkv3SrxE4b9b97=|ES;59@3LkRg$C6nCZ+eY0z-tixE{^vnL>f$*G zkgJY7JccAHvJ~EhyExYoMNU@Mv=D4@nh#W z%-F`hZxp3~(d3f$0b(D6THg`k5wXP6jm^@-F^WIo#x8Rqo9@NQ#qu^#g1xjV3~Q=J z((>)Bz@-Y6Knc)wtyUKrNJNw>xrUJB-@E!@2*SLfaPmAqkVO-zbdiN7icw;BJqRH7 zi>Z)^?F^3%@aDs;V3EU$1TJpRI!GF%)L_oNC}2~vS9@1JwYL463ycjyVn*D&l^5_F zC--^{{V-a7ORro`8}VY!QX>V}ZH7CEX{8VrTS$^W^MPbp{%Mvd`@anOzhi|84@O_Q zN%&-S^LC*w$#dA02}uE=+c_bJ7lzxY4pISO^wJb>b!vm0+Z>c**qLNLtO7-7X=;AW zJFnRmu>i4A5S5Bi2B0wn3kRa8lQGa(luJ;{#eMQr4}zPwI#6eMDVMc`i18s^*eTx1 zJPO#dv!R6}0qtr@hKowII6;ylciBGsR2q?j_ldov$ zTPIu%ZAb-$?!qn{BrQJ3s)Bl$W|xX)o7eUL&@7#&&Q9byIY?O{;wyyJnHxd^DIZJY zha$jO0$1_QMa$MWYwOfsOHF7&^Rds#NEZ^l1+=h-(r3vUHdUh`x{}mw6x46~rCWl{ zKukA^m`8n$dNxYHQI3k9lNOR1v=J=afKUqDO%E()#zFIP_wJ0v*b1kWy_3W=ut2fk zzJr|XEJ9~)NoexTZJQAx#%+vqonXPs{d>mUlx=SNFdrU`h}n3Yg>!EJsxpwINP=qk zr$&m3Bt;pv^@TK5Xs_Nt0rnex7Z?b(Ow}|XsqQXe$P-kw2?}thCFba=! zz+wKAkc(@>a&d~(=S~X%sXoQel#5a$_d>~VNMi#$+y^D3MlQEfx+MuQq(`bucuIJx zU(%>_YbC{~lOxW70lF{%@G+IzQ2h&ev+3_8J`M;JBvIiY`)epR%1X3Pyihs3LV=)VRn!MB5vwWhIx1L*5`C*NuNA`8i5isp~SA2)!^VW<Eac2SodcjbHrI=-Odr_Z9C*Lo`P_w< zxZ%Pkft|ul2$O~1+-sev#qvYF<<#q5t?TZ!yklP?6hQphui~uDj08d@H}|5f#soe7 z#&UI2AOQDV6Z_o8Q;KVW!_EY+1%S$6C7?7@pH{zC{#N~SDQ>jx3$5p!Bh{#?mJBON zV@ZEv$!+iU(f?T(WXXw<{!JL5C;qp?fRjJ7o~IJ9SC_m`o%U3I$WoGwNRUMNC!<)R zbj{tdE&?_T1ZIb-2~zXKt5p{a1LyU7+b9J?Q+=RP+=us2Cyy7xV{f;R_(2O=t)ej7 zhzf3+c&w0GFP^5p>QsSoFQ#_DnJxm3swu1w?mI{a8Y=w<#6g0@F=3*>Fj6hP#x_dxq5~ z8j2Lf9fmeosPVHBuO~SHP`ywWPnV>iz9%~g)bjd}6r>Pdsfh|vOaoGFmQYE4d6+3% zB85^o+)M3ch-pd-aK54TkkBG7arfPVnIolxH z%tpHJv3xtU^=n{={ca}k4dvT?)afjg%}iSoQOE<{khZI_FU|tU@aT4n3=nby05&ee zQd=qZ*U|iD5F0U2_B6k-JZYx33x9?m*MLPZTWdmVA15;7#4w~N>419m2Zw;nJOS;d zN?RMS5oAluAId`U8-qB8#gbw2?dCy3XU90hosXq%j0ukTpyMZzo=@c`nygjJ3vv8r z?zQ)%19pbp(N2_eNp4oLlDNVwd%_}+`mUoJMGF-7p+kH{3N@rK%LGP?ITZ~7h2~LV z*U$~)l>?cOEAD#}xkP6^c>Q5GjtT>I z+pPz}o>GgcGo^dU&nA#c+#l4v)-?6!aX{uV{iKJcNlIujXOAC^4|H{~0;0!4BSm=~ ze`pJbKsQnrAuh#|5K_lq$VK6pfCo*kOjK%@l_`jNUR)@az<9M6aa^o>y$VYb7#SFQ zrbvdHu?dSb&U{;9E>K-cm0hdPsMk9y$026qIXQ?5fm2ZL()%1uxw~)HjO6x2mHPk!B+07pL)|=8okb^@V5X|c zaGQD=779i!5a|r?7ST{WWxZ-I37DM?=m1=gS8E6HN0nAdkgC7)K@Q7(SovEz0^Cvt^p)3m6spVr^x6?Cu4krEuLi9AEomC~lPsz3fqXdR5 z!L90Ty?z8=@91hVz~6{QAwJPh#XKURe-^{X!r~FOJW8Nz*;~X@wP_%8P_S9w8D4Im zNPwzmGr2#M9{8!!siUzLY>Ys4#=CAO!nveyhlUgheq*oT`=-od`J>4)=NNCIx{}~P zRri!W$hcj9(THj%a7$AD4k`igAB>}(1;GjxWI^KGu4RoC3=e$wQUW##RFt#;uzN9! z3vxT{1PH(pQN!viWp4|zmU zs+%g5B4wxsjefHgI1amo6EZBw0v@56Tq#sg1ydm@d(_61Myb7T3W!fN zVpz3)wyYHKkOBI+GrlTX0uh*SWR??70gArcds7yhk zd%u8UXokp^PIdRzGzIl8G+&v9^7}>&tw;s+mK6~CR@TSekhpp!5^NoZ%}9QmmZ?&b zD~Sm$#igLmOSJQ4aG_7);jK=6#d0Wrr5_{pRTB5YSwdbi8H>fd)SqH*wL}mk)YzfJ zV$zH>xvK%d0AV$tcLFJW#aZ=~{$47K5Ig_3_yMDJH<(;J&3<1&r4S49RLTr1h2sZ$ z^@f^!pzoycw8f?{`N^lHW_Y6J#U^&Q3eniz1UYvLx@<^`)T^^ z`YoJfd89O82*(M;WCADU;U*lJh3)0rVuFE8u00WIoX{dwF2w38qJQg}_`qlZRr9g* zUG8baU<)@13N5`Hf@+kpLtVC?3%jqFr|$6doRA2i3-wwU%^#|f6;5HNemeV+M~s*P z_Uu4HNfuiB%c*N)7GPN4ZeKABP39c!@VbK>fK@`GW&YP86iIKw6~N!SOL3{)qEa4A z@L0CQ`dg{I22m+$IEeY8cT)h|`dSRlA0dt6nFg8nqHOw;ne`-TGlX{1445|&H*LhA zsxAx*C)bMoT6D69pVcD?RPW|(wGn@tnm+T`xF|&Gw>w z)&($3;kfISGRn*1lVTJP63C@atle1O)yX#*@!wFBxDshWUe+|l96v;wvM}J zR=#2j+ZPe(lxeAi;p>*~5{P(A;hjnR+mIYjlLb1Ky~RAK08cbMX{-SyP2$bp7gIqVoG(;xy!7eMK;g1a%?X4zzuEdyn#A@QKBL6X)QrW0or z?x9r@YltlkuajMpi-1;`mQRtSzfF?eeN`ZM|KpadYxDh=CI8Ml|7WhrcBBYQ;hHEO zrf|qGdtl=#@B#QMQMq8z>0dvU{-5-TQ~7Aq`+m&V8>jZiERB{HA^yd5?xU6E#h*7$ z?K|imhHN-~A@ET{VX|z4^9%nZH+8xaY@y*~CYV{xLFr)P>BW zH$GCMH|_HSxyxq;^K^x3&ZT1leizYI4h9J>a_Yieg(kk_*G0YW-W)uxTitPk8G2Ly z&(FEM3EFDX!@-juyLmH3kMDYBnzFH<<7ou|Cs34JNN>{g{pUn&Z9peFqbCrN8p+kB5~fw>*LxX0!(lB0s(v zG}s9UsZ7V2^iAt+y-F@yEyvjCzMNL?BORROX2y-hjD3Ib?04wQc}imZJ-6gq3+=RV z+eXiT?1sgX$*s3D@5$sYkqf=~sUwS#HrHoVedI@d9M9uX^ta~%1Rb01>1pIw?lXs8 zx~TiaS*!a7bAVg(;;Dc8rwgce-Qx)L{GhM6UEIn=tB>*D7KNJzo+PIZfJF8+e;#ri zH267J*}Oq}^zQqeqfNiXn}d6yS^C=@={=1GZS)HcQr8x4eJpG~Zp79q+-!ImI@QXA zxrbiVqHc#f{8=Ll$oogY#Rx&^yF=}-it}+^jH@nqeOu`IU34s!lo`ElSdvs9YNt=`?}U1x%77Y)I`g{`d?L=W?O65Q!pBH&yL9) z{4owzU`uqVw%={g#JAsHycN81F>4yFZS(3ZlUK;#m^TR2B_og7u)Vzp##UCG%N~DJ zT=2pdKC>lr21GfJjW=jN^0%V2@Vxi?O23|QyqwT~ScU8u7GrYRw}5xrth(gGfvtfi zx5=iX(66#$l!9n|GTLE z@~aMuzJV`mnV9Xx#?B!VI!8k`;c2#+P`zypvg&C|QP5J83*B%SGQFbekHm*R@2@@LP1J?{v__C%#Pv8IKN?IN-(KEHmzEQ&=KBG)GIOVma-0M{#aJ^c3Xw)SeyMt0WPDMu?OiFMLP}p%{ z@VMC_E&G`|s=IHOWWQ~`luTmP!Bgo$x(u&4m1owh4oZGV8ZjLE;e%`d|J+buZIVp( zo@=r)^FDz$k3nl_f>5&yHd*%x$6Z6ZL%$wVGrPP~9MpCz*w-LbN%K)(_=vRWtm@rW zGjs|mS-ePwC-{Q+a_ZF5pnlR!c>KckQ*d`V*Q30(tuCi`R^Ah-U+Z7dR;)7P&gDmP z);_DyY_39_`I>S?-G8P0ti+3Nyxjl3yyfKY($;&wyX6liJe5q8z8sV!dp3mY5)M(Q zCr{QT-R}WNC!YQjzyIXc=fS5l0BzUEDb<7@tCyQ2`}GF?;g!GpTI_1De6u_#Vqx)- zjgRbnsweN7T&Uy5)7)PV-=&0^^n``G4!zWTQR9A$nHM6{Ol$n5yX*90k5|TDubo_0 z%~eVIZ{)paR8w2jE_{@#R6(V86%py301+&7P>^1wid5-6(ovd#^d_PpT|ns&=^zkF z=nz5=y#+`DDK~n~dEa~ge0O~JzT=KNzVA=QhV1OM*IaYX^*nRVwN~k>S z&wWY8eXU-l4foB^zS4%G(r{Af(>?l#aKjs$P%R7gp39H-=qznh_hA5PD(I3cIzwVmQ$gMZaTz=B?A|T!O^vnj(3By|Ne9P}A_%$lk8A z&>-jWvC(&+rk+Kag9E#ELJ_?g*k3-?AxJ3@W{iz659esd3YJqSf!22xkv-F`NI^la z5VRScIGQ*)BF@;7%!6h#sxk8-TmVo01QyB7-i)sp@|Q1@cqpz9&+fd-k{5$^o4#+j z7;;OS;A7rpy`nDA^ERwvYU9q`C9RoCu(r&#lS-*NTY0n2>nl*Myx8VXPK&wthL)yi zgVH#A8jv)p*AH#OCuhZ(9sugsud@~&mek#K0EOHQ^M&fXzSShGT=}^7@_4>z&yFC}cnCT|*;E}f8M7Qr|Jl$H+&;Z2i`~pIUfhCo|x3_)=?-)!4 zZnbKLSNg8oESer^jM zLGJcN_eOQsEsEaeDu4Of^S|n%ffgNF1|oudK>(GSBN9$K(k_2T^?eQvGMA3bxXGct z07>rst0BgzW`;zm4>Y`2zW-)8jpJ6vy-J2F>GkD*6rVL!0=FkrUwdX-r)M<6ia)Vu z9Co-u$l=T__~ZhQNcq$}@FROM7q(1M`|9OR;su}aHLH$6w~To_aPl zcj=m6`hC^-&>G93`SIwn6h|NR(@$5g5)V9fhv|yhl?we8%>`4-e9&QsxgouO0S%t9!6etXGtB%v)NpDyPJ_9KN(41 z$ATG7M+f##xKmtEkS<7oBQF{v1|GjXNO@!+o$P8L?ZE?aGejjl{+@M%-wlkMF_`AO z7@zJ$lJI=^8h5 z4~e{$v2r#z#XQ!+C9eH;Ta7%!X+q{}3guaS>`v|L4*mOb71~M037%$Tsm_IEH&{nZ zm7;4v>U>P4+W}wd{A$81m0nxOc20?XgPT-LD1Lwxr_~56=j_bJ=A9iRkLs1!zt55K zw5)iNB_;-E-ISVC_cdtMqh0i|e%&s}C2a(G-s1a8ZnZxFk;dLq2pH~qAskxvOiDZJ z2aLvYCljKtMO{u_d%iO%c|Tegpn6&6EX{C4!Gk(YpR7SM5mEAdbssy^?oiR!-BI)T z_3TIs_OpqEP07wo$E%aw+(o%Mrx4jI67`5-ly#$a&?SMRcPGbMO-tCCA*!N4=W6~7oT*xV-vTf5=&D9E=JBO_z(|rq^QEW zyDK14!Tyjw_+dv9ZoDa@^Sgf1}JG=*faBV>(mu)1!Dp>vK(ncwxX%vC(B4(!l5I6(2*a&P93=Qhg)}7ecWp8 z(l5ymTzSiX($n@2Ohh>^zFV!41G-1i6*M8`{=yJeJPkxCpyUH zFnor`q22G5uYc}fbO>Kk?DBMvUY0PXYzRXf9nDqW^S;~4;o&O>6c{0Rar{^ZL zmiq1)NFm#x?O_`FUEg(hl1IIT&jj}PASc{*=!I`3ngK(S8t)m~@03ETzmJBl4XLKV zCB_F{79^{-M&4m(_XO#_%3=;4fDSmHYg} zXMf>WSldf>dl$6xNRD-n?3sgo^-zHRWSE?IzpEYpyr;5i;^OlpR z_vT-PF8U>pr!b3GUW7h6`0Rsx^nfU#zBNY^TyCwZ26q$Yt2ob6ihjilvE}yFaBijHIE!hf~Ks9y=Mk#5Z4P6N9T-UFXx^D zW-vktctY%a8(E4t>Qt{baErLQGeC-_YglI2I#l<9>Gv=*=F^@kPlohe3Sg=%WEU8Kqd2dv0Gv`WydrWMzBgSMt*Qg{Xs)r$C%B+(#g@>G9n zu%Ja`wzFN*^1XJ)asI7{;(ke@MW)9b%4*PkJiMEQ>^8F)xYR#r^VXx+`joC-%})aC z$|xG^bAk%Do6;NVNw0N_pijPhZZA=|_U#7GO-iDMCer68`pfn@I-PnCliCIb27(p6 zE|TmhE)OyLmito9Le}!v3}D&lM+bn1>CR#6F^XghmOR2~J7zMyAtP-I+CwzCWv-8C zU*+dVD5T8TMP&h0)345CAaO=-KA|@2$~*qbLX^@jb!zB1_jNG7n1=~ z6u7-fn3nRYb-CF9zG0_{62#8JcMiyiu0fB1(=dXff9Y+OBx+M^b?Nm)$cN;yVLeEz zsRan;(m`gX#*y=bWuBK*gM+)fvyiC2*T(B!+sVf?Ab--VIldw!n=_kU{aRCNO4i7K zsf33ac0+l2VTz#1v-!HI28VqAeRuqE6RNEmk3IFGyW?lmn*p^-NTiaM%^QJ) zD{9ZrKiw>OC*z@xOGh zerjtkWl-kV-)pnOWnAq-n#e5=rjPqQVZ`+7ngqRKU4AjAAd3k;?ZBzlUem($0T?1S zkR)>68;mX5S4qwIubiHL$>sZ8{BYZhQC9(#f1nATaViyKx6y|5z* zrLt{g5|SHD>CL7Q7od>#q!i5_m3ypmpPFbC#KV%OXT7WG;D}YVOexM>IwJ?78@HYDMU$Q>cT&FWw@P8qYk%YQy7cS9>4DVd<>5 ztwODG_LlrATI@vq*Xe}2loov5v#pydq$z0cQuVYQxL2DxNj6cV%ogM#V?bg{hY<_X z29~)Glbm}b=cLwKbiZ}|i5`K>r4HfM7f&f@T4j*6)9x4$4i zmJK9j`Y2p%Ol?z~_`UHl6r!qH)vIiNJ{p}g(CYeFhZ-b3wEZMjpopkeR}QHYMta2a z=J}*r;?DyB9u)FPcA4hJS1AXi0xlTlL7S=a;-jwoqfSo!-z-16(Y zz33@=&V!@?Pklp~mZd3sZ=DU^#FDGr=l<=sE{*gadc;EmQnn70<{kyC$omnJcMo;p zkkwg)kz2v^N-8f&gqUfs+(LWE4*6Hal5i-57K%L&rD`2MhL27IibWt16NLR>+2I2L z;-H9M<9zb=_%A2U2om4}wa%=#8U;8OTGf&@_-b7I=FY|T9$E8-jraT+oy%vJP8sg* z%fDv|9;`%5z&R~vv2Z=QIcaS>3$Sy+Cj2mCyPlw>NP1 zjm*B^Yp_BuFDPJ(TWe-SKCD7r5Nw;+MT|Ti|E-0H=>|uL@%}wF6(b{Qj0b~?i^Lyw zT(f$)*_1SDd*A@LOuX|FY2~PGx_yp6CBxzRDyf zwyJV{=bQw~)#u%w;)oeU^{j`xYm!`G-^2Kq_v}iL-`lz-XFZMYjqbVfDY}O*3`iFs zIrdHeNU2HoyPq}cXp8+J?AKL%HSk`vy64o8%m_Fv>$Tz+&z!=o36Ip?F+a<}I*Qf2 zJTKS_7eT=MkKZyrBXP%!X80mf&*CJj^6;N6R=q=Ql78;nLgiE^k2?Gp9&TV{L?s|u z*|4X8dZ%xEl%VO%>0?e^1VGQ??_sLH8a>?*iskYfq-}^pXx7kwmNLIh!cox`V zBv%~S??Njs*obAehF$&LgbTSgqJ_lwKnIbz`AY$DM^TlTjs>cfEzp2=#v0F_JEuOD zX7k@(RQZ_mhyvhUe}WD zQ~q1l-N9!_@6eu>&gu4iKZ|7Zd0O8CZN!Te=Wmxp^&Q#+KMcK+U?iXHx3!m$nCn*8 za@|dwg1YxGyO}JPC43LRoLN1hX64|h`_RJxqYdl+#^_xAOZtaZoqTb{1cj;dAB$mg z1nVL~If2+QncTDJBuF~~(Hi z)5*9d9qpT=?egj;53UO38q57jEkEK^@>deN^Sr|1^$CWe)2MKV`#MMoh~O&N&_1r#wh?40Trf8zrc%AOm}sZptY*jD;Jr^puZve#3qm=q-5hh^aXtyk5dr{&BYx`}@= zUDkW~qSt%T5eIFGqm~+JU0J?+!2P0+1~2syaMzE2_cXX(Jny2L&N7sAdpa?6@Uk>+ zcEOwTR+r7L(Tl~?XXv`w9>YlnwQ!b}255l0%jX|ihbt2qeLb>5PwxN1q*5-?6m}RV zq&>MJWI;Or?e<*E?Xuw%p)vUQ%d@TTD_0+h>@d{oFIT<)mIGT{K zYL)A+@LI#i$mu=ALnKC|;kEAG@_iI!M@RD=aRGTZth;>=KM7LCHqcgH1`=f*!5QOq zAX;=`lZTY$Gp~qaegkVElt2AreqYuZ3((z)f7-1;%9!o?Jx}EDhGMqESip_pABxt4 zB()G-%*^^GMup5miry*l_T5~}Ldjp`edJwieYW)N-<-0f2wQ2DrAZH*|ChTMK5qpdCpZTF1zhcXEF|+sQ z6=r5ELbkUQD7R30Q;7v{-^kKjh?I3@E`~~3>LPfKj86$K=+fEg2YcJh4LLV+;P02M zm=_YiC{F8@=w$4FjOUSUDhQ$#zaJ{!#|;r<J$?fLkLvY1^^}KMeud{m6kYH{1 z`O2^(#M_d5pB&gsSAwjF05_KUH=`q!sfJBK_)8A1DerE0D(K;Lt+*bL*!I8))%7Izs1YA>i%^et!YOwvX0!PBR${r<$RB4@02Aw;M-khto8nkDxD1^!8E zW*oH;U7p*wBl{7`?A&`WR~J<%NAKpwz&NVr_r9bW02zB-j zHe2)tC(_SD3dBM=0SzcN>YMrHooF%}I!W3|GzVvw{>Ahy_F4jmH-Sy$s~r0RX13cq z-{H8wrOJb^A*&BRoPJb2_Mg)8eI=iyl3%&XH2$pW$+GCH25@5v!k_-0B;nI1T{`jk zuf1-&H|z+SdxmvVy?S39s&z6dwGhVF2ISeHPP6Htx+pF%htipQJz9u+Wa`L0oU=_2mp0L+C%MKM|Wcf5%cZl;7{WWbo= z>-WU7A$}D9d7FNTj^g1@5+_zxkK;9U($7zm$GqDC|BgDn4eft_yULI<6tn;4pV3l@ zm9zGT<>}6ej5qq8r}`#9F_vNfen?8vA2df<6Za=( zO8m~|-hcI#%e*&!?QP3`=+f5bzgy#xhWKhD=oVi?6J$8sFKRyjnbawHq=(M55V~-` z`9ii1?S|^Do!_Bf;>$`8)N3K=-~pPM!zA@84)7OG}c7qYf=Qr^-?TA;!C2!kM!GqVtj}$g!6GL>y9&CLr z`?Xpl>!I}-Y-u><6)B^YPd_`&LP0=Tb5dJ}$l4^-+f7z`!2*)+7d*Ao^!ku|? zI<`Zmx!s6zaQU>KCKRKe1U%m);ooms^}w#=E_kn11x<4Xo{aSsXegUG4I3t#7UqSn zI>f>3qEAhY>PhQt;8WMp<<_g3G$YYK;OS1|i&xMl{ql@ZFYTh{pobe9#mFB3x7Q>X z*%-GbWY~w=fT;kUhSk70vM$_VHy1d$Bml9<9B|&CJCl{f%;OtgGw%a9=&IRr91`xH zddXSowK&}p%2lt6Cq|d+oZ6pedP)0+nC3|2CHVlpxo=jJn%Sqq^MLifEjaN(+05aF z<>}EFrj(nZL;Ia8EZ^Cp2*4kQHFdcm{Z)1V`;OpMMn84p{zOhg>iTu{Qmt_q1bc&YExA=~{GC(I? zn=?D_4g$MB)Nh$#ZFS!XO7mNdzmQ&V$7h+tuu3&vj?Jpxgp!XoE=q&X>99YQG9d-# zWbmG}Uj2eYC+*l43ZZ;yKFmmoLHAimVa(Yd%VB&z_Mg5_c#m zqppo&Kq@(bhPDfyfJ87scgpc&^bNvWI5yqbrlBT_KF&9L$b=i?Y{GLmg=fPzBmC!V zU%N>n5t^|+Kg|Z=4$ty^;Jp{4z*JbsCg+lv>x}cRh3=&i@ktk@vvA|f zob7JwH>!(W;cRZ!`U>S>?!9v|QH^ay$lTYuJ<<*kd_HJB=i8EwBpFKx&%HDCAMK(q9BjU^mD)sC=H;B-=S&Nm%I&XwTF~cTGiV}wuggORcZDN= zAr|}`ufsqU-O_%PT@U>E7Lv5GG^_E%jd>L7pECyr_3luLQGi;a*{=8rxErB9vbDa$ z;!YJSr-_%?Y@u5(AHCQJ_7k1qLr-@aD2~b2 zpqDE0FD@pE#59T3k(AVV)rF;VL)|8&^>^_K42r`GvUTm{qK(D49LJcMIq!Y2JkUGt z!q2=OIf&d)NVK@(=;!zi^a&?0<=y`CIZ)v=>GnZP#qquQB$L)lflMLTEAv?6o0IVO z&l0!lLOY`}6Iv`V8gT{74@DMDKMV>Dvx&pXi@el7AZ9KN7XMOlp;?^qgmVnDHfKsK}reeOl-RoxA5U3G?==k>XDY}5}_>)w+1+Pftd2$d-Ee-Vur4Tj~ z7GofA^lGvL&tKW3W0U-nD;AsVCgR7d$bn{2$QwX2)(6NNy+TFr!u(Y#GPZpa3b4P3 zb@LuYmdlop*FypI44yF&nm*8t^TzqUT^%3&So)merk2Y)t?srzJ6dheKcIC1x`ByDUuo$6s!jHO;C@#?AUV+?0<9Qg;ZgJg%wJgOJ^ScjvCQs8GM?3 z#_^;g=CEc*sZr4P^xVx!9(1w@a06eg6%7;c$Sqafg@Abr{?t3f$+i`FkadHpxYrdQFr9KZ56%HxU5B>f*7a3{i!{t!P-z>&Y+9~2Qu&qi8=CISy< zRrltjUbDmyKq;XAbQ<>l*55EAoicu9ULp?|I+FZQCOpTj1>^`;vcmP{gzlZdn|7*J z)e8pOmKD8*KFGtr<04=5>XU!CMzJ*fl8C$fCMWlQGw3 zOYUq;rf~6FmgpW+x${ zD;aL{oF1y|sGGFPqw-25PD zEvmZL8$UoL(u5h6N%4_h&W^Y82@IF4hQuQZ` z%I$Gqx9w!pM22M>O)EaK=Hd7B2A=8R9^Ykov0+`WXl2gj5tEF%>TI3e9akD)pUgex zqyIX8xcnk&h08qml224tVG#L~qhW0XimPpwW^I+d8FR)cV9$mgARv51Fn-mTVVSm7 zeI|>*BYqLH>1o9Nwm~<5|1ZbZ3MN~gb=oV5kuAH9c{jXFCbwsV@pl9?+EnKx2jhi) zIvVO-vmChnh65v7uHV<0Qvx!$A?9it<;sHes2PzT%)>49 zO!nX;>tbgbB6A!dbmcIceM><cM>p--=T1@7nk~ckd zSJ4i8)Qq}(#)}6{zWA&5&LQ@N!}pC;ReSgIbnf1rvXtQd;LN!<_(0y2{bh*pa{p`m zMr%Di+1&f5j8ppo$Br_~I-b+u#5m}sWP{10{x+he-2np#XSjx0k-GSZ+2Hw58k{Zx zN@00?V0pnO5H88Nn`%1;l zKBg$LaMQPeU1xKao&CgU5XEe+-)A%y);RfQ!IA$(*p)uL#QWil8zWu^Y5_`FrT!xT=0+F6w7kd&S zpwOe=LwehC_53m-ZgW4HL1XEvslC)~$|iHc7S`lfj^Gy=%4Akb&kT0aOzCoctP3nm zQvi}lfnSlSTmt;EYt2xYHr3}!Ge_c4DwQ>yRSFr5UMz89@-ZeD=Y!C#Fj)oLyFeL# zYu%fDX^8X}inlLQpNridOVoN;{}}USrY;lR>HipHi%|)i3DcqvIA?8i@Yo z)4cLr(e!MtLo*OCG*Bbg=zf}6{j@<6{fsJ_CvV)Qk9ony!v8c?uPP@C`y~O@5uf5C zBq~Ze&eEB2(i2}wFoWn{Rk!W2FWcgNHVkQz0Z+H<5zgeILiu!?`Bryk}py20jJ zm=#oUD{_`>+hJH%V7lN2p&)%rT(Tqx(!{pk+;R}$(Bp#ve)gfw%G1=@{Z!q5 zbhOFWMI^erNi0&%X!WyhoL1)RkVr**wtktIFLdkiu56yB=;!8I{8c%*>%4XD+hvA! zF9l8x-Zu@u@4(gHT53cOwsuKKc+M>^zdhu+`>-h}U*1t^$+jgx`1MAQ*wT@KO5j-K zk-(d0!9;#rs?XmE^io<&2XJX!n(u=3?Gv5&azStpaqc1{ScS~Hs_x4M9EV*O>+Lt7 z=+U=0tBAiP-S7Zm<6CYpB_^j2GsS7M6PLS=dRzY1vyAP2-iMlZ*!>j@@+3rMNb^LtklNwS)^FgkwoL26B*gM*Q!xrh1k zH}VWOYc+1Ac?-&JZ%=tdsbX4|yyVL+j=CRijv+V99D@8<;#bUaAY9-bkKb^gqe$qTk8)h|E#mpSWQ2ZaeWHdB-;u#qoe;n(!%|Q?7oD=L0?cn==KE64~86PB1~|#uZF;} z8*g{2+Lk|2(N?&WQ7}=#ysNVc@r_8(7=Rlm;B5GU_m zcV6G@jvGg$jtHBjt0wQ(FI1GcCG@DMMH(BPvsE-?4gLJK*`4|x|G4KCzpkDCJqquK z*Z`HELj^Y7>6Zp{6aG|rNd4?HNhE*#J5vsl99=6`-^>p-O|61!59jk;AqQA!wYc1MMM4(NYPN6Ig zPp__7#lMArG!n)wVy3R3)PwZbF1q1qw^Y*s(Dn2~oBItfPP-V@8yu@ixb`|=7oE~vRld&qVL>~KsTD_ z*_%!`4{&EDD0o8xA)%oyd$g z?SA`(f6CvK#F&@(uf>0p=X&A)dz9yY!l?j|-|WTo#i3Qz;#-1B{S51B2DMQf+IfQz zv6jwC;$U$hFV0wTaT@v`Gz_4bxq*FpQ&l{tef&+mRY{GL_-cxBqzA5t32uhh=?PH0 zEz0eQGnuq^C79uGYB$RnP}lzDVK)5g66UO(x`3UEI?*0w%{p^tq-T64d7X$!X8wr0 zpm}|F8NrT`RD_Q^4k&_eN~du`DW2SA3=nU-1tBF1}Ddt=cE65H}OjL z-od(ezW3i0{7i7zrQ+Xp=!!*I3IB!+Y8)l&YW@uYoW(mxPyK5&`C~)9|Hc4jB(i6X z{|y=hJ&|DhkB*PLbg=z5YOu>P?9%EA#ia7@H(!L6q>85≪@X5b+xeC?>*h!Fx3! z<{c4@*6vN)ni;bONA1q<9s<2oPZ0`J<(nETGQfR-q#fF4UQ5&w=^k_KmLVN`0A8-oF!iQ!%gQEl1lXSbedtfRqt;XQ9i^-XuW1Kyq4?9Vf+C9f@6_Yv z*<$6_FLiXD=Z{)y1f!QQ!b^uWt)*mtb;qN)|Ge1E7zb%$why}uaKBO)V9jAwAj2`V zu8GL=>+_k01x^}dv=MMd7NHopRp8co!TCf%>$X8st^$Svh>keG)o=k$(W?U9*N3|M z3~8U+zRrat<(nixUWoUyD`Y};lI69AV9WlZl6=QM#a#CAhHvy#N7$p&mglt*9hROj zQXtm(4ZV$%F~Gmq>22Eap|OQ}JyZu!r10Q;D!hFCookiht(z6F4oR)pumy&wJb1$z z-P8NP#mkkQwy<7b-EqoNB!&fqJ6#i_luBo z!I-Y?@GkGr!*{k228Z)Bk}0z+2+WF3ZD^R{4d*W_=1BTM6@Q6FqZ@GA$DeX}!)0Sn zKN?G?H{&Xre(-wa5f7Y9G8SWZxRYvK*O0mMNtmOkOrfUrFn<$n+>zlP>DkiA#{Wq4 zXAJKrD-rsA{|1hUGefE`o)31bXee)|4ELSAA~OTey7=^%SJXWTR|?~L=PmEgJ+x(&MP@u~Jib6HOoPwr`z<->P;X8SWO~1`=TB&39YUd}QMhGI zPTWRd*9Zb66tlUZk2Ao*JvWT72p|r++Lr|0$vf!&hTk>iaZT3idFB^_pcSbD!cPzm zZiP+(;X0YX&g&!i3j)SU;pC9d3WG%uj%o+1+7CNFNOXrF_rORUs4J$E%}b&)5GuDM zQg8?@cv~(~AEt>C{V<^<2hFECMKi!VH4_z;RncreVOON^hCe>a%RAw6n#p`gFD}1FEcl)J z3LT!)QvBH7)u|l4=UNo=t(g_i4k)&`EfofQVtVD$FpqTcqKW53jEOVs_@@;qv4UsQ zGG%r?eAwQVgy=nqC^2ArjYERs1pksYo7TbOc)z6@GdJCS7$t%oVhi1C!Ow!Rg+@3q z;he$}JwlkIYduDU9;sTLF>+xy`4>-$Wh^`gZfD>z1y(0h4aK>aLU~c(fjlBhUOx*G z;DZMA_O1uic}i8pR0QfFo^m=KefBLuYHi-z->Ihrqze%(>5)G^=3q=7xYF@B2*=6N zF3zfX^}uns{Kj3eG@!uY9md-g15YPu$5Y-gGj~5 z3Cwc&32~PQN_*8n&AhAztMYjl-ZQ84rK-Hi-h`lPHB}e@e7bBGKACmyIIx@~Vd%{! z^+QdKS(=17ulb&jwa2m(04(^`_HxeP9C`MvzcbiRN%|v~eDE|H9J1&w8lg&znvM?& zU+g*pFLa6Ti#fnIaH01Pa6mBP0)#FIMG?-!xj^d_Be>B)t0Ts8nMMEoCWIyKC<%lW za#xoVlAcc2l?b-=j*i+{*vgG`YQffOe9nU4{PwmUy64YbOS)>_G+jabW^qAeW=&5e zmRQy-e_XsD)IA3Ja#FW3`N~Ck;Hc`+NeS>s^^)oPK^VPZ~Ru@?~l7YS=gvDfcc$LNb-^&TAoNdJ@Kd{+d(c zXqU2*`{_Q~0u6A~s{XZqaRBK`((J@dP}XQgwk&|jJDtBS?4JT`(7j)+1Wa~_db18% z5*O&MSH6i~WBu_xsKoS+q5TKr(BA#XIm>-^U73dV9zN0a#xb_)*C#SASAu+g`N(V? z4w?)pf6pxCajUaM`aN$-%Fai>`zR4j!%c5xvU@VXL6^U{qTM zw@78>zb0taw6g{*89sF_Xt|ESkMWCV+_pi}zrqaD=A6OV)Ls_|fd`z!fdDS&Du1>Y%DuzHx zi{+8gtE~Iq*Xa28vTN; z+TkJ$#vT{oW(z{rl2t{Ef#{_O@R>9CY%Nt6e=I^cCc-gX-$4-kSDfWZ6Y!!Ac)rYK z*|M7WVQFim+NoZ+O9m2z(P@^+qgWv=0Pb~jDJNUn+!>z2@w5Z-D9YgPOB26<t^U)X6w2^b%S|+B-^4qQ0}(p;|!L0tuXtC8SEr_9v?~HhP-KEe6{p# z{^NqKFnjN<=J`sEou|h;W^?1*L#+gJ5_|ZO>Fk{Q)Z<3uSZxXeh~>5H2TW)_;nKe3 zE~m5yl$8q+508895k4AzoC|!Tt8ABIk?7plqmny2OA^D)gW& zhW3Rpn7{@{uN~ms-YuGSy7%wSH7;C$s3>{T!wxmn&?sdZIIZx64Q~F6#&;$S8Ru?| zh4O*qMZMurViC=b3s|?h%-Ay8PvxLklFglWCI0rrjdIP@UmMc>y?Tm_en%lbwGZHP zu2b%ML!pjb?1%FQx2yX0mCx@y91)H^f#~^o-2RF1b?yntsneVEOt_J=^D}KXKbYC8 zo7l}%A}}Qq_02ZFg;3Oh>TjYBP0DXX*0<=~aaAJ@e16E;taDZKHX|4}f8Y<>f#Bl6 z#&XCZI>N7Nb9||8-l;ob4_0382;O`=9ekXst0ceLu;9n2HMB3I>-#|p*Ps$bZ(C8d z+rRTLcF!K*KJg<$u;l~~Q?-5y+gBa%wM2di9F?j&x=Ao9BvxNr3p0<3SeOJHP+6g; z4?+%pL-PyJb_sqtMH3P@7MBR~=;8;V{0f41Yp%;aP#SE|wymnicPIX+?3 zLy1T_M1FefUfG+w#!2`37tH_xMx;q8GE1DwdNsvM9dZMEwPl`fOrsGM<&zk6!yNK0|}WNax<6pGX+^5n)A>{%rT_bY7q(t@@zOV zh6!5~##1H#aD!Zn$SD41U$J?&htxyQ-+Ad}zweE1o=kJu z0Da|pExkGxQO2ilcs|l<_CTYC;U-US=Ia4}RwFu2b3r5S$muJ$ifKw-SdNq0ZZDjg z&cLf@Fv#QfE~(l z+>;2HmsCE5AFEe9*>ij1dgE9Q?qQG2x1Aq-=YDB0r+<9yzhchR-}Ss(`{_-M+U%XM zS5x=0?%XaMa&F=ubHv{^GwJY#EYTASD@iW~uV3NA9-6o8(4%BmmtLjj2pcoB36}ei zc5kn!#+qPPPDAmlwOvzK5 zyL4O9g0|HP_~P1cL)m`%1vlw!>+#8Tt4y?!wf&l;%$pTSBC1u_MMxKV{?+3#WFkRb zL7`(kTvV@}^-MN5+5sr&r9&e?F+SZZHoftjE*@)%VP-Q{w1x&;uW(^dNsidM*t*Ul zAK!vrp4n#JeKm@BJMmx!*R4$Y9G+K)utXRbf5wuLe|QUw;C0pfU5r@Yss5EUVZ}}| z_dP3>Lz(Pf`M$j@Zn;zwB>wTVK=_1f*P9;eZvUMh(^uYGEg{Tu2!MXubqV%2juwk}~tZOXSVp3**) zKuoXwits;=3~2b!Q!JnuwGO6!WR#t+e3-6d{pjdq&j-UgpR{xh@2Po0d+x&T1oX`@ z*IwNH#`2?_SGH;#xWw~Z==WxG^E#Xf>nm6mJG;bDr`O(-IK2zBLm5_%~b{p8T3c2W_{^F5Bw5eDJY0J+CkfOB> zn7A32qC{}=P=E|*Wr3yl=xcsJXr?wS@}2o-k4iPZ&^J(5R-Ce9H{CFrx2DaPp6+|s zYhIdB?Sf(Jy%MjJpZ$kNVqwbs>g0KRG|&0kiSDKb=TX-6=sNhSg^3gB_T^9&#>;XB z>(nyo&vYN!T^m5#H=2HsguF=n^Frbdrlhh~{ji18b`OeEI1;3qxa zkHgkD00K1K(GkyGCoZTSOgaWV^8Nh9^No*2S5?6oNHwnen2B7b@lU9xX0=9d{)sndiB_m?yc0u_<2hN1HC>&mgf(6+ zkVrYd{AgPmut12gmp<=au;y?)6Q|fT-N?!lX5PQ1-TiiUbG~hE`_CQn@&0dT+RSbL z_t#)<-66h4(DSjbpTv>9mtQYJ8 z=r*S!V5gY$K_{H$bz!>I{mfZ>kTKyK+tG%)?wx)a10P=ljh#JgU%Y7<%COtb-~8^W zzRwXOZogh^{x08ls@ed0-h|>V{L6M|CM#w0{my^>lqi#)+`G Date: Thu, 11 Oct 2018 09:45:16 +0200 Subject: [PATCH 03/98] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 30270b0..bb7c0c2 100644 --- a/README.md +++ b/README.md @@ -281,13 +281,16 @@ The Destruction of Asset Management Instrument was deemed necessary in order to - It makes AMIS the 2nd most generous contributor to the ethereum genesis block -see pics-, the decrease of the natural existence of the token should increase its value overtime. This phenomenon cannot be achieved with the current monetary governance policy being in place by central banks who are prone to print paper money - see pics of USD/GBP/JPY/RBL decline over 120 years.More recently the rise of the dollar has led to the free fall of emerging market FIAT currencies. -[Amis Token Holdings]Amis-token-holdings +![Amis Token Holdings]Amis-token-holdings + +![Amis Token Holdings1]Amis-token-holdings1 - Subscribers: 750 as of time of writing [1000 Amis Token Hodlers]1000 Hodlers of AMIS Tokens - 1000 Subs beginning of sept 2018 +- 1300 Subs by 11 oct 2018 [![Block Explorer Analytics]Blockchain Explorer Analytics] From 7175fc72a5552bba3f88d48aafcaa0345541dcfb Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 11 Oct 2018 09:50:17 +0200 Subject: [PATCH 04/98] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bb7c0c2..10924ff 100644 --- a/README.md +++ b/README.md @@ -281,18 +281,18 @@ The Destruction of Asset Management Instrument was deemed necessary in order to - It makes AMIS the 2nd most generous contributor to the ethereum genesis block -see pics-, the decrease of the natural existence of the token should increase its value overtime. This phenomenon cannot be achieved with the current monetary governance policy being in place by central banks who are prone to print paper money - see pics of USD/GBP/JPY/RBL decline over 120 years.More recently the rise of the dollar has led to the free fall of emerging market FIAT currencies. -![Amis Token Holdings]Amis-token-holdings +Amis Token Holdings Amis-token-holdings -![Amis Token Holdings1]Amis-token-holdings1 +Amis Token Holdings 11 oct 2018 Amis-token-holdings1 - Subscribers: 750 as of time of writing -[1000 Amis Token Hodlers]1000 Hodlers of AMIS Tokens +1000 Amis Token Hodlers1000 Hodlers of AMIS Tokens - 1000 Subs beginning of sept 2018 - 1300 Subs by 11 oct 2018 -[![Block Explorer Analytics]Blockchain Explorer Analytics] +Block Explorer AnalyticsBlockchain Explorer Analytics] USD - Gold Prices - 100 Year Historical Chart From 15dc98dd89dbe67d9575e85e2594fa773686690a Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 11 Oct 2018 09:59:17 +0200 Subject: [PATCH 05/98] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 10924ff..1dd3f77 100644 --- a/README.md +++ b/README.md @@ -285,12 +285,12 @@ Amis Token Holdings Amis-token-holdings1 -- Subscribers: 750 as of time of writing +- Subscribers: 750 29th Aug 2018 -1000 Amis Token Hodlers1000 Hodlers of AMIS Tokens +1000 Amis Token Hodlers anniversary 1000 Hodlers of AMIS Tokens -- 1000 Subs beginning of sept 2018 -- 1300 Subs by 11 oct 2018 +- 1000 Subscribers beginning of sept 2018 +- 1300 Subscribers by 11 oct 2018 Block Explorer AnalyticsBlockchain Explorer Analytics] From 90cba16e6d01e893a01ed0fe85355e904aad0aa2 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 11 Oct 2018 10:04:47 +0200 Subject: [PATCH 06/98] Update README.md --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1dd3f77..b1b62a2 100644 --- a/README.md +++ b/README.md @@ -275,9 +275,13 @@ The Destruction of Asset Management Instrument was deemed necessary in order to ![Txs Hash of 3rd batch of Amis Destruction](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/200000-amis-burnt.png) -- Current Circulating Supply: 19690000 Mio AMIS ERC20 tokens. +- The 4th batch of AMIS resource exhaustion took place when 10000 AMIS were burnt and subsequently destroyed as depicted below: -- Total Qty Burnt: 310.000 AMIS Tokens representing a value of 364.000.000 USD @1174.93 USD per Amis ERC20 Token. +![Txs Hash of 4th batch of Amis Destruction](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/10000-amis-burnt1.png) + +- Current Circulating Supply: 19680000 Mio AMIS ERC20 tokens. + +- Total Qty Burnt: 320.000 AMIS Tokens representing a value of 375.977.600 USD @1174.93 USD per Amis ERC20 Token. - It makes AMIS the 2nd most generous contributor to the ethereum genesis block -see pics-, the decrease of the natural existence of the token should increase its value overtime. This phenomenon cannot be achieved with the current monetary governance policy being in place by central banks who are prone to print paper money - see pics of USD/GBP/JPY/RBL decline over 120 years.More recently the rise of the dollar has led to the free fall of emerging market FIAT currencies. From 18cddc9d265bc173c4c5c828e2e4f5024a2a41a2 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 11 Oct 2018 10:12:45 +0200 Subject: [PATCH 07/98] Add files via upload --- images/10000-amis-burnt1.png | Bin 0 -> 91454 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/10000-amis-burnt1.png diff --git a/images/10000-amis-burnt1.png b/images/10000-amis-burnt1.png new file mode 100644 index 0000000000000000000000000000000000000000..2166ee3b7f20874f9df39b3649b78da217658ddc GIT binary patch literal 91454 zcmZ5{2|QG7`@d48Lh(rUvNYMFWT%qsd$N;|B>OU!VJhOWXPxX7l0C#=mbyzlS#|9tNG%sKZt=Q{Ut-QWAVzSni)OpSF|&-0#VU|?X?(|u^p zz`(e~z;Jr}9Mefnjo9Mm$=|5}bDaka)r0(hPR_XBH@eTjP@8gr>U{R(oW)nyCV+u~ zt>e${6xU7t*9;8w61|7_ABQ+@=QF?N8Yj?)MpQ3s%UpAK<50|9!gBZFDOjy2Z}?{# zO>Wrf4&tvQIrZU(MvAqP6QbwM|GJ>B<1qsLdQkUnA)}5?X}gUg4(8@VVbZ=9e>u_km!mnJ2+3uyzTNnQ+8bR`G{7R;9`j7j{AsZk0RUXS^rSru&U;UrbU8>c6 zm=BY}-2KlJi6ZxseCeA{t;SjZ5pq$ay%Z8HLLcls*Y}@CW1KTTHCZ zj3_nRoh~v9dJ)O65yn`0FbrN?OFqa2+_xid#_{+;5o zNS+$H(IE2tYRo_zgz5` ztOAJr4UxJayL+>jUph9jeO*wCjTp^(T2NZaE;-zs^mDej=birma+8}8G~kgnrkC%e zQ1EidMZ%13CNbEfAG$ka;pSj%kgVRI9+#XN-Qs0zoV|YFa)Bi!`{ys4Rg8?i>ZhiT zJPbkZTdh>KU02wVF8>0KrCUTUfO&acwz*LveBM$dx!03XbiGmq{deWN45jP2fPrT{ zC0`F~lPlBj)L=Gve-}G+daNscET8n2s>SkH9@vSOH4cA}h;Y~-$UkuHoBQ?MQ*Auu zK@TsK_N<2@7srntlhaAAkFT+H@huLg8+#BRAF3pLM7fmPQcmWv+ba3H9*G?s2%8JT z(Df7620#)0SygxnjCK=oJRl1?=IjELll?oF?ZkSU5fAl9IyVSEq2)ituYfte88Iyt zw-;X3TRziKXy3b(N9sZ!Z!68YmTaYm6{t1r_*HIOOZz|JqFJm1x)DP3!Kw7?D657v z-#qFXj8h3X!V~%J)aQU~Ti{(fSM#kURi!ss`o^Xf-5ko^WrXr|x#Y3ta@{S^nTX2W zOIs9$h9@e;s$~yBa)85)fM(S<4uCDKl9!2I$ibpw_muoP+dqu;F}EQK2Ka9zE@Q7tG>YS+*Bs+MH{kARk`(}*a|=M#87 zqS)^tMebx_B|aXB1b~JX+Tzae-vPRP=h68)&2889z*-sSLOmtx*z%;f#}vHW@~Vr; zgCpxc(YZ%Ioj|UWssxM9u`J~gbdbF-3x8S`=B3M~=lTQ!ZmD;~=-Y_*JMc$w031r{ zg4|s^vXqzu01pHF+`g2%mdN{>zvD!F8ZmT|IfziqD(FlD_|6Y$+RWToyK9pFGfGXl zF{wA%sKmL=KVESs5U|%AhrTiIU*cu0Cj3;OW#y(EbQ;k2@ve-SEw7N~gw5=mGR!F! zd5&ey+!Dvsa?mRq`Q<*oIbJ0I^{KIiM1mF8a1*e;a=W;+GP6tUt9FWBLEcnRZKYkU ze5KB$PR2&q(RV++vm8Bg&CC9K=ZkYS#izGx>KbUho=54zABNb}m7HuwDzwnw>;)uL zC&sM-hCl8H1IsEsj|;4W=7g{fxiocj(a>bwW_$kW+BgSGY>yDI?IHb!<=*;Qf15jM z`^ZP25hP5COipv*bYV+oL@H;qD1ChIa@$YX+_%L$-@#^a1S!27c> zDh;MMpH_FOk4?yaepjR|{M{_}EjFir8CFab*UYq$e*!O?RZmzYj$sL!@-nM)fFw_IIE|JFCJPl zd7{|szs?9C6V>ov{)!a_zxzpy(*HfFK9}LR#o~2w!DQsHy=?eRj9)B%C4?Q$`N>TXVU!Q@^s zE341wr4#l$TrTr?zU^DDm8TbEpzp}I381fH|2~*(n>DL*A=IseU3cbquVxe6)W{9F zo0TdDXddUAUHWFx_$;of7ZQ{-t0$ZJ>P*CHe_a#d^49x!zv4mJwVSJ*6&YkS=8**% zcY^0-bwxcqIH5}=xta%?K0))>EEW}O9Yt!tBx2Fpc>Yu&yZ=()H z?-~9q3G-|z_4b`r*?e4iYkf%StYc~$8l`Fym{wT8VYEnyd+3|_!Zmj> z+*c9xcSUok|B_fwU$RxF=8<3FnpK#5&iQJUlvj23jt2nc-JcJf6oOe;y(yiRo4Gz} zHZ!~SGCnZ?l$af`g>z&igHtl%8RA!_PM9h*$v19xBwHL%hH(t)d0}{yh%TeWg{JM5 zzkvE~pR9a^zemCBL*y>YPa|G+MS2F}WFPs#^ME8wXYv!sqrcg|>17c$Ry+0@%PV~|>l#O6`z$oXFdd(+%nh9L+Rq$t$)x$o@A&ML zM0}}Crm(pweEskZ)^O)ClqnW^S*NUfYMG@vxGJ~8*t>S2f-`vT=$!VcRKgkkEaU`R z$c}UJ+{|y5`+>Aace2DdElgS@9o7d0t(r#{RC2v(E&1pO1suvODDt@Vy7)QoF4kv3 zSU!Q%L8hyifwsmTJmGS>(&Oi-V=CXu$n*VeMY6O%oFxjbFMtmY9ct z%8-~xEt2hWLW7S5pr7L>cT3cR`~HI0JU%Kg(?(oPL6m6ZNkScuoquvIb!Q8!*jV90S6Z5sNHZEB)#dCwOfwDbY?WH-xxAfM%) z+B9K$L($Uw%1YZnhz~8n23^eQzlC-I)cIHe$>p>at0F6(Iph<(zOgUgN4P-1e8tw! zmX5e)6*D~a{TD|8<7V}_6u`09pa+ZQ>#z962#6~h77@pJBi}XZuF7S9Km=oGgQ8)y z@P5T+WaMHB;H9j-Y7nfF2`Yf5HXo>*?*m2 z(qNccl5Ot! zv6qu_A9H!ovmW1toT9;YF{yjZ$lZ(#7#k^w=~Z*xT$|A2R*b~_)w#JLF6D%PD`eku zLRr4mxchh&^+NCYl5nR#u0&$FlDr-%hPtw|HYdYp7c`QS+Rpgu$2sCRvOEWI zlLi|dMw_#2I{A33r^K0b-(d;2Cv;IBg`6F6THU!W4vc*)YG6y@wjSr7P{9ewml3bM ztts9%+_#LAKpPWhjN0`3&`?~J#KLWf9ccNa>(v3AShaI?Qbk4telv{<=_H zAlN`6+koF?PWo-^0J#Fy9=@YXKNUFFgkO0u7i78Arha_YT(h`xrSsE=1}-}M=^tOu zGQc%$ugKr6_jh5xXY1MASyZSP`4(B1_Wp0?u$2DQ`@(FRtu2D5SV*Y-5LFd#3n31D z4W`V4$uf(p&8qhe=n>Gzz8r|6B!f*6Xee_b2{Ze)zSst>`)tufKj`z{#bveMjg*_) z^(^+Ht!}6uNxUr4yUpPXp1tPf7w)*a7~Iz>oL3=HcgcMfIM2iyTyfGk;F<`AMez0}0j z|22VBTT}GUtgt+bB`SU?3Mn0W0iyt5|N4w3!2zt4DC(QE;}WtJ-NxC*Z9EZ3aE#5w zAuH1txBOQqBjfR~x=HU4m|vfte;fg4+3Nmy#)s-T!kK#wP)=x*Fx>z`j?+m40I36cJIw}l@ zCCi#R1g{8$JWUe~6wrucK?HEC5C6;@`KD`*7*!oad50*O6eowju$Bt>ma?acy{5}+ zQ62Kd{$$NAkn(4Ht18Aj2HF$Ep>Cxolh&^H^ay*mr?->cB#P z?EisstXeY`a^V1G*6NolHf~*3cBGwOWFq98tM0Q35|fQo*G~Vj7|+|TwRM1zNIvLU z=VWpsPnAtJhv%CZ9Xi_EPwvY zs!PQWgHw*szT+KnM67y|Th!Mi3Enx}y2b^kJ4u&sOlp!$5j8DJjs%yV(sN-BrSKH1 zqsYAE45bdVAeoZByZgSgsP1G}9V(%}7G6D84q;^yI@9ujUa|9RVOC(X+jNP5K?#u^ zyF=MoCPCLKs1fadu(4eD5ZD2xz+i5j-A2yRnMJnHG$ESPUhzREqX`SbzB@+2casx| zIz?pHjoKUOS;?oX_G$i*S_O7UQnNzBz#%F}Ws)^k?4cKg{=R#=a#IB5H4+b z*FOVc4%ebb`U}gvuHZ>jPmKHGmA7-0zr^_W>FEi!o|g0hrCHrdmhWuF??=^j#f`Ig z*#-T3r ze8*zd4^xyz$Qa??z2c|$Nwmjo>FVw7mx6_&nN^z~$on;I8(QTDwf>~Z&?n=5#jVLj z7z8i+?QU zWT%|RqPCPQL$KAaE?(<`Izom&n7d^nWFOOP|4?d)Q=)UE#B(O`9LPN#1_0~0-rpy+ z|5Fl0hEkga=D%KPa@!S|Kb?Oqph<%)b49r=oNJ7Ih*p`BI@H zhqq$$f4RL!=TB-1mKy#0fBu)rivqPki`=hq{+E}#$mq(idxx-uMzYR(h`TvN*Z~wQSS<(OP87Eeojn@NQ&6fe=cUe7H##M ztWHZ!y{_dsHEQW$hcG*F~@CAD;7(*fo}+fdK-GQo66fPgZoo zS#ymWOH;;zF!2ojP$?GZiE?}(aR)R-znl_s`_m25$Q#jCJE-@``?|S5yx@pjM)N&D zruL-y8gwMRe5?Id6G}N0dT-e^Tk`by%5+muDJW#`J!o&~K0p?76!cPWex^aR!Y^WT z=1X(nufdEM!b=!;D{zVSl=-BoCu#y$y2he;IOW2rr*!veT$3|M?rBTU8UES5o(W3h z&}oAXX%@xu*ZnT*aQ0Q7^tJxtvsiuH;e4Ijq{cLH=~Q8!=iYjg@lMW2rI|V;QSrT_ zK)?#cojpUQDwpz5z^eaW!%bTLA=>(UAV=KlkGMoxCZ)pl6IXSyJt`|2+&Or57Zw;QU=nCy%KJi&yMe48~7tMIr9SlHrMdpS<$ST-x3c^U287KD9LbV09Cmujcec)=9GA z<%BMXNGW2N?IvvXvbrCnR~YX|@6_i+bNp*aG#ncH>OA({(6Pb|b>T?8wt$YqEi)Sq zZ{*4Fz@5v9scCx!UMqy_gc3h%F0!d(D>#X&RvC9E6KtO?eT<2*RKB_I-X=RK%TnR- zHIgIJG}y;lT+%8NImpf)H}+M;$PSn;=#ZngV~S3Q7h8HHg`g1)$+HF*TqyAwew1>HFtt#968~Xj77mB7aD>qEaDzqBX_DWLv*ahvb zWC%1ECT8wzuJkp>2_JH zRwJkVF*=*yZ2#&XgWWJVtg_Pm-Dw_rz?`DzpQY8}B*+OIJM{I7n70%z@>aJQ5$gJ& zA&mJ^b%rPC!djII&AjX=Br=ig=eJ-fzr|@+#5KV@(LJADB3j852#t;RLz(ePxmU{}(Lxy`ZuM?t_^ZvimNNdCmPZSc z(_%t`N}>w9-_zk*{v|eF$=aeJburG-{DHEDqKgO`w$eoH6my8s2l~RJO$vftuRTT{ z{BBO;to$FfR%sP+5efxJ0c>!+vMYzGQ9E#!trTavuNWZdpvcin=Fs60*R|%?bEz$kKg~$bOuetha={N z8Q0V$EE2SE>jfq9q5jDRsW-rb&t$R`l#eY(CbX*0t&_6Mre&ZP*C`g1OCKdZi1f7_CrPKdCUj_@);_6Z`7MmBBhyTh^T$!IA?2- zytUZ}P{^c(2a9t0esgWhO9Pu80V!uR=59Jl81(1p4bhtY$IPbF=IgRuh31`@h%clG zhn1OblEE?Y*Ju%heZzr5<&HY%ULX2xyGSCHpYAbT8kArYL%~KdGOvsSpCA{jy^1ZL zYr*md{yOKWzHO>SO$8O@`^tIDgzoF$u;;jZy{H`{ERT`6yPMvnS~ zdM(`xHe3m=-HiJsgpWnVfrGFSUsE3s(_2<+)z;DtcqaYWN5Ulub8#;U7t#cd7Hq#+ zFU*FTvI(eVG;stkMn#w}e2)5FDI{Up-kroJrmCvycQ%i2F%t9HrmnQ#baU)dL(GWB z&Hg5pP^cQYPZHlJ$yZG9h@fWvE=i%?+l}P#s_BiHDAgdcoZwL4g_25 zXacpKO)s3eV)yfcuV3PxRMkl`Y3wgsaqap%^%?G^4}tzVPcCyi;Z)^4O&~w{Kf~KGf2o4Q zi!XpS`~cLgt5@`@7PQ1lqg^hpQMrU5@gHaQizc5g!bZKjn^iZU=X&%celDgcrg-VM z#xFx%XJY3qTxQ$!pK~b$dW!Jo*{;J2Usk^}IoHbU8%`3)|M|#6!b!8bU^@bsYxpi$xNE$_u|Nf*Vt`EU4SAFyxBU}gH(tkk+pdN-ju;7$0e z$oChe@@4y5bZX{WieLEGUi{(qOR&iGM=SD;H|}w0-~vPQS$HH$C|NyB&FXs(*YEdf z{5)qJ45L~k7qbr2kL{)MourDqS!P1C?^GM1J2GkGErIc5g!YU{A|YBS^0-khMPgUKtD`Z#+-v#DPTDh%6f}-v=bG^=-7VEs$^j&njy0}ioXc_C zri%LM?YJQQQ1VX;)V9`2L$-?Kv*n8I)pbs*qgb`NxXkCt?Q&?_qho1C*M%Z`AKkx& zxZ1DQY%IBaP<(BL(?RCIgjgrus`fI1T5cL?)D${As4@O;Xi4-o$?VMo4vrZm55YrrCdahjtSbY>GZ%|CSIMD8^`6(j& zf~Gg+QLLAFokzN1xK?YS)4^q%&7g%;@e%;jalVMWHfkV)>BLGLq7v^?&QO1UGTA+^ z#1S4+zVsv;Tpl)+C8~9$6{;uG2Fx>|{>!-0Wvp&3o=dBKq3{SkOm+yZ;{`+(3hJK8 zen@qERMl)J=&+Uc81hXjT*~mlp1^dPf{YxzqvVbA+cbRJG(XaKMSlAJv+Z7G^2Ec_ z6Ztk)#*`^ZBfU@{&$Vh<$Y7$s9u>rWA#KO3NO+T#<98ZIHc0VVtKAJqH1Z{m7h>fO z`}-dICQ2YY5nwkHE4LOX^gi)AEaIb`{qpxLq>J-%5OIY=+y?#m>S~%Min;MxbAqQq z-QzXxSdEHzxpc{y{?<^&mH3BsGwP|uYv0*Ll5#0|=??zchF8g_;$8Qzct+Uk9+Aww zb?C>dX}6WBPoqSsDno;EYs{j_`3b4e_p;$qYpM$co!Nyew*CV8Y!e?PvkW7D31C0+ z{8i)EBY``0`iOPHXLWxu`B1HtgIo6?_~54(jw{7r)pM!-DeTphg@x^6J-`8NZO81bYlOEy@}@ zpHRD3p+=N_Kk`j4r}4cMwBI|IXH3kZ4tL$Xf;Iv%lH0>PFsWwalV{Xy!rWx17-5P7 z38Y2!u(_AwMxw`?wW4$H)rGbp;f{HdC8~$f(n3O_v!trM3X>ga`cPXf2>8p-f4&#) zZx5MR#^cT?IK>gDN8(Lk; z{BRGTf0)g!=TxdH=C4p{v*71%FDUr)i4Lzqhn`o&X2_gh8c|PU_#FGE4zAsA=ijaf z>)LXl1_-lUX}1Y7*+Pz=y2huPTzRc7aDub^D!i8^o~?>jw+J_9UDMO5vsWXVS=Er* z=1XMm{~E^Owr-_?3QePK@$93`{H~j^C$NB)lbLEUmdi`p_=`)#-%mzLI{Y$4?1|V?1x3)|!)u&J>6&PgM(U50ePc zMg+@nhf1k@>C7qQ$cAj2#&?ELW6y5&DNVfEVm_D3jO*f{w~;!()HUq!;P$z~OSHWK zWM()$|C&x1z73tUBagVx8G2m##W{+R{ds?t_`Vg0O3DrTl@;b3Iyoau$FK$Qx*6nd zGii{$$M7!*V~00$U1toI#OdDU?Ues4=l$@skx&An{*>xN0%_}LgB-BCo_@>EQULGF*er3kh9w)wK zPOm!Gpj!K5NL<}B2ai53qN9NS3NCjrtH|z4vw5$Xwmltk8drQWv6vQ+g%bFL^{?3Z`>0 z%CLLe^kf!N`dwE9AO_HT>aLlsge~57^-a}7g>+hHxZs4vJI%h);bY5t;8k`gXGKN! zbdi195{LHIb0AQ>LYHo*qo+3ma9}pce1tCuu?_x}j!b>3p)yorFQ%JBe(WuqS_Yio z@lh~tE6IkclrGQ`u!bUL0+#*|L>jBpw2YmAuQn;er+byRKHyRFRZ#*GmD+soS*$8! zno)a5UeS54L`LW%Sxlt%jOZ-_a_PR|;F}r|8gi#5?bQB){xA0jPLE&ZQBF|GHAv_5 zavQ-FG^DQlWn&aE+Rg329EV?I(VBND7cA7b*(rd& zxvzz=>bSs*o=+_!Q|(EQtjqQ|-G&QqC6u;knl%E)?c|{^V$T3SPQHJhAFg{iaoQ&6 zYZ3n>!iyB)Yl@5Tcilw1C62KPi2B%F;0d*`%l5~rK!wnVQS~P>5Cgj<^?)}ScY{>2 zjo16`#Z*j>d@pl#E4YbLb#eHJ?#_t?!H0mW<}5*re9#J5F&~PBK1y9Yq>d5yLZn#e z@d1mA*FA_;n*D=qlzE|%Z#a?HZpGL@4|Mjc2wgd#^$3P8KWK+5Mea z40F{qh)=!@gbiD;TpB|0Ca-6_!!K4~Nu>=~Aa0`CQfmwLFfWW|)K#_ICbSDV)$=_o z7JmEDj5|Ox)03J6YeRwUH6>o@t&Rg1Ap4O-A#&mEBP3QvQ|y((iNlpBdqL+K3*EjG zODkVN-hvC?8sA^xaByW@)ywKZ5UH z`aW4{Q!9WZpqv~Rg+{s+FT5Z9{%J0FiN$p++@?C?`~3kj!uwt)FbB6rkvV=ijmXCh#wn+u5X}!A?dtU9 z`Nkk%dvHwR7SQk`KZiXF*rp(k%%=3Lg}Sk@x)5q7gz{1-mjZ_brx z3w4f_RIDm1PH@7Y=^aM1AR*Gi5yE}d06C~WqES(sr~EPDK=X^GaN}95cN)un{L1li z)u0Y5&s0f6%2~N%TKt$Kp=&l6dBKOP@5H`BGJAWc_#HcLbmvUoz=)e$xz|?u z=iai`@ws@<{1^xd=NYA6EfW}A|4dY*;Mg$}kFqLdQhhFBuM=KQW&lcMA*&euVzc=f z|7R)5@_hq7oneI}bkK=qmN<0%1nNnY?tzm-O%-waX9pH~-7`Is)dw5NNu(PwIXz7v zyfbU-jo4_tR&pX8_bzR|`2G~{EtJ^%b?TZjG1g|K2BqOJs8Q{ClZEt@eyVxdgwsCF z#(F75ap5l+jV0^Q4ORCT>9QYd7%)FTwXjv}6^pk5f?8Yvm-VHx3uftfs~M=cDyCXQ z9u*t#a}H@4{{HNz9=a6kl&+Eg7W~2*t9UAl=P20=PN%^F)_n3HpUu% zKdUkLt#iEW0S0}Z3tVF$Z)$gfgp=19K^UKO*Z%4V$6(4kK(B-Bue1n?1zOqjo;%$+ z_Jn@Jt;Xsp`Dphroe;bytezq9BvN?SphMGcJNTgHW{BKi01HogRcDD;LU&xna89za z(XrPCg`M9&B0A~(_Y#V-{8ykUYSp;s3HR;g9?KV|R$YGjLu@02uWPh&{NC=)%7I2c zh+;Othuom`^nRe_JIu>ZNPxQ|!N zKo$bpc7o0w(QuqTy1A9zcoK0C5AF5=?ZM;^*Xm2EFc>~CzbqegH%-!HSBwm9HuhHW zd<~`a{|v=f_~eOdgJBCq+)3t!9%N!*1z^&;S@WLmHljv%{$ZfmW_?%Vz#(*~YcE#P zB(+G`YMB_(n*J25y#TeVAswl#lDjj^yq|T#1<3^ykxQ`mvTqcMfOiK zx~&!>q;myn)rORDH~%oKF-`wyM4>&Fi^N7Bp}?iVltW#o9*g}N<%X1B2+B+G(3KlD zi-)AhT9SF3@)UJ6Y6-jnmI(*TJJTcHZ6Y31Ul5W_tqLC#10b1N)Pt z10jD*()KL)*5O&|Cr{?zU7RCDKZL7ws2ZWLD@H3hmm~5}-{e?PP3vdLM?y}%al1-R zJyA2~BH37>-e`|4po3pI;w`K3_QC?BkVb1h0Z(IPWa+otgBtm^eM7Q5GHohry2mXI z$Hd_p)waUKz__i^+vYxnbnJE}P3vz;jga&@+pkPR$e3celg=RTZ|%r%vUpw4q+{qt zgSMk$g&rf%@NLqq#q*F1u=_6tkL>AQqFm|IHvT=tfTLDl@Gik>35?y2U2E7!1~w)v zm0N`Ozi(|^C}`b#@@5G!UP z6`pU4RG-Ydf$0zKTib!P^4|$YU!B(^MdJ;j^wkmonf>mqQinO34)?`F=&Yt{!qCS% ze~85GhbCKI^#hHvhtENc)*Ljhvq*ePoj_(JNAQofd$V_Zq}o(hbP+{%dOh2}9(Ke_ z*2X@2McieNeE0(}E9Y-*WjLU1d#6km4BNd3ey4r|XyV)*A0+QbgULgEqiRIn0Cwtf zqDvSeCwcsOB5r);(me)Rfr=z{*UwPIK4r6%psa%X ztv>Q4l#~8R3wJm+yY~lJWo1dZ)h3I$eDm2?^*agmo0Bys(7IiVjRtE^*Ll|DQD(uE z*wDekV%kF~lkp=Rz*Xw~X8%X16)l{v+LaoKL!f4*lD)4%q?^;n@EcnGMFK2cwP>5-G!zD;Whxlh+v^9WV3HbFmn~Cb?IC@_6Bu zi+{pnpysAX$8o1q$KStUqwP3onI*10g34%a69c%x&(AEfPtJJb7VuL8)mM5yc9e|l zz~~uLkd@`7=fk2P@(hPEdVPpg%npqx3;^9>(cBQaahJAp+9{TLcp>(vV&IylrjrVA zcf0ThZ&HFDDY+IZ%CYg{Z9augyACEF>MB=}H0Ab_WI{#$JgS<0VNRur=HGZ!J7~ks3Y){__h*@qD7jOq8E{uN3i_s@G z4s{L_nY(+dL`9!~xRAyK>|-Ak8BAOA0qEfE`v)xDwx{;rP!Gx!S2Ir_u1$#ledDwd zH51P^oh?tD3ih9FLyz8AO816Y$0+CD{7(R`Tc`7cnuvcJ%?rKOBlg~~>AF_7#C`Qn zx~pYNP1?SQz+A_#I;KcW%Nd~vv;?_Ru|Pc3tG*RwS+M}gzWt^DQ&c;#uY%D#-KWO; zKI*#{)Z{>tk^LqN^G?~B)#`Zk;unsYJ3gX1>#lv;S}B?R#@lAj{T}8{ws(y*jM|=r zgah3c!)IM03E$}pgm+pkNa^*9Y2h_I;+&EGwQ~XE9{8E%aXe-3jc307>7*5v-S#k2 zPWvh`2?F76!(fPr)_Z~=uiE`=fC2r$EBmnDrw`%Nc8}(}S{8?mWVD|a^6N>L2hi)o zZNL0GrV5&_6{Sj^_inDXf@PV+qkj-HM%BCc5p7lQn7sIx?)d6x7{-Qc6!};LKAYrODV1+EX;=}D#d27w1f1+>YELLwgrV0)RIb1^1`GWH9 ze6^c}oZ2qPZBUa!J4Y}d6Sob3yEw0pYKL-R|Ad4=kN@~RZzabE#)bm5k-qd2*yqGx z`{^Wux`?_s`tcL9Q!Kb35lWxBRnj@Thkbp0u15zRbzXK`*Z|MHbax-_vsN!~4tqD7 z>NE}q-2S9x*xiLt32x@!{1OnX^aimCs@9aQ2T664B<-bEY#8-0hzP&7*+bkwx^;#( z9Ul8*TxuxTr|9xK)uM>HkW3T!^-f|P3n#|SQX(dX47gLjDZd}-O{=>vS}>vZRP?xdH{ z0*$tZ!IG5roPWY{8+%bVh9Ig1IlFGy=4e6SxkZw5=gtO$P}9S9;t}pXi-zwM#aX-g zpHTbezYzGoKOrC7CN)$-&K4JK=t`N(@bCH%NZ-{gv8;cDpOaqK3m`Dud5s#=*l{;m z;wT5tkh2-hg<5}%cT-!NnyhaahnOAi%&w;&^2#(LmisD-jq_FD$yfpOrx(~tiQu@k zSPebz$I#^OLmpBJo@cCvYol@LPsL=iX?s6T(Jfq$Cp>90zG@1~op@v~|j?ftk;KgAq5OIhYjCJ0@e!yVk2-dW?*(C@X7_xSZ0SKQc{^6>ISLP&{Za*69V=AdOb?qoW+-eDroS=hj%_K9#N|AjuJ=Ls=xBy;sDfH8o9-V8 zjP`*eo<6KG#z*Zl^(!Mnjf0!euTgh;qE?Oq`*0dgN1KxoPX8$IW8;4X;c#51kv9de zbQh9Ol=+9Il8>oy^C%U)diGEFoIJDWtx-1iYQDilFt_C=M2Dz(1NTFLLlkxY2Hd%m zDb!^PQ+JYU@Y8aCMuxmQSyNc!BDnyc70cx-jx(^IZG5p@v$f2~Ao^LCMqPXM!=iKc z`wJ;X6(}BA75S9EKx#pyJ{3_u*Df}sn7k{?&8j>B$gjswQdXMnV6TuT?v~g=Y_U~o z7VV8&MFO-R)-_8V`m);Ku`6_CQlkD%-U9Y&p>8L3GvefvtRRPr4KK+kl;9|$o_d%I zK#I4i92Jshn!F&D;?qktwm@LS(~Hs$njv5LI6?z|PtYOm~0 z2~0LO%qcy8O#^woORyJDFs^K*AoEy9BjG>s;|I(pGZ14;8Zyw<9`5;W;xYib1S z#E-a)YPJkeZn3;wmTjh`0`-hqb5_ zqYhQn9+;Qn16T2W8&Cj+V=Wx+=Nt7ooh+8G0H+;UePDPLQhMd^^0 z_s;u%cxdQnn&oLI483)m!}+-0;CDQ~n;Q^Ee9RoHGfl5}J7byI``Ym& z=0t@`I|C-5CmOtU!OE^^abjz_-W|yg-8{q39~f!Z@N#t){*p!M#llxO-OI<|$G^f4 zf4GZ37Qb^#gV%NG+k8jSs>y+IzDASDs8cE79HAAz9?{lo2G!vPd++adWl7tuBq=Vu z7fax#XcW}N6`(h*)^%Z!A{gDc8xs>BQsm?lXZ85XAPU~3BErqgm%S5Dm!ii zu?ssCQss})MdJ1}n#dsZaPfZ7_$eHA3O=7A*LPphg#Y$hwTiEXhVR|~bXet&$;^bR zfIl_$ekJd~Ly`$12HV6jM|XXyc`nj!-|YX+u;7j!e!f8O8eTIqx^em;I6Jg1vD^Y5cd&2-Cg@YnQmKK@=VogBp6f6Q@ zSFwp1UEG1L_4RQ{uIxZjX$qbbO-;f5xju%hC7Dst5xBH2T2$OkEP@XI6`+B8!@Sn2 zvUs)9KUl0}vvBdBbfE5@&a}N6r4xGAWNS=6qRH0syZ3}H&HXXB%nG(O`z7_jxIj(s z3+!P?Px4OY!t(+M1kfN{%OCMeZluWF1Olpo6tsouVJ38t8elhQm=OOW<7;U*w~;m- z_VrT8Sha(le!PLblxi#Wcl%;#qlUz$hUwR86MMpL;KA@ng_VyDbx?KCxIAK&Hz2fE zY&q}3JYZKvsoaQ96X+1IUoJ4zu0@h293b2ZlDCfjoh+4DqjDH{P@_az0K%>$xh+w0 zBLqykx`F8?o74AYuJTiVW-=is6hw~BXd1;-%sa!F$Wx78cCOPSB^swt@CX>RLh6*y z*w<79SDRk?jgy_eK$i_xVgTuVeX55X7I`1O9jJGwI<3aO+5E(Gl&Y|*$vV5gt~U(R zrad84Zol$D0I`lWlSf}CWSWmnx5g^~_3lGi%gY1iB1JI-5%o$dew>Lpx}c3n&4 z(MZiF9;!_@`9=M;vfkekgmFENA!r~qd>22u#@4<80b&IrMFgN&cUADacV|bcW^3z0 zaH`_2Ac{+qvRi!w4Z^^cDT$GDDk3@RM!VAJ@jEEiF< zk`KJn9BM0;d)MnAAXb%QqRIiIsrzE81f_dkJ{ z38SOKO-xOlP#|1IU|!EyZBw)mi8I z^%(6gXSE`W=+(iTka%Bpod;9HhnVPFF|d_ z89agn^fN&oyYQb(AmkGu?;0RKunr-~aCm`RYR~Vw<3LuG9q4UqK##GI!O3@`u7{P` zBW>Y8kLmJE`n`_^kZS*}GLhoY{VVugn6^eUlkP#v=3Lj1-%vptb%*)^cA^vgxE}Tl z?Sv~wwA4Iw=LN%4%NP{+^&Owoqx!&q5J>bSwzp@37R;M`B6Brk9gHP6$>>;;j>25`5c9pDnf(^p0IP=wNT~qBzokLcxi!zQSRN$ zmY^-&otYqzQ#M z^d`!6zNJB9iMc7q3F_VU8=gE?zL^}0S^xbhO2)=#C5Yjuoj)TZBigDhJ#hQ?Fko({ zV}&2cw+Nk1t?ZON>dplH{^-m|KMw6qIiWVZ6IoSgcY`LajE#M{gjj$SHUTPs{;gM6 zAM9&f`cI1KpFrr}XOWPFb7>l&AzoCOjEu}7yHPl`R%f*fhjtz9PKv|cwgQlubU{Oi z#nWZz!|}85P!Y90!q#|Zw^2^hna~vapknn+&r7%AB1sh;O~?F5+O7lat+h+XuYSy$ zka0{jM;uUk{p9=EwNGxw2GdQ>Md{<2GrGz7l^)M6#HFQiG{qxHv;y_XDaEALk-Q%b zJ9EvWJ+V!^Ef23C134iK=qo_`&7Pg@_v5~N8n*`u;g>ld4wo+dlUiz)dJ$s%P<44fUKH#4PtI!0R1~p0m;~HOe@^j)Fmjd>WTD(}G{=KIBvMUa7gqedWqg z#c-4DT(bc;z0D6qjx#vc}4!5j(Y8BdX{*F{jBx`{1HN zscog~!f3%EZ%M}{#mY`i>Vj4ces-kVo?s%%PNyTKnYCKQy|3Cq^@P8Z%Sz5yA**;N zp;nVGctd-%7JfVeg6?_;HY&U=9YaT*<*zTwZ~Y;L8^~28q7-{9{YfuIipwBNQCvS? zH+KPtqa^V`Vnbbt*e0~nk~iZo#qHGe$$1p?bK;!E_;7-cXDL4Si`FPF={rVxy z1u25BA1GRN7x8b^ZQT{!Jm?hC?Psx`bPmw%mxHP};Eo40*j9hbtP(hq)-Tjeyva@B z6STeZBI+$73HQ92!&-FX`vXvd>`n}t8mNpU`qzinZ-OY@XJ9NqR2Sc z#Jd9>Wmik;4W@+^!QDXM;{*>pBx;MamRooFBMDCY5`CJ15mZS9b?3oA$}}sS%JHbA z;1=tl$n>rS2Bfzy0>7BFHFt{~Fn7@gaa(6^X7fT^MDW$kGRzp69-(gVW(fBS&Byx_hHfN^sveA_g zY_63>H#eCX_0?VT;%Ul>?edM)dpYd|FIgj$co14?CO)#`kcj30b( zn3fI%|IQKK&3ZHUSt_mPVFjV8Ici~Xt8{c`9^WDF5D;e|BNa0y$7u0Mm(t&t4w+ww zSva>AJ!Wg$u1fw`X3=pdWqrM185W@*H>y20rh@v(eK>ir=C|?L-rC>JTOF0sGJ%Ngx-u^-3Kl}7bR;GhJ5u>3$EO}F z(Ev`IMxjT(#&P!zO`h{+X`VF36578z6$@N16ZDu8R?f$MOb|*mDA2+v78feePb)wK z+z_>iFEP(PD9dS_^CR#C?wL!*y8h|@PSU?PDFCN(ski5_US8h7Y_%Q`+9>^yHzE;o z>)Do$j-{KixotgnU;aAm$XHJK?%q&*KuCErztEll_9Iw53G=MKoKSl!$)U5!k+Jbe zx%oKE{I9FjJC3dkJLzu)`Gbf;Sg|GwIb$PYy;CYa7T(1>Cc)Ib;cE7H!uif#f#!Z88 zozy&$dY;hlha73LHA~&*B#=r@5{tsq~F!-H!P@1dOxv%uizit(QRz? zZ)^{irbU#TcPbaw$@5F?$|j+cyCG-xj@$_w7Yr|bGqaI3F=-;L*XGC*ImgX^D?;hDvP2 zmnp)H#dN`BW4F?1#r-cexc5m42QKI&d93>#ikcBZY3=aOFX>;4)^4gZxxGA z^AgP3U{YM|2Nu&Y{ZG|W;zUDThGRBE+9HX{N(XH|w>a93qF)w7?c&_$uJJC6czL?t zSZuoCW$>Cuh&Q>kPQcUB94% z4Uawa1~;<^+wCGQnF~nyI&FIutYK-SYDpTdGR9fTEfat&$-)*gO%D z5U&CSE%P4;{hksRmMEtpqZsW`Zr$ha+Ri4IFXCP67`*UV zV+R!^FjPm_Z_bK!e&MNsFJZTLRY3~`gL^c-p3EwHW;M}Gf>I=e_%^?%>b%nUbb76d z99laoG4pUCSJkfoYuHqlO{zI;{9J#xdM_H3I3&vI@oE)gW}EGz*wX@AomgDOn8>}f zX#3RzW!P}Etr+@Uy&(7za})*?Fl*-eW)#K?xMfvYI%TTAXmEOWCi1>F*kh;rf|r!x zp}|x^9S5Exsv*^pA%)@M(EX9N&LA{5`~@ zZ7j=&H(LXL#5J#OzSP%}0*<>86b|_w(Dl^!k z4AE*Kkz@`cB{xMjZ(0Rz+}|}#_zzZ^5SPHgu477=fYJ&Jm%XOKub0Om;~sU_b#9^O zR#);XLaWb^{btfXrqUpB$iI{YY_9`I{`bYd?{Tq`-=!|dL5`iT*QHjQZ{?c1<|xD$ zHAan1M_33#&zK2{U#^;}>CeqHpJLWgQioqeesjibINhx=(HB&@a`ap&fx@=8w;q42 zrLb1G+^=cU8WTR&qw^yd;nZ!OT4-XZP$vPmD{upOY&lc-H&q2E2Hli;-W$)3J2^S| zdxmo^5xSZjzAa9Ef*8n5Z*w)W34Su*-*w(=i`oc(K-+nOYzm5eTy{;s#-Yt0l}|Qg z{)6K~+hOdPH~*`NL<>`B%rQyBYyX)w{`>jALnQlu}D%jIp4VDlb(3H$vN&5L&hFNNjd-agjzro2^g{;$&*Xptfcjo>r-a zUK53nUKpg`OXqnuadAqDM2FvE#DimQmFf`~g!QSMraCwqzM{P6$j7I{7Lv zl#D^_CiMC`4ANWp;IWyKr14?_LDC@0U;sbxe7PkbtfU0+6oydbgavPx2-=l@9NL** zd`CY%R=mNISR@8EcsenTFGV~9+u5<`fg$0l|GPiQUPT2@FLGiT*ASoXs0whXbkMKA zyFD06K%}a4AfTUR#8r7baU@h;?tEqv<^_0#2;#c3R$e4&F37`zwBaTBAd1+ohf5l- z$GME!P7j73uwjBEX1scNEUgFF0N^Akniz_l5=|*}&ir@Gx$<=6(f}Qw@p@Go+}2ea z!M%Z&D`q_|Q(XJbUeVmKHf#_`1;UbaZXGX3Ts^uYB0g{hkGCfghA)pJlm`d4^|asR zNH`;=hGUAvu>a$0;s4Es^$1m0r&V3fGy&H;ga8}h(7k9%dP-P0yb%aXFCe87@crM! z&HZnN+{sL`w2N?3!Dhb5MCb(y5R3w4e012b#;VhULzd_FpUH`^>$b$xTMRbmkVap{ zNv~Elw8XR8?KNbC)LCnJkCrJD^hCx5EbRxg*;hdObo0NM6JpD{Q6==$MrJ)|U){S8 z$#sS;IjzMA!xm;aTxI-2BOc3@^g>H(MjYA>@;FRF@!=gfw!A<^kUrLpN8qqL=F`k#lYb0eM8Rr6d=w6ya$F^Z!}_1}isdh^ae ziPegQF7y*auALRc^{Jf2D2XF(GM}X~$f2#Ay`co)S?lxYDv=?2jEgk-z9ZhcpjE}X z2SsPMDuPBM(>mSh*3?Jz0!=JYm>@KBMZmoeqYT6W9-ky?DQ8s}Ba99)`oB7XYClC{IN)^ zQ3(_NKi~dy2N5$1a;2nQ=oRhwC58uv&JleOu_cZ(cIG}FPxASS?sJ~uat3(hWxjxn z)3?!+utRVn2}Mt3z}id?W`|h*!Ve4M!)leT8>IrzugiYJHQzK#psBGUvP6Jo;W`?+ z&c?TB6z8Eb!9Xl!$EM~%hv`Y;=H~TwssPZxm9G`#YS0%eGNV>9zC_-8&Fw2g{0JuMw}6!8`s?l{UTV8zRUeVr2}&zE z2vtPdfXB;T0DdX@NDU(RX!UTF%@UjXK9qIAJ^}#RdkGn5h`qrQp~}Ta!sc=;jt9ju z9&oSoY&~Phz=_*>u8FeX(2*!QuXOYTot-G7NBB!h=z%J@sF>87?m+Cnf?=2Q;rAGQ zm#YZ7Gopm$$D~@<{~CS+yzTRU`sh)-X3H5&t`tnmGd7>Gl4UCZZ_kLKsh6V6y6iX? zth^4b8dR6B1^xwGpo6cNnkOG%(~T*;@L#A5Dg)S{J)Z7hFB@jl14Pgr($(pX!02$% z^tG)yR5eO^(eMajrB@bV!}czaUxicAu5chlCfZieh;vj23w=+z%gg;Mr4B2xZkWS4 zBk+rdi0Akf3rss4#ZFr*V~5CiP5?Pa5=P$^NMuV#gr;B;(N&NCo|~u^?dVq*KhW(9n3o-fxAp2HNQ{7h z_0hE8t2D#dB#6)*aXDjo5DYX^s}K1eeEA?x9X7_5Cb@^PO6HqMk!CpZl_dE%uAb6% zoWz7Lj(%J_oQ01~bfY&;AJm)7g~XD98A;@}&7 zEwzE$(zl6Yw7u8-lBD0QI9@q&PpRdp;y?YWw1E(+)cFptwY0|PS^cv-vPD{Qht~5Z zO-EO`_y6tTxg3P(@;@=I3Yur66csdq4Ng~AK-Yh1V{+N~NIs8OIO#zR@119&`*?n( z(A(5U+vWu;$`CUJeXjZl@XL_3&@8bhC?$b5*dj1Kls%CGn#{@ zAwF;w08x)eH&vQ(4Muy@3{LYi(TqghaJ&yWg!jF}KXDLOh0^$SgFFVA25F!-&wn!K zHC?4&^Z^ZKN~S59GmlRE^P_;4vv*hq(*+Rp`@HvmrI3Cyht7d40YIE-ILD_(dW*Hs zIHNfFXRv&h(Qsx2XA;@t9&IHVC4wY=rQkxoQwPEjb|5u7yi|0b+B7zZ9V6%my7F~6 z*P-o^k_vb@bN2<9wsK8ZbOk~gaf3ss-W(V&kJ$$R_)-zg=uTT_LI!n=`G5Uewg3Bn z45@<+MC-XZ=~;5+X(ol)7noiYh!^K3-_!#uUTtXr-S(4a7|+m#9CTdG*Q)OwD9uyy z;j|oV%`z1X0D;2tq!eyMAk)xDQ!X%M1UG28rkBPhw~mz{V4DJg@1cF5KK#~&{pJJf z`a8DZUmz+SaX<>T8vGPVPb_`068scq+60<^{~x~l|Mnl$4h$Md!`nd7@@W@mRK_kW zJg@+yaYAtBI^KKPB=G?ripGePDdg~(@~RKNN|5Dw9`)CK9|*a6b(V{b7h$KTe0^MsB(9Dqmx`rFwubuFy<^EM6C7UEX>A8} z>@}nM_qE=QAp3Mc*I9Z^d4D%w7z!mgD_*<5xYvQJMA<>!@G~MyICZU*3kOoeq7bpG z!PG2L90pCvNOe}>Oltyu2^RXv7qjZ|-~(Yb4(3Q5#s7T7Og00gb)(+pDg#9R7X&Cl zym4gTYX+$#Q!(1!Anjqp9I1mSG_(=F5sd1mm-FH5xGou%Xa72f)E6(B3&l0>o0ERd zU0n%A_<$&;$*0aqg=H_GYa)>P&xk1=Y8E4$4iNj;m|t%y@5M-_^egRpyI@l5@SA4o zULF!1;-CpcU43L|l~6aTgGaHF@KR(AmIXSHxPRrN47^?fTHQP+2{m?QB)lGwe6H@s z>wd;uP8HtZC-RLcz+WInKc(JaW)=1KN(>7~^G!35nUFS?eW z=5(}3OM>>WvEesF1yX!|up-IMzpkhtD+xqr2{y>zEi})OJfPKH$ut)SC(=d3Alcnz z|M`>&ye1)^Q5T1Z0rh}B5Y2i(6KM{lyQ2R~1FnpevoNglTj$yZNrF`5XKtyba~_Po z4+2Rx3<&awrR%7GS7-vVgw>6z^G7$NNSmj2U-7_)Qg5mWB;}#_jku7j@p2|@dO?zl z)|nyjKWG)Xy|H5S0P}$lEu3UF1cAf2R18|PXwE_AAV9Ih?UhO=9XW)NyvMb|2(z$Gb0I2nu+>!03=%%1HjEJ%rhJz% zkMY2kboUE=udMm+7L;y|lBG`_Rw-?g7J;Zitf1pOzAp|Lb;HK#$7xPvuwWn@Z9ag< zSk;TGGGi4duE!HY8GCtr*j@C%3=r~-zN!I7Vks^Fh2?|* zGGq0$X`F>#q*>29I^tSTsWT4iFWG^IMwj&QoY0ZYI>+CR^ch&T@~r$v=IJAC3x=pe zV*t=J(!V5tzNHX`03hGEc=@9LMHWm~%Wy-8y*FdqO!!knbiv8V31%^~kJhCAEag-6 zSb0tCnyj<5z)R;1=cK-P8`@zch?UZA^E1~olTQ1KIM#UCXm(vUwma6P*V6DX7$`&b z6I6kQ7)}sDnASNN%Pu;9|?Uu)cZ zYJu4gA`EV6Y1bcnTe`h1g`OXM%byxcOI=q#5w8ud#^G0qNn*4Z!ml)7-qNsXz`|{W zT!QPh{9k^Y`w-3iAtaXhtg%p(ApV1vSX^;pJnsrS&;7WJzv|4h>P;4sGjnk{e@Jlnae zYu6>HiFVkn#UUC3Un^<7?NtJ8NvHW?$M=km(zgFObj}6$I;L(yPLS?lL(m7uqWO;O#Qef3+Xo9Y32E#>hI#tO%kTw4z)4oSH%h zD=>w4-+eqCUBc;X_Zg2}ygHgQ|0RrzQi(rk4tN3Z15xPsmEYGV$rCU(&=4&WLknwO z0fl}%)^g=32T)7miT0h)X|3!ADngWe+5#^}Y`p*wJa9y;cMQKt%lz-x z{!>@e|LK0{9wI<&7J?T*U96+mINE?jCMG6cWbC6dgbBVc9yw<@ij`8N>7 zJ!Y(>LZPi3%pLQ-r_v|3Ok3F}*pHUCs_>;Hd7dBPLY8&Dlu|msZZP53Z*$nDxJzk& zDVusn((2{W?9rYZrbHVsSRQg(#nP*q-0F)PeZ_-e=S5`dvUsW}hZMB11TXkP>qH^; zctdT1hT#1#2fJU33;KC?I@!c5^is!8&c{7LS434H&LxnKio$ z88^C&^Iv>WlGomuO1rk0Od9{u5o_2(U=wT7x^a<+p*~Ey;29D61TUn zT3B2n{AM|qz56he+j02L4{@#+6Dy1T9+k$5Kb@|E^E=_lAjolioszhiBmc_u;o=f% zIF{QY&*_`TY*vtk$D=#Hk&agl8h(F8h2b9o$aH&|Bbx5+zMVgYo@k$4{#KeceKSF+ zHh~?1O85MkCYTD4fD(0vqAE>f`EDP6Vm+!Vcog5=WZxfC? z*;v7yyDO5QrT4He9}lHtU&L9pF0$CtI_Z_@b0WgaReC8=9NR$M-KqASV%ZzE#M6n5 zQ>_4}FLk_(2fxCVOHuw;{pS@;pHzhiOf^@$IY0#<_J1ZVk!=Jt8NJ`J+)s6XWAVEg znB`uH#&vT-Z9{KuP6jW27N_D_!}R(V+Vzz_Mmuwu`-PNP+9hP06r`1V)-vPY3GrH` ztd4vcLBOuxarkbyQCXp71S|OxPp@nI0O8Xs*iQT!^OCKo99WXeFGI|2C2c zZ6r0`@f#y}e5zDGUeg@};wTx>HVk5aDxyJRXfq6Vc~0{?kX#8Q38mM1<`uIu|6r*0 z&)Bj;OFGLmT0#YcX<>^Wfg3?GEsw2(YtgFe;c;*kq@A82s8@=INhMj@X+x%dTfNHR zv2xY1x6Y11Bd=ARQFV( zeGO=Yu7SUg|IO2}=h>=x%w%q{{QGa)1j(hHzS!xTu~*-x)!ut66?T12K$nw?V_2!J zzPvXga#ULb&A*xV(8;BH$E}ux$d~%(+>1Q=e{Md5uUA#+ONHp*BxC=E0Hm~J)}2n1 zHJ2RWt0NyfyanR3wVymKRr_;GmZK*!#@rz)ZhTr?mV@nL(2s|%ZSp;elJmxbk9mr+ zm*wIJOp5oLszkr%dwUrJC9g_U-=-S;F-qib6^=`~wN89fj-LFwS5~YMsC6mgeDtzT z1WPcUP`<$qz+;8S4NhnWS(~Oi*UBWYzb;2dd=^?=S#!QySWud<@fntkm8%Yaj*579 z+d}W$2SVo+Re$ccRb^$HD?ZpN{NYVh-=gB4A8+COS;;>5|!k;DN^}a@>fxU)i=xDW|5<;#R#zf z^R@3=6pJHYhSiHHqfLLsW)+0OPFT4w3eH^Du0;dSSrPU=sGc}JIyn^MiTXR~zxwpz zUZPt)oMZ<_1wIh%dFh3rpQ*50y4BwEi6qt2l^9HKm+(;I?NaDAf(TDBJTyNSW!7l^ z<;;h~WlK!EM)JG=^zYSoIIPrcRA zk$7Z&!E4L+w;RqA0$;C0TscSvbOU^m80{@1)SCsYmKT4o23qXU$gQn5wh{586g_z) zvgpdDwBkgv%k{TE0dq7z2i5w*O4 zKF_Vfm#$<&aVnM4^lFP#p0yDbaQn_aK_oYn@DGiV=Bb+Xn|%gms1NqvZ>Z8@{Ml$v z<*GaUVhF0&d(O#g2M8WUB$HDDKjTS8nEMjxCcbXp%~ALyUa|oMrmj8QS!a1mDa~0m z^p0q?Uz6Bx1dU>EBz(Rf_O!-Snbx8xS#@t_<~0TIncv1Xn~bD8W%U$0CsP^7>dE+^ zGV}@?(5}#6SPJ1QKx;R8e8$@iAjbPEHh2(gmY%>cH#w;)9VBn&4+0%L)NLw0~SWz8gR1%xcfq$C$osL1i{mC)s+3W-`>8o*f4D0m6_sFabNxXX6N+R z0kEaE=%d_0nlt$>Z`n=+JE0@iQ^$H?f)>h|j9(n4THl$u<(J1z$cV~=(Jw@luv>Sy z5F@Pty{_2ll}5E>;1gciL3%IKZM`s%UAbZhb_fw&E)|WS<%FG~u(e>^Eh3omElh`^ zW=MGgz;N=WDG^T?(_wnUxVlT*Ovg8(WwoOzf6Mg3>UY$4ngmUxRKartDR_P5>bN8% z6}A%$J$ZuKFC%4-3~%rJPHg@&d^m4%_En2^R7EDP)lcyD$v4C6O1lpo ztttHOOJn7d=`}A=`vuT;sm&whDzi?}$caGG&#(s@9vQ~)4%kiy^i+T2=+xQMx^FnawBH;)m01iKs=S5IvU}JetJ` zT()$h-J966)7hd8UzJdfnm$=t-l1xF5^#>*-%C0UJ(Azs-wRu{=a(hGx<`6YS3~B% z$GsI^x>)C4_*E*dD0&^He#HF>x(QO#j(*baYT121oRyY2hFIEL-e(iut+}7=G|B^G z-Rl!5XDK25JU(Bw@-a^QhDxLi2D(85apvo#V}>wXrj;yQg$;WHC(+@vrfz4LTNi@S(%FQCY*ewOmaHxXlM zesWp3&4?Xv1BNSh77hE6_^Bhc_GKx=g&yive>ds%ohmD)>GZ74()G}6r+A+x$qHL= zMN*T;MgsgH`U?p8tI~@f>3@bFu?jQ_ta|v4&Jg7rEL};VJN;4RZeIoqNVPJyk^J8I z`?AyTnRVopuwnOu9#-XXO3bwIQVf}2Sw*ny4KYTm|)cW&tHgY&Ajq|$H z)a}Snu3OQPUO9XIevym-^AFlY0B5uwX98Nad%h7R?`l7PxE4nhCf;~BDP64w89TFA ziwN2s6Lw$Qoh)%-5OrEzBT}$J)Nv5y}{-3}z^kJPaM@P-f}(f6xG+&!=mJNN7CW0 zgfTC54oUv_r)1&OJOsnE$GfiH;k(%y(}8;!DQU{U358T+_csxbVqg5aA?A>x5WB~L z+#KoZ!L8jhEY`c_gxlYDm1NoT#-q9E$Jk6xFsuhiD-&6+vsq5@Sc*HD^HCbD$2hO=K3!|bEkhr) z`Qk&lHEyq6#7#-=F5~KtySm^WZ)J}I<<(o*1&)bno1nsSYDH#qc{kgc%gG`doJmVIlTx$ntJ;M^f(o35NJ#}6_ zA4!st_B56$njTvw811_e*IR*m#+xW0D6`I{>%I9y4rtY+2S3?f&-y-~wFfSJYT`}t zN%9(~uu$0@*RQaLTIayM+4ccVM zRvJ~onIEP;z+ZtLvVlz`|j;Xj| zn~m{9v_y1il7h{q*BM)!uh%>5YZn^LtwxmB_R?+*3icJ-0b35cY}RtQ%(1<0GSQJ5 z2*~met~T*EOQ1HIPhOKaab6~`&ZO_MLYJql}p zvRj6g#pw@RP!py;mB@pH+{n^ej;ya1$L^D*{avc93O3;I-6Rlmw<7va*Vq`CxuB|b z8`{6kAgAOMR|uCw%*wm@Y1l%Y$bG4J#WHdfD(bWkAOq*N-@h)+Lcs)l5<48aj zvJyQxla;5I;>;N(UauC+X8Fcnvj5Y|^fh8cVr8b#7srG($M)$YmfW_Vw9mWshuW&D zx^|whJe>83zxcryX z-qALz@==u<=3x6;6GX0S3eOf6?AbMYFc+|IdGw1D^)mMICAVsWDcdWKztG4-ms6zB zwn?2;XyMB9g^Rf6k3ca{zwdXwR<(UscOb3X`p4F3mgrB-btI zDdK8-*uay+vRm>g^T9@{7g1r8aR{nH`6pYK$%5>D9GK6>r#N1`kQ6Tb z2YPm{qqW3tGfd+Me{NXbq^$ce3DR$ck-se|d24~GD{8Zv}Yma;Ww8?UqttSFt}Pq-uBtRdqW*9G{Xn6MqIFk?SzdK%g5R z<04!~(AtLJiHwjU{IWp={YqvbC4jS)ZZD;dem_$>qx;cWBpp^YRr-mV9IbFcN4cHX zx?e!*&2?B0uH#ki#r2__0iV3+P}jrjpnZ}?!;W|ycr;SuxFIg_N0O$@^2f~6oIe`3wdBq~TsL8!SPMeA15-hsv&FNN8m;P{i z{({U4bU|bzpfnSCza3IxQYUK}JSpc|Am1~7Tgzo6a(=`!m6)~6GX zDz6P0sp&CHK0DmOjeo0}ud`$Mfmz%Bu=0#~ z&ZP&u!f~mxogJX)n!B$K_qR@WwK^8D1KLriREk#pu&qVIxQo(-3H=9<9a89bhm`w+ z6MMzguUm?&m!i@wImP3JMpisOEA0ci@e<*cZoxV$`D#Oc{-X!aB&{l zOh6?0%Bp8qGu)^ig$@UmIyY*z!@rs#NnM^X-CHi~a)7Q5A%c5zU3l zKIF;Q#kz7^OPy+$y6`~3OYMb2T~X5bsDot#D^2CNtGTysYn=8fp<71_H zHJQQHzI;00FUcymq^2=;TIFlCW!a8w5y2{Bjl!j*(K@9I%#{R++L#LORBlSy80lg! zQi=7D^wZtS`y|E7^oRISTCuT{$@Ei(6grKg6qkNUV<%qT=F<0lCaZl9EBVeqFSt1_ zDXn@vF|b)N6YnCn=s!4?utELFhes!dUz6MhPo&ib*Vkc5e+;g{Chq{G zs-6Z`N3l$HD;AtytvZ?H&eBO$>aWoHBwwvOj8Jcvg~*fF4XjFP;-?!$VjtozwPS4@ z$Xu0v7R4od>--k?!BeE?#otkg*tVk>39r)BS(BdA${AG*mAWv#O9>P_H>-Nj%0L;T z%1=%D^ZBIksoxURiZV?2G1YFq6#lBLyT77a-`!)9-SEg1T18Cy^G76nw#**TgOEns zC>To$#Cz~)s`z$F5F&j|Pk4Dbvi&_@Ua9xviXPTFi0`1D0hq0OX13tF>V6x|I zI#g^MhoPFAdsWGM>o=%;4v`$|{)ZWAf`y1p*@Q0n?B5K2-^WMXBzm1J=2>Y1D`L>z4n>Jp*_xH$CXVXAL(O zmrn+4CoK(id!vpuG>abFdParW8A5ucO~d*{u-FP=RQY->R|dEc8dx+klfCMIafJ_I zcPCTgBVUZE&V+U6c&ti`;yMkgO9MU5@?iwiU( z^4GiXZ(r8^O}A%UH2v;&xx7qVjw#@tcFPww6WgUa5e}Ba9n{ukf-tvB+ozGuX2p)h zF7G;Vb%<+X@a}6H!#$k@L(-+yQrEB=)Qt1-;!B>6{32PxeM#IaqoT-VSB&ot!N!0_w?jf^zJ-N_CpH#kVxj#d)oH=mK z+P55O-wq{MY_CoAXLnq4H(R5Z6Ld_1f5V!16~D+w{&fB`PyVCaf2cT@7rL`|at;1X z9*RT_T(9cdcltK)i~$|aO+!mfpYMJd^~v6iy=3{sxAu7>pKR3Q%BG(vA>JX!@RJWj zd%1hw;n=GKkGtW^VZFK2{TYDLTG*@AQmfn(J9Aiq^E1z?k|rg0o4z3U+zJj(XaV$7 zu$(~aX0fZi*;Je0W<;JBU$8alp$T2WO6ug7_ebG6V=#y$rsr1@7@ z54yG)*7-2g*8F-%A0Q11qF&Xx3mSoJK&^k%tSsTp+1 z`RxGSO=FHG*OOx=k23|^k0E}QUV@(%L0_Q;k30Ff_I$%du_8%Ma}Et$+sO2p@lmM* zdJW~h2J?uk4o42>qlhAVeTdGp-wgz#4HmG!54{{O=hw`*yRW3v4*Z+hL)3XsyJjlz z%JEOja-KX8>^A^9O5rjMx1YFgHLxuDvIs=5q(DU{MjhP6R^_u2Dz-^Kcene8g=P5F zZ{~bb;Adx+U?R~LPYC4rSi^7$^7gM5nuQtq=}Ge3G+k@u8DN34n|ty>xb$&>L-DsHkNqL|y3NgEg)MC7oosut)#AE}ls-fnwxFbIEav&? z0S@?lN^`t1`4_J1mm9&N8HWSjGmaYlr0_|oG}Y>eW1cR_Kn426ed7S#;EIRvd37g= z0q=R8HGChXa2sr;%;P0E8ahjq44|DFknL4|W9vI1{e!B-(+_Z%!rqVP6K{PxLuIZO zmkn$htj-prHa|IyW#>k&#Uhb5W(EA>qn=5#cm3rzZalEOj3029v)xggvkij zN5dltReSScv-kz+-+|_pWtE-E;53ZZ)-S0&mQkLy4+^_!QBa|2@^D3#lP{Q$o6XO$ zX!15pojvBm>AN#$4vH+?j_96DSIA4k?&HWnft#{VkgdGM4V|9=+th2w%rA$0-h5Tz z*#Ye96R$N-@N)_?ZkIKdW+pMypH9&6`dp5&sMLr6+o}54Nu!==UvvGrWl?YABh=;Y z0rcF=qj~vRh1ikLBt|I9wzRC^U7o6uGN>yg_@qSK(L9iyuLb(Zwc1(khFjRzX=DB( z9R;nal<7Bt*n%6`7!v4qN#M4UBieIaS>CoFymqp-=Mw(vaUBQ=f!FN4JgEt~$4PfN zJC^RH$y?W~$*sS{cBq5b+qci0SA(c&0s&N&D?{cXdEV*W#jlflCAE1<7btJ&VC9^L zs}`el6hGzYk`ng3UQ;0M(u!RwpzFYAsfxHKe3T` z^XQp*81lLu9D26-LcSP;4-oNY!|S51)YdCU$k4Bh8+|;ip>!c@xu0mvOr2)wo3(-&mNOE%gMt!nPg~pw!1~cu%h({>})_2TunaP7hWj zj&ouJv3hYhj}%0`I0^NT)|S9PiHvQP^ixs16?)^v((w0Xv!A`Rb{lI!aI^CG9;#_q}G#;bZ%Itzh zLR~D&b-Z$g;}ci#jrHy3kuH#j4tIHlXTN4KmKIIiza_stCl#|E3f9VmHMC#5<0N7i z05OgXu;@#E4naIg{0z0rC*6JY=aD-~aUOeJu8DQ3O7eK`tJ%eno^X-1)}Em7^c_S1 z_b;@m-#G?3iNur1i4~bIbkb z7M=q$)kP~o?Trs-2g>P}{C)|{%ezHL(*Qlsx)vsb{YCE1|2~YgrL^PZn9>#8Bzh$+ z(SG^Q_qaC{?4!TB{|+n}I@>yNv$eVAO+7S5Lqlx~V0)xSi8TyR($nmG*#|C#&uhBh zQ26eBG`n32UvzfuKPl`S*I%h;@whBF_j%JNb>QhaD`wVP=A334$oh}cdvm`vj)!;_ z+gx1x!aTA<rTgVBh!hkr`CD%_Jy;ApR*aBrNv z6>4FE5sxZ8Pj{N*PqKHz(M)G)P}<7M5sh37$-mTY&37r5ygs-N2|^?o_YobiUgD%UB|u2)uX=T(duT@haof`1tjjI>wZ3rc z;N&~iK(4-#xMv<7QOWExmykk&=lb01*9_Xx5JdaLFVIp56obSO|9)uC-(|+_z`HD0 zhcpeO3VfRH#la-3OjK$;e8MIV96RgOm+2{VpKb<29(qxcb4h2?s{L-BtAGETytOGZ zerD<+;Ud*pX)OqPgLZg~J}>U69IYVTU=^_ZR&C=y_>`lU;XDhlU3$<~Lk>r~E{IKY z(p+ZG0F9Swa`eLDGMk@2G3(#}TQbBSz4i5%7`Gfi`BUC9RW8-gP;4PVs4Wfnnh`(x z25BK7;!dwt)Gf90$#$QW9pAA!&_3NOdA}k}m**93F<)7A42QQLt5yFJBa%JQVw+B| zC5fcN4eNwT&yvH)4#sy3zUwo0H+8tgoQ~Ae7*JhNpxb8ZkOXV~MzIN&ny;*DvE@UA zMue(1N+Zj&{Ts7fgJ`tYCFM&KzvvtBacT7cY?cjAF=IG3h1Xc*%9Ba_E3SWB?pB|t zJ*2f^4A(0uEOP9BHzo9^8^{KDgUpXE2`$%PvIZOQrm988h?`x6zOsMm_MYQsi9nVn_8LM3p;r?J(18AH)7iMiGC%4XA4@Y8ef*8AJRuoy472Y2>Oa zn$%LcS@;v=Z*%y*OiZ#|XZ*H1MYw%3c+*p0rUa*77uE{o^wx;!sO4roC?j(3qQAoev)7grP#%iKa#j@kf?v4kaew#g&F>tloYrm zX!q~yG!&@4vEYD44HEZmv5>IvVo^Eq&^%6pVZ`)-=FU#H8`%w7sloN-{0?2PT?qd9 zbgj05K-6`1b0MwaqmhfGr=T#zgGs`#mb1O6t5`nYex;W$Up{8{fIeU+)n2quo$3@p zrz?ewTvoi`#IH5wVj;n3#>Fl#ENsC}WH7<7Y#m_+)KcNwzdnt=A8d=sm7_}!VEyt3 zYByEZz0)J66caK}a4?G@;$#oJ87UvO?kjScFpOs;#@{JN-+XrbvDVej*1&3O=={Mq zZ=~Rdw~9-b-%xfH7!b}4fiPefaLvN_ZszyirVsc>{0?ghOO=jX?cio1?`nTn zKQ-4iqK*supYPP*nx6L3)2^n3uC?1R~zXT^4U zjaRuM>*Rj(bq!QMPcSi{K|Ht^J~=s?Nc(Xlm>w1pE%E6nlf_=yE88A3d`qk+eSKJ# zWIH!ZlJ(Ln7FuQyf9P2QeX<*vS5gE&B{F_^Z(GMBRnL;h7E)WBXTsp(&2l(DuEgPXwWu%yiBD1M24^rmfh#8hr~&(NK(MQG zaD1;0`3lRBW!Xz9k5Je%0;KGFG=R_!f-{U>{g=s-awsG(USFnjZlLk`x5Yx^c7+Ub z0cZlQcTW8AzpNDiO!)dtRn@b0k8=!o5dcn@aKe~vnDjzKxf71x+}PrJo(_RBV_uWQ zYDOU2`v!?loI*lPUn~87Hw*z-9LLKk=`^h+%9Pn(3m?jIruE`Q))%0)o2ZH7tBXhd zTIzoX9=yyeBDwFrkTg44wyf)N&{1!1`y$bnx?J)>qLi{dZko z&VfO%mwg7-P+V#P#q)U_K$#Nnjp)@J>>R@+KGd}ZT0=FW#kHPHoAR+utvn=UGAqg} z8;P7V7(tw&blwtKAg0Q_>!sVQcL;4O&Hf%5s}geky4)vZA&`*4?S=4z!<+tZVoI^M zv)FLr&QllQnUQri^LZAf%4Qw5J!nAHpKr$jzt8V4Vfm5iMLLQGww#5;(&cN+h9h99 zP%Tri>0g3$I2d>c_Xe{Y$CZZqGrM>kQe$DGg@QLYtkF_`H?DAi`!?W* zhkOXTo}egNtz|1PLz%vBTV=KEIbF6fJ-M`NeHE zo2nbn6Lm%7=X}z?xa^B2Zl?FkUY|kn?Q9CP27_PfYpg=K1q@C$jrymP*n7MTdA`0D zyziv2sDIS`S<{GksPj&pJiCOuA9drAhsNCRvYpN9VQ+=wCq^Z1qOrR^lFXK(@lq!r zqKlZZzbp;WYZt&Q$KN^8I#H-S!bMi}oRgz~-;y3R;xeg8<-0R^@hkG2MEeQ@W^tm8 z@1_Ia{HTS*XzH^jNZ&$eEC!b9gEI9!6EpB?pInDzPwbWK;< zP+CieoXl14x_TaYLUk$3;58T>o9pa=kNp)km(Yb45#*H%5# z35P~mgI*pr(nT(9D~6j(_Tgvt+)6)uBQbB^RONO5aD6Z$Oo-RX z-T8pVT_YDGC2M7m+A{A*GC%G;{i4jn%`mce!FQ}4oBdTd~*9LNHVHF5(*RC|@ z_z3;#3^EM=vl+8BK~M?d#T;~c?SPXLVUPc`Pan$MKTeQReE89P?mI&;I6SiUag5Py zR8?GwhL=Ld6uCv`{EwL!ZDgU!3G6j;-Iz78uv@ydhcQY6=ky>HW5?PH>AFF{cP&JJ z%Ja3kG}`m*C`|Tqxrb6AoA1YD5_#h0k;&q($(nq z8W;Gq2X{`S`Q8VDW38Iwm*i;nu~+5KJvOIP55pu#=ZY$dw(VN>JNCn6XWTv>T{uCM zX)7Emb0fxxMrn{fsouJAeZs1tQi@oy1_$L$NspSKT4#!s5+p^)UsBFVha0p%%K&RV zd&--*?Lu*O$Y6TW?aYGX@R$5s_N@DvnS|eJ;z2ws`?5;^i|ooe_85L(ELtY&vA$oeIPP^5HOtTiGIn&!+&5 zb6Lcps^ADzk;*Bs=IW<$gOPu=NX^JV$N(9KvbcgAJKi+GgZ8^)bdPu?Uu*?6OzoyC zUYNPTKQ~qHSq;PcUT(!oWQY+}xVb|&Vm)rOaoizCwsuPYyJ+Ie;j630Na)RO{cQ5N zltRJEA;mX^Fr!cw+-Non+#$SCk$?2Gr?N!tt3(Or*3=Wq$?`G{O=|CDN!d)x47{KU z!>_(;%QRW&QL)u=R>~Q(s93teIgO62x>4s+L;j&EAfC{VRwk@&mun@KwM4S_vWEd| z4Lg%K80K`QFjFxheN=FN8BJgZAVeG$#H;KK84f9;xF;PiL!wUc8!j$1@HIQS zJaFsGM~TQ@`bst>xa_Yql6O;?_{}r$)yMQNROKW;mZNf5=KYyqxOtXJ(SZbD9<-sW z>%M-09J$)W4g>DDl1Yjwpjf_7KYm6ekDI_HHlB%Oc8T#bl`ZX6A{{iA86v%|<7M63S=`=5bd|J&b2?a><;3J+ zf!>kzxE0AMvH7TQfK^cbzog=$4iu8+%Ie<}k}{QkkYEQV!4dcsfB*smbFsdYRsA2j zhUt8U-_k{A>uot;*Ce#D+)^D*58nV6-qmiqNa9(4A0MV@B&UNV^o$%aFn3kYeC3 ziDDZp=#eN``&x>z;R=$SoYgp>8#Ne=MxCoXXOqnX$lQl%$y!qM_G^Lv-IV}91+&VR ztoVEpf^lFtI9rqD3?6F@ zGe93NI-VcuI+y_ai5Q5a6D6N5cgZ6JbnMuQ2xPOn*)B}rMPBYla* zg@dx0VpAnVEzC{r?z#k8T$be43d%5PwOB4hizFTzF=x>^M8l_*xa;9_J8UT_jp? z1hxkSU2=t9 zT8qpU18^m<$B;V6dNM*eB?Trz7xxtV6WD6a4qVXyz-#-TZDm5~Pzcj7W6G__QTi95 z5hMV+&#*e(YYkN>09mc!!L zgu3;~E!Uo6mBId$E90unGTg86cAkf_n!CC{okjp>rRk(x!#n-?|-+r{p>ZXc7C|5 zfR+voktqbWOtV1?1mWn+4rXUo4u`&0S={)wj0nj~O9q59gS7Mhnww+MD5x-C<QT zge_SizL#mbxh+5uDugW12u*XA@zu9_G;S7<%^;vYO?DYMUbGyBNJQdqpVJKx8`|VnW^^Yk0vy0pSPy!?uMmWmB-X z{7;>@fq^=jofkJpPS|eEdUKe8HX?v&(I^ zfaf%>whV;Ze$I$1wU%SQ;Qna*8ZfbuXi)wr<8DP7hdyl+91YG}Q7v3d0ZbXZHy9MR3}wYGR-SLH63ENIK5rH-VZ2 zHE0A~uRi&45+^xx^0b{asreCrm-Zea=w=Cy`v*pn!4@yhqGSTtTgSCffD!?C0Pa~5 zz!P2w&+Lq(0H6!NtM%7@-6{>dRQ*@OPkZf5Zx{{$S`-t5C8UTdN9-;@TGof(X;{k2 z*tlu9?F6`_EtLFe``7_rlMIz3pBoea)PYO9%F!+vsUB+#4m9hdHjFa9S=uHay(_g2 zRC+^X;g)ww@rR{-39|VQSf;e$qgiIy^Dl;7loAz7`=W=J-aavTh|G6-Y{pE=5rM9; zB?CTh24hBeq-8&9ExGQdY!ATWM$p1Dk-$qtR0Tu{o&}`=z%%V$-&yVVvj4f+S&H_3 zNXxT=1nCS7(CD%n;UCo7|Guizas4-`^l5$6<&2_ve^L0GY*6t(?6`f4a1ZV~N=8^( zGty60u<^|BP@<37QMzEZzq&u{o*H2-4mx$0FwQ<6HatZ8GB;CA$8}BS1wbQ9PM|}T0sqq+2}9*@`EWB> zD#?*^Sl5h(#b2q7?29+i8#2_HOM`#HZ@{d~pDEJK zB|MpU71bCOD4vl@>1QAc6RsCz1JIlpN;y|C+psNz`>{W%4s^;t)%&LGM?#fNPPQ5?IK$>;WihoC}qijl=+n z@odWSDUQnNV;v9OzblItkUVTk`_J0${8QV$IPL#m+5ZQ+kBAhxL_gY&6<=WX(qxn2Ndr?JcgyXA1`rK)o;IeOvZj@<09yV$hYpNO&% z#Hh||WQRYnKAg-0s4m__do4E5wgnKMnyhOydjnxC$+%T^*7RjMu$;kSHYj5dM@!0r zjF)S3z<_`@8uH(q41n-pzCkFP3RrxR<-mO8_!$7XnG+S=dkp|{#=z{o8(x|KV9vt9 z?aSj?U4ZKrr4=ppp0TtVpy??-HmMw|QwL<{+o}$A3u$n(Af*t1Tl5b6@Ad-0uVA1b4ae%K^`^mPL`z7zuvp9dVWel(*STK9`1C6j^{c3xF~FS=}oJwDqo0%Gh7? zKfU$f?`0+oLqKME=nZxoxI&52Y5CEsYI7fMT7!k@;>v)rhkIt4imnpD8Fz~>OMl=p zEcu}$V$IpHl}#8N0hX0Ymaf{!0XXNE6hSW5g|$$qzXUKmpL2v24gfM$qYfE*ZiZ+& zg5G`s-rkY}=yp;aBx8TS;fw=T_Km_1Q1E;}3Z)bPhg$)>$U8uaieZ$XoeVZ(e%9qp z;}6BE6bIqvXrwOWfUy#tW{|ON$WWxVpY1IF9~}S$A5dPT_6!h7i7WwFV0o4zgQ2{H zib&{T9}JiR1BOR-FII9B{P*(_e?>945}PHIIFbRbWyJ5H6+oUv0iyOd`rx@lVpAd1opT9V6)g-VK3-}LB6mu51<*0SrAHf5B| ztd!0=>@jlem#rZ7(qu>HX=v8f2yf`TuiT>RWvGL!y)5ZuSHcvjB%=3Bf$druVr@qJ z`G5;|u2~k8e{uc)`980Ery2U^ zzfD1KbAOuV-}woEBp8o`FZ@Sp$J4wecm78*3H&cfU-17_X=Di(XajsRc+)8^7ENU2 z@EV$V_p2OMzS&Hd`R~4&AGnh}c{zc3UZZEHiFqfQ0oyUJ(;zrez4^IrJvz2CH*(?l zOXEWF5|03#H!9Zn(R#(*|LinHZlK4|SJue0{>Q|Ud3;%D+LuRml5M}}$b8xQW(5<- z^mjGX_k;Pjirv1|JURYQyFZbqPN}O>(fH3IB6L{l7p!>=cS30;-q2KY;#>M(Y$g)Pux9e(uKK#<*+r0Y4kd=J>H;+_N`upE$*VuQ}Qm6~wI!Met2%QTS zKhH(I_l$hw@R{#qts>LTNSn(6dyf4~D(b;sh?uoFcC0LQUZaVmmh!jSTC z%WY?RiRx4a*FGBOQLZ*5#L@_ zIKpLiBYy4dZl()>Nq&|KfBN9~m&ou1nhPn+>{Fp;bK~1w47K?!!vduN_zvm8_t0q&7#`ab9+tZb)2+ z(xb{Zuyys1N#xuV&bx28@gWQ`MRZoH-R;x48*C`?G&iW_$MZN{9M#(J{6)D|0$2)8N zS6elkIGXoPUdr}m#mb}O&#>Y2z$4B2lRq53SPfuT`$T$AOwC>LJL!)l0Xiu+b_N(_ zJ0?bI*FVzV7LxRKS%@YPY%{OHe6TAYw_CHCq=R6${UciM?_aF|E?6DeEI`D}ScRpEHE^>$~WM%2vv zkph7U4^Rv{#6&oD+VEZldxO}(^u3tij^XFwoupTYEfq|AW?-hn6<#hKX0!_O8Sf)y zSCaL+n}`Uh1#UImoAmf)*k#PHqi@;G!`?sH2%4;sJ9J1#lQZl~ zdOGcEa)IApMOSAzazPTm7^)fWdOKLAem8|9-#hpj*B}fciU@)I;Q)5zIn#8kG#Mak1Fiw+#WpN7FH;ti6#@cST(6x;C2+ z?0?5tbs0Dz=c6IeUC3P{wf1V`aQRe_X_>i%xfvg*{@4CB(>@ktLa0GCyq@4T?t^Sl zP5bD3eB;OwYA~#e{JHzXZ8>^96Jky|p{`LFQ%qs0OH{urDhn}-S1zh#2Ru&tyKnv1 zOmC-QY2eF*EaeGWm(M&_5s~Bmtlze!*5yy?HeOt-h*;~{i|DTxEbb>FNBcOGY~pey zl-@AljK)&~zKQ4JU)@p{_!u7Z!4+q8 z%ceFET^?bsLoN@r{6=T_A9uPp95HoOfGIm}R%u=2YT^6XnKREf>g6P9{3$_~SfWEV zik@|w2|rD~&l2{o;Ro&+ikGs;$jKFpc;u+`eZVXw>3&j~-q*|R>gE@%xLSPgzE0W} z#f3MfzS=2N$^7ASYYbYy|BzKfH2uqExz2p|NG}VuP&R|Gu3UAbdLH`$e0xaRI<59= z-^lT~(DnnrEw-a@3<-JsW3NGe-`+?cPRQ$b*`H~5>roKf)jUl5;FkE6>Za2DL^;OH zYMLaw(4c92@#v#bZaKwi+?QzW^h~oxe78gof2(4;b)w?!wD(X~nw3w0lm6FgM|xR% zaD0bFv#FpbORc)~RwFypD)UmYLGkBnyi$u=GkdpHj@rIjw?KI0w7AnRd~ul&eg8~0 z5MHe1s$wbOSQk>gx%^C>WOmTE%FIP={yn>(W+dkCE|H)Up-7eP7T(<7n-O(Tx zxeMHhkbn`#6U7@FiwD*yy&sr+N|n!|jm(Rk$KgXkFEKN;D-lN1%f2v{`0s!5m>J%7 z7|!=x8~wZRXkjYjd>^OeiNtE5$49*%!{J8ai}`6mGP&c;1g)xP{7JErQ|9dvqgUe| zO|(Uo5LJI2etm`u%9r*&X|q0t59z(PLseAw2ES4-A9whjlCdV9^SrrCT2!OG)xdJhqZ=I z4BVJr_a#4?TZbOxBt*C~d5K*7E^RYxn^>tqu@s1XG__Xy)F2RfPNDki#v?iGYphcI z<9@s1-t6Q`l5{W6J%abo;^adZcLgOECYoPzWat)FPGP>AOykpX__$V2Xu&}A3t>U8 z_Qc}LUjNan(V8hupZcOP3;NORIvGb)vSWRhr&`{F;=$M6 z29G>bR8t{(rrvacM1J^})N?W(c^mUKle5HVtsW9H6do1lQ$?2eGUO;cq~CGbW7K4y zzbQXT3?aLd*38HK&HBq!`69cO7s8@WL}G^9PFBSDCXD3{%}?csOHmh@|7^Uqb+6QD z9Y4Ob^ut5-wgZv|`%p9qiBNM3`>bC7!UBDOyucQtx$4(dwW!W^_ha~DzZ8C(L-y#f z@4SrW=QYR%>x&oBFM1gfPBq$Y+=llelMG~QN=Lj3AUTXlQavZ9^SG5kh|Ccpco#0X4Wtn%rpqNIv(9V%4&@da}^M<37``*B*Dg zKO~6Em1KN!;Sl;{F-ir=;@mCGjKYU*3#J{Wu5%U&yQ;Tno!!UdaOeV<)_iM-|43hI(~=X2=2$Fj&fc6GqLwoZl= z=g?g^(&0aL=D|q+dDnmvLFdkgU!_fJEGGq7S*CGWD2lNQ9lM47 zP-Iynn3D9q;iaa=00PrD$Bo zwWLerWk&wbJ&C)Wp7$Cn3y6o?@iU*97bOH?4F}?7?*cAN*00UnE|H*oPqA%s3rYgX zp`mJRP?Sn>M?&iCw9I~PtWC_Wdz#i3&x2iGql)R*AC&3Wwaz}632R>X%jpu$&s!mv zSPD@_+4Ob?!$FrZHQ8F4l)p?14sB?POnHaT2a_}2Lq#V(h7-##$j>n<=df4U!cQt) z#S5^}13J^eIxJw{OyAsj zI@fN{aa4-O>hs&MZ`nS-WCd#9C|qsKo&K`FX!A(7use0}%%hsp{X;@m$jXgrZ&n~> zdFygr)!funWv{w!b@5|ug~`FaritQB1uv^d9ury$sCTcbOBOqD&IteWO%T0DZmsTc zyxCAciphD3vTtkiU}D;Z*|(4LTr9mACd)P=I_VKO^6KUc(}ku+9)@W-t&jXR`0sxC zSNvIcPr3ry#7&+?C%*cAH54_x9EWJE?JX>pob(>z=jh(6cEi)h`f2yO8BXij-|1Qo z#M(Dl0bX4dIZrV=t*~Hr;v%eIrpTv)weqXMU9qEn^caf=H{OSD(`jkc(zIB=}gbH_T;2KB|@-%$&F&I7LAE6e)-`bd-k^_ zkm`Y;;rVwt`mI<`Z@q;T&DIc8v9pEcAmRvEh`q>UR&ToM3Quml7iE()vZ~)?H<%pt z&}--zR)Tx~phu{uKl!2@w5l-I*;^EBOI&(O^OH9G5{rhP^RwiOBt53$D^akc ztADwDNja#iPNIo@#QxH_9hY$YBh&%N2|a!V;ZfS9pfcW{&2H=H?cmk^uJCdCg^e*y z#r%wA4YBhu>20AL3ZLgTdtD9Ea{6QQ!WTbt0qS9!EZ~l(HIO~0Z>1lHo8T?Ys49R% z?oc18&}g*LcyKFebYIn%&(w+ECU!K#);5o+MKVm^xNEQJshS>Nh02b{hhn71=>DQH z^Qd(bwlNopaI>6{e@%ALd+)?IYL$snpUAaP^}F7oDdtf_$>>IfUzAdlBD^i?P!!@C zLz8yWzp#*ou-EmyJD?*5l&{w`3Ja8VH&P;!_7x?0kWtltOIEDghItGaOmTWWMEH1&(w-d@579cG?4ZCw-U1-2Hs<=0)R|3$46& z&4vEPq4Nh=sh?7K9*nCC_+~3T(!kl5d~6iY-wb^x$Wg&3RS(IPTC;9NAMO1wJQ>lTh$ zezQbFGn?^*k1MpnGFtJK=wa_>yM>d2DdMPecPHCN6{>p#^;+9z1~gK;J0(+jKl+yZQ0{;8Z#q z|G;bU&Yc(JW=BB~2`!M0-$Fed!R!bnMRI|M3^kA% zEiAt#f^<4PYqb9S+*dabbeTrl(Z1wS>j6(pD9GzElIkZG=hpqctS5{PIO-?*$@zaO z$xuGDkUTw)<_6$5pZ-(|ywpT{`oZSXW9ieMG|Z3x^Vsuq|NPIL?V`ZH^|}sQ>e; ze*>(skxV%nGrN2!i8F~TBk)D-FHsef6VI3TPUfy0%-#Ht-dRi1ILY37=#)4u7X7Ty zYd=cr`AD9Q3#3~Uo2L`2@og$pwgx0-dff>q6(Q8l zb}g&{rR7Z}*txbdJ0*T^xCN%RQ_4M#YWsJ)n>$AvdcJJ?kxXkBTFChM>UtLa@Z&)4 z>CqidTZ(sI^6+NTwu#)k!wxF1rIn#mLrCfd^~9LUES=h?NB)iYV z#KLBYydHY!k0Or^jLc8yp(RrO_)As=0az zp^gn*ok^C9&`puehbudw!=BmtEuDj79>8dE``Me#Z(n!^A!LV<(aVgF!% zt^et(aho&cU*Zx!t{(9v{)H#z&3x{sJ_;~FKm^+cUIee&NoY1DPnoTM-xNU~VU)dMqBnLbw z6#QT9=6}9rV^F%SYsp!EIm|kINnrDM)~8oWxv#kQ#|eLEsiHNS%>H+T6Y<_)w4>y_ zq2OKeQ-!>?=i&F}yBsDhu-1j!qMFs|v+z6=dfD;H>)Ivii7MLFhtK!5-?VO!b7zzI zPVs`t!cw%N&`7=LDhcH9B^~4y=PR`9;Wex4l-ObFXP87Iqrl<1zVVYQ=wp2gNZPN=Q2Pe{|QjND}L;Xxr56JtijbNc=f>Sts^Q_x< z?~QvnR5?8PLJhLMIO9FdNr3!rC+kAT05bpmGa?pl$#*?8*K1yd_1snCRDqHi*&*`& z!Sh>i^oPr)LbKWZ?;mf<5ZzkJcL!e8lw7`BBTO~FbQIg;t8}kgCZQcKHF>ib>$B^m zQfI=Csq*)z=-@UUeltda!LyAZtVdTp%sk^^97V}vj`cOCCW+;8Z6qfC!Q=S%aAZBa z)?lAy;N%s^JDIn-fmddvi*=eCi+*$?0_*wh=0>Z_@D;Y7l>3k#dM`)pZCe-caPAPX zSnTh~9Z1xdtm2@O*mTSyTegQ)Tn9- zo*^WFZkcFcF580j^czro`6(p|Z_60ltiFz*k{o;5&T)FG?>LCQNZvyKX&YG}R!ysk zy$11_fc6VFOWL-rzdB=xu)ExzHKx|2nxYkvMe5A$g75Ul-n+G|HoX_mBpmdwRTu4Z zd3_jc5n*fE03g_|ClYLH=wrLu(UL#YTP(E$I;*Tsah{VIQ%;}3UqEee0^3eN&v97F zk9eY3h>Eqs4PL7Lg4kpY^=-lNY{!km2Bn%o7&YRr1&fJ#DIN2tM`G_*ST_nUgc8(1 z2{{5JUCG_umJYL3=_Rl>W&`Tw;8cR7Myl-U1)O3eD8a#k`w;Z9+!6)~ct5$@d7<5b&6wXY14! zaLc3(r%rTGGG5Vz(i0%taG!1xG4UPY@@+5`oEg5iIPlTJ5i?czNx*N@wD##q^d5Qs z*f};r;e{M}VN>s01o&`8m-he`D`#5maTMu$Ok^(iI4AMJFtnJX!;bwXjd$7D!S`@24ZxruMu4HhHSg zCECtz9{rkdko0wN8MRL=*O$Sb8z@h38rX~va>zO^JuU`~Vvgy&T3Ji-a`BClru+-P zb4W8u#bRDoZ3v$Xki=D_&K*sG zb;uqUA+b#EI}}cz()B1mY{Aaf%&M~#4ud%e_t|tg2iPaN-@TrjtZ9vo%x6BlRODfq zx8}Zu#h}cFLlAEq2(nTsGwB!hiXlWqP_ab!a&&n?+g@kK$!xNA&t@(dcWq@8adbG+ z2yz{8JYlWFYgVtiY-#`&$yD5U1u3nnExV&N_I{^(wO>0{_F6ksPr0TNy~9+CR(xnW z#q)%2|FNx+OGMHAUrt2}OUAkF^J8-jX}9}3xx#S- z6UIAeZ}ddx^Wd<^4%X$C*Sf}zo0o>3t~<2#s4)>*IP;xS6fChwl}@4GocTsYlR`LJ zeIy&7)72tI&Wra1G0bTu2iYw!e*=2y6D7>PQY*Gg12mVm=H1JIQ&VdKAl9`HG;BzNWJ)hcRFMmhGpc7%O^q_oRA<-TVRRbDP_GtP%JgE4i!s zK%BW;Drk|cUVnw6MkC4!KY$+n>c@roi_N;9ahT?F%yG6 zIAf**6cXt{s;X|c(DEtJo8#JQB^K`-Y9-d|Y@eSiJwKPGA{Au!nT0wrz0?NjT#(r- zcubCX4FBtvulK3<{Kl{MQdH8dAWLK5P#N6|VE;=^d7-DCx3kS`(*LCsopvF#<-y#` zBaNeTZL00ZHbMlS8}15#n?CzCkCe)5dBMam^b?8@Ryqfd2_28{xl8Up7_d!$FmXDa`%}Uem)$1UzGWxk zGn1*x=-MGTlMF=#lqi;(>YTp#ZC~PWgn%!?kn)eC2og!`pjs`Y_nUez&zR%=hoLfq zHqIOMyC8hQQktik{HE-RLqB}mFNTdBv|jh5%L9mN`~%N*^|5k2RKwEVyahU()GH^I zbP`q%+E%a_HFVBq7h(3o?2WHZv7xvP%jV+5dLA2zIg^nI+P{8wuyz{rOBNb%KU;)0b7!hQGFsA}C5KuY_F9WHqOk4rN! z47mPQ+?!)LnoNHJ;okIwXltmSECX-CW?<>7M^kQM+pW}XS&At6vwKRiD`*h(OidFb z%OmHfOx4}<{FEg_;*zRgT)t&2L;2D+lrEr;(7_fJz4&M$bYm**E800Tg!ESNc1Lk$FX*8ld_SyxFH+qbn+NTcY*wY zuAhwti?%a7?pmsHrPlJf8q};D^3Er_pWFu4c)Q5SQW_H5j7N*!2UV#^BOM^As{xpl za2!A5R1@aiNop|Oh^>!ux_ac}m-?RCvC#L1TWv|)W74IgVU4|S-RMyX`|-A3`OXx{ zF$V7j63|6>g)X2EEXQ{Gqi*_(fpd&b_S>!T80sPI*!DO9g<*?wh?&e2jcL(R8|#^y zd);VJ7z)f2(xaW(ZEQ%5Vs-EY0R$>8PtpqSqj)=yprF9$H9Dw=)_pBksQC?XJXzyQ6x@mr$=eGA)w7eRI~ zHPk7etjs*^mf!trd-ZdO2d9^&stzUJcV4IG3t0Z>*?{=1O|nv2ZGPJ*7h?KB0Hpa{yJ)Y zM?VQowLkfx`{6^%VxtiQMw&A3!95B^tlc_V;(yTXDfXZleGlWkc(y&sCCxhF zc{=On7y?yvVww!RIIMj0+Iz$6?_HsZyA2ADzO$l5M`~PF# zGS6Wm1lMqMJDvJL^`yDLDG_4-K^yIY1=G`-c0HiVxs4Sle$c+8-?b*qw{7dB#$GZ2b~7ZTDkG`zu)*~UL=c+bToDt zTMu_OSbc@=sDa+cETQysIlz9pGS3xxis;M|_z%#=MmzuzW|h@Tgl@3Rx*B)R1QI8* z;kHg1#O)g?S8Q8GOU;|3gh?__gyyE}NC{-|nu5j}M79h;FE>+b2#mI`kNY?zF@-Oz z+A2M_lTh98)C0Ypy8t44dg1qHaGMR5VaL<90`-dWPLC+u@WIO)x=`u#w2|(^RNZ$g z6W1nO8bQwqVK`PA$^nwi>rdrYmD0t6tjy43F~3HFrs&U-@y&}VCNZzF_l>(SJUp?cNE zlW8ho4ffN0c8>{n7CPN@cj`B#wawwu=v&aDFa<;;#$Z0{qbXCy6^0*S{c+uRT;v2KVMKBW5e`i zmBKYYK9DApUn>_(G5+`~ODWdqy?chUCz%y1?feR zA~hgQdhaEQ3RaLBsz{gK38WAOBvL|$03nG;CqRTi0%=VA_MSC+&N^q-nLlUFND`^Y-zw=Rp%sMV0u+~tEB^N8(L?gE!Y zCJZ^$kIaa3fmw62Wj{F&DK*2SmpH7ncpuJwUQL!~Tn&{ycIrpac{?OBd zrn9^c2FI5>gy&|5E2G~3bkQP6>2+uq5GLQz5*M{MiO~4SECfMgEg+JZssLXeAw)LA zcmK>Uyruht(I_IB1fI%0qu{YbWGQW%`qA|TRNpXP!qFWJAvltgKbN$Sq~ zvPIy}V#|y_6;pC?yU{vvF2~1(l+wghdW8zC8gX`!RQYx%<}*g!=S0bVXQi$cS+GAi zEh*XRGgYwW=KC1(i@q);SxtEf>Sn2sA9g!;BZ!7&!mindCR=q1VM4EHOR~1V6=whq zWwoRZ>NT4Msox$YA}uu;C(8Q|TTf74?h(}ppLmkUtjOEUO}GME>2+xP7H2g#*L=Do zVk9LjD}W?fgI_tio}TA*xGjOSO?12r!54g*uhibAomha`I^c8OF#gFo zKF1fwe6C(dzf?rb+2QH(GN8F znmF&Yjc%2o-9)(iS}UCgl^{WMx3!kd&|`XLW4^@Zxo2lD1>@xai6Bu2OK$QPb!uTU zOz67zSw!z2%(j!EAP&u$K+1ZNEOVNW zk(&mH%oj8&L_z@5wTOuFUeV>e8)RIQ{FUxH#OjG4)WNlud$dMwRtMudjNpbmLrxr9 z{&6r@_-LO25_)&^Pt;#LGQfEtrH$0Q&nmV`_H~k(5i*bd%_@S^xHifx-BN(iyTtt? ztM$xif-jen9_Tj<_#QqM8{Tsva(A_SaYEF?f*IAGU8WpJMHQmwaC=G&B=ZB;e#io5 z%=-t0+EnmUArWTS7P+eU66l3-i)Lb?ANqnGu$Wt+oZP?O0rd*zDSMca7aGmZWGjKP zf@{=k-8NxCP4)~SkXh#E`l+~DkJf*2(^>az;>r|+La8g}>0G|^uNEHg>&7dgJCv}K zW_-d z)y^S@pl0Ifzelqw=m6w^)+4r7%vSDS#Q*<5r~iND7$n*J(;pCC)!b@@fF_~=x8ET~ zHLfztrmzx-2UKUQcBu7cY0zoAcM=M(5q$&G%kys$q3kEg1kQ5tDH{ zO_XIMRSWwaDxMEwYKC3;es_dyJliHQc9M$q&NMZd&nq0O;SY4Xqn6ByY2VU?tybA} zmP399{TKwBA*Vs|LiQ~}_?eL(1k4b==Nx4G z?L%oFv4E$nvR4ldI=cN|{t4Sbm3HmpI+@nc#K{K{1qEJO!DUE)o!84%@)5HQo5@Xf z2?<`wNGRQJ?@4QjdJ8tzwoE+}7tzIR2SWs((pnIS%dw4-Rn;$T&{`adeMgs?*$oC} z>oYChzl8vZ1?a#qPnB40d-QwyLp@_HvuahBrxQGzUCrvZ8`g4Q;$>ME0v=+6s7e|0 zPy2B^n1Pk+)AE5-rK*9H-dDcqX=O>})SJyVv zObK~B5@T-$A#vsTp?iIiUB>et9%?0Nebh&)`l;bP^Aw(98nk8=C(HTcEca$F+0;gn z-L$e6Z!`1fY9x6Dk^7EXSUi`c#u~=0 z1F>@heU-9iXkNH56JE?*Yy9Cu^~~;}ymPQput!J!h&xHCSp_OsOdjG`m(8hC1bPlu zCK}$MNFZED*1SdGOyXM@QE>B8?fQq_F9aNJKiNwC`AaN2d{j9dt1lvIBVk}uWf51} zZ(vOipD!OqBaJR!;y4o1>4M28>W;x{tIyx6@>W>e7KL|E0w%8te(DwmV%LTet z1+HSnWF#7;@(ZR^BaL-ku~mg|M%py1*Y%lTmdX|GI{I+C?36Oic~qjJqsX!|rXKW4 z@`p;V$MKuwC$JAo!FHynwe#`qnp4V4yaV^VvVH(jSSCmJCwpS zpoo|D6u&MhzXHup3CZ41(wGdL$(Ju7PE^BuRU4<~&0bS*mCRdyggh3@!Xvt6=T*|8 zZAL6a>UE5{xhRBdW;?Y(yrEHrGH}CrX(WuwSLWVPM7;il$q{fp$oXpUc*oaQSi>n? zAq*F_jK$j|ckB?SyzctAJs=Iz!>5YFu`je=10PUUG)a{XlshoBZIwG6jI}%#z#g%k zjBbk)Mx{~AE!|FY&sV9+ynL5Iv9shI-=q;{RuhtNPFD&S6>oN_d~d$VTx%=hHH-E; zmGBYR^QVzEHhQ2tsLfJ6Z9QH&Y2fzRVm2t!Yq_6KBl$t=3tVQE7%M#AQ>WZlr`3cJ zA>4nt8Z{Go8RyYCe;UCp>ms-Dhen})Bpg>F%dcv#qKgjzU8h@9n7=YhZ#K$&jKY2+ zIcD>j?c7leiBgS;0G-?;3pLq)R}Gub^&$jdar6aFP`OQJpPZ@;8L=U&nCuS6hZK`9 z@cTc*@5266er2tjpoBns2-C_z<+Dp_?$I`J)XGr1CQR_h783BOSs<6tJ`XZ;E*WXfaKSp5{1-O zz*rTj^+@8^=Bn=29er^4!^jB$Ir5v9Zu5l-oQ2-k)4msbdWckkt7c_jV?E0Zh*kS1 zuxnY6abjtci$b1{~R)xDn!Li*`k~x#Cfpp!@@Nz)QCuLig=Hv{M&>$4*bjG`2Bi;M2 z$KUkDMDoI%Lc3+G+gUL`o^4shL-OGn*ZqSDmLj76d`Q%RnB1Rf;_oHGvjX?aEggF9 z59WK@sk!M7K${iD&PyfMa^I#K-zG_Gdwb_DtOxBHHVn$^z8W0ah>gW}Ty83OV5f5V zSd;$>$eYF_jAFeg^lECja9SNhW7wCpJ99Ie3uNPE(#jd4*&IE&^Qht?pD3_$AhE`H zSpomYCdGbXf1@ZH33s)()Cd#I^;4JusLF3X*{<9m$wxn%^dEhi9q5&)5*OQN%Vs|Fa9A;J=GT4nqYwiYX z&L^d$RAcO|WSfole>M~q-fjgho)FU3wl19x&NGmiHF;*TbSA|GCuDtYUFntcXqKP!J=GhMD|zW4T8}W`K}U_%kmixu1l{1)*nQT47qnFx8 zD@zNztWNIuLEBlx;WMB91UuH`FLf%~x}B+N&pN{O)b_2^{={%=Ud_4HW7V4EY+wJt zi~>h~z?@WsraZu1#y|=F?1zLXlhrU*Am1gj-c;Vgys~OO>|cI1B4Y``gbfB95m$C__3fSa*gV`s9rT{Tqb)?8<(Bws*=M$&B%DtU$>*rW7u3+&yO z)f=~KfeNNI7hvpA@y6~92}vQ|UhGYw4Bf&qdK}JEE z43GeiVFB9Tx4nMm`3PF)Ms>^*MzzMRkRoFC3lUA;zuHa8b^;Z_x2AzfB8e*H*FK|!ZnIUMpON4?BX5_{@-D>l;j1yUdBGz z4G)j3^}d+#KUCoVH^{==KI6u}>6bA%S!qqJ-xt$ufV2|uMf4!Em6)AAR~HFxZcH5T zTIS|dZ%f0Zt1L&i;r4BX$`&RhkT#}8xel+3hhol_L-Nce6 zVLZJfjBEn`B1FHE;!^=kaN(gFv;V37d%8uH)N4joG)du}8W=qAMoYF>{(An?;E49? zN(jB~kK9wy%DCW+YE55zu|^&|F?pbYtnrjBuzxFjbuI}}$;R+F83%A8to+fIjG_O- zj9QD9jr!VX*O(N)48yiK4A!oqjp*9nrP9lrP@-U7Xr?c3^Qj?_I`V9lKjZTy&SjNb zXG0TuHioPr2u1*X3>LlEHm*|U4Q z6OFw@2`xJQLE}uE9ImQr=^)CbGr6p^e$E@Gi`3pk^KOr zj$ErVb@;PYIsDz(w#prLd|qiFGf@<5lruOJdpEWH-YqXkjIOTz zF4VgkUFDc~)}ZI3xMV3i3QnnZ9TSv)XjzDf99UpR-j-D>dbO${xternRY9Tbg<3)2 z1pP(H!twX1Ullr@TaBh2!OJa`&Tm!j#)jFvxaGMLN0{+EF;@^PE3Kv0Rh5@q;Cy&r zLn}pqM9V(wP?50{$RD+(%QI<0g$>+ZsU*(76<92aR_+~QO_0ohz>5OAE>QMmb|T$m zpPu*X>V>o}w{OP+cop>khg9;FohQpi8`BNN)We~2vzcl4osE4`pu+Px*%1AqXUWa% zbSo)nbSXY~`BRoNWLh&ukRO21VK=n`KC3Fep*u&4ObAtaMJon)Y;X3wF!fQrurVr{ zf3L0Xnz)?wm2L;8&u#Mj70)p=;r8lX9r|W>GUG`cBW3>wtda~bjbA~Gj7qne8*n{{=QHX*iLK>HB$ z2sD7^EXa(H*@`74hm3)Jll%@t58C&a%Lr$L z7`p{!_gAsjfO6J)+QTyue>I3_U)h4h|M1P3qniox zjihkY)!>>!t{?a{a{RTX5%PmJkP+(qDoSe;U61QpI+n0 zE}I(l1?fWgn=Uowy)M={7}3Q396jwDQ?KUFOm2h;8BcZigJZ1dW0*!vNjPE^&N^n( z6!I41`{Qsso(mMev&YQF)S%BSP9}eLDr<3YeT~_`FTxhEG@F z*RtGx1Lv<}0=1QuClq_aZu!_>uRxncTdrV%VDg~q_gIh4E!z}!vrtF@5O65qg(A$% zYd4Cg4V*6p$RAsPj*l8f;dhF^%LERpm3m}jH0oJO)Ai#=m90-9@8^`z;@G4HfPxBf zzBiY<7ZUQND^}TITeSD*7qt%62hbVeIi|1gVoIMnIN|toazN&OuXHm_q-M4a7JQT;a~gRTD&j#`@99f7h?N z_*%Y&=$h(d1Kp-J!s2a}p=lp*)Vx#nGu<(;5}B>eU?-GJ@OVUDZg_impOOI(W>kCT zK78ipO95_hM#`@ZB?F`r?(lx~8Pe-en8>`u9Q7IuS5<$a&-|x&Y3fJ25=7a=TNOu? zJpQ((>dgvPfSgR<7Zow`s zRrch{GvJQy{dSR3*T%Jk!p9z0DnG3^;&u|c9>&?v(2ti0=VzSf!Sh8Up2UGD7tQ}M zFdXt^GbY9UOvtjJ!t6tQ_1i!D-a3t?ar`n6{bYV*>&dTq@y*CoS3P*-mEHx><-y=% zfysc*iKMx=Ygh5G6Bksr4)sCjoR0Eh1PRBg; z_3cPJoU_udu-@)xs9~)Wp-2A&-xqwpeYckfB1`!Nbj+a{l70SSC*W`o%6N)WMV3xI z^)6KK-kWEpr3k>cL(b0U5~Mk27B?E*QGV^LFwRLebR09)p8jWUwCVoBY3qg#wufez zq%q4mF0ujkexrPd(ebAVZ@cJMdAcC(@vg84DED}r!skWQgHBcgdd4_bY+&n(!F1st z>j9&RvLD6|N>renwU!guBx5=MsP(8Dh@j5~%~bX^)O{N4coLApJr?|^V!<*^``rUT z>6GWIK|AyaN1i`#d6WemcWZR8 zbuB%$>dX3g_JAwi@>3w@{`xZGY^-7T{Ei!*N@i;#HNiJ&nQ( z=^wGes4q$3Vz%klc;hyppo++S~C7+*i?jk&|Y*qpKq~`19jP zv$6bT_Ud_^oimf2y^3ft>46pvMYirln8M)CGV~ble5G%`1&wKRqg5yhc5o?reh!1#tUwoqC3cw(mc(_ir zHY1?snJhU$%YWV-z;NgH-p#G|2ai&YrR2Iw3u)-O`tCLlMA(M+9&5#>1$}>SVmb6t zTqOUNL0n^3aj71(hvB|BN4{@kSh^+<`Y2^-rG}YWsj1~^^nDBOd9xKCJVySoy24qE zhDGByj{iYc#fjO&k`tCjI00TuO@oS*Q;4^h^R$EIGt+;$$JZwMA#D&EL!vMBf@X{Z zlGTTm8I_q(4V`DD20{uDt+o=rasI=eZ&E9PN?GY0v6-d~nAPOA468u~@FN>f&VkM)G?3?7z+JZbRkLGy2t^V zs$zW#Bjj&uz;S|-ZuR~#^EMhD=pD zw%Oro8c0Iht^lC+8Gv5txHPq2sk%HV^>~jy6Dy)hXbH*HS?>B+=cTIpdBzjtoGBc~ z{84=*c7LpHMw}6-LlIynv4hxe!29=S=(=tpm$ z*_F0+ZyovlyzqNA14ek_sXN`C9Bb(}sJ+GCOHG1~Q3G{%B5-N*L9+6PB>#dBRfQ|9 zY^=<`l}vra|7p-5KEmeo{%v;JV1PCvhs{jev%I8%`QW;pI>z%+Whk9No?dw_LO#ZK z2k~%*f99XXxx591TEd}}!L|J)LF@NBZJulYVwUy3KNH!q{NRT8Rg6$;9nNRs({HC| zj;W~vJIkeE9p1cda^Q5X)w>x5-`JfIsavK-FmH;db%*fP-xEquj znV+tmS5)6Ih`ujtoLKUSEYq|8I;Sf2s3m_5G;5U|iQrpw)C$Y`NzGX6v*5k?Wdt4o zxGq+3w69CFH|y?&O)FSt-zEpz6drK5{Lo zeFe#x9R8aI|zzl@uI?eIzd*ZpISaL7SaeIK19R#@OKpqWp)w{j$VF(+gKqMv+-zdgEAq#`T)| zX{w-nIyLHK2d2`(Z}|A9%+GztuGJH=&A!IqjlLh-_#fXnaYpC#C=4i)i(YmVx@TI#Q^zK?ni=|I!;ccTFh ziU34(HTEE-&ljOQ~z#?hN8ZFi7#&|VZTB>JLAPR1G;s=~!E%4p=*60)Cj346 z(dw1p3DWa@&D@ljT)xpRv=r0xi6B3zXx6@YKcl{nDxJD|5_s;&i3GL_G_0NPPGFBy z9P6FVeLUvWnY#3kS>hS!Ok;Q0$t~oVb{AcK1TQ+eDrnY{@n>(|q$`!vuTs>dXYJLJ zcJgkg$ctN=W*MaxLH;iTS5-+B3BauI| zFK^=B{4|@lSsiZku~Z4^sC=XZRJx(D$yh8<+tpoC#2B?-kAxMhMvcS{!fx~EXGOLG zg5ITqYp3qkp}RLsz&@%Gik@o%7q*^K-!^7PMcAOZIx7S?0_xe^3pvbjPTj~4xOCGl z!8=Z;m-{sD((iH0iO@EKTpO!fM~A|5&h!=1_%PpCMHwcfh~csc&)y`(-!_}W!F?&q zZ!H;HWzM%|jaAzCtiGyiSEC!Ma-SuN8vm3D)zt=dlvjjQwrMH=3q092jv^gF8}2O6}eM0#b?D|d-@?0QXJI5%>_zHcc$ zZhL7I5>%+x9uj066n2NXC`>vGq5Zy=<;_^?rttdp`K&e#w4m%3_LTMq&U~Rwz0o}V zdl#EIWTCWWs;~OE(!zE(La4%GdUxX1k=ox?^P`7jOJU*HhL?*x9x`jo)umMEl71P> z)xK|(oNaT-(d01|&lYGYY5*qC+R_3vpRV+Z!UcM^AlJmc92iIB@4x#j8+=m|;kmzD zw?g%mpH#}v<+)ur<&#!BEUZ~6I(9=_`>{tr%^N+5U+(rcu@`%#_4eR)V4S%5sLzq3k7#i!64QdM)^qAB%0e_s?ug25qJmJ7Bawwg23ZsmTjfFyP?5GTU;i zRpYbb-JEX@bmQQ&%oND?k{y$B;Pv|jkwWPUFSd;iI5@@w|2qJLizDlNY?Aud?MaIv z@xqA_3#}S6ITxDC^RcQwM>qn06<^Rqp|cJD3ML%uE*AeWe0hhR3umi%Y+&-gdu!)+AKwvjiBCvIOa){x#j@|<5%OB{n|c?H-zwEk9HwOP{C@d3|amHT(qW>F9H z`Ve4%!CWh!NaTL6dF;hYq&V~1%b0NTBGd?fYvV$GlA$c{CLmw9a7!lLu5LWgHwBNy zf64$Ch@8SMFL;$@$aN96Q>$AEs%$uqK>2~ci;}9FV#Xe;Nt45vO+iaD`7eRG+P>m+s+OuBZN^$?U3d!5#mx69qi*qrHI z?_@v!nFU$_jKm2dymvs|fNsJ!E;}CYGGSXwlRi|GW>kD64}_}{@)Cg9ku951W~s{c z^JvD!yPY-bKe=>><9X~n3oYCKuKSTZh!yj9Or2=^K>N;;49_=l_K3RDR&uUmkVBd0 z-$X`rRA($lJ-{b&rQ)q6az~5dUPP~5#wB_UnN`y!6W*?z-`noS5$ZPG89`k-Ra(~s zm#H9yh9C5Wthvo?=;{tkC~BH`^{hvkrGl}bdzRDQa75SVw*Fky&&EOB_2wdCX`_0Y zv~~yr?cTBG56CY7nl#4|E8fCz-CfM%WIo5tKa`wQq5cP(%_&IR*g4g|cN?>jH6ozFJu*a8Fn-I4^_I;Ux^P(_te`?M}3Jlx3J zyK3iBi_<0oBD>-A41&iyVi4BvY%L)qm|NTW$1W0ImQfGzqJbbuQ-mw+aVzqMTg^J2 zlDAUmEV&3#_fE={e>(COJb z@opzW)gCXSN4?63OPP{!w&MC`U(MH~hluhqSfj=$R8`Q6{Gqi#gp5n$-5kWdbvXfL ze+a4N^!kvI97w4j;c!}jPv46?<_P&$NZOXDSxh8+8ptqOfIgrUXWS7lqxnzvnk>J{ z{J{s4Y5u()9*qutJc0cwRc`ef1(av@rW4(8?_s6&e!HzS=W^?E27d)5!Tw^)C6cQg`FT00Cm zb+6GFmM=z?A&3&iTTOb+iO=>)}Tw)_((7sT$c!OPnRmH1o^{T^8Jv&OHz z7VB5$VtVQa40yq2&V<-tbm=F=M1R&jp-xNMtw#xZw^nWWs3($fxqU#%>>6NxratDa zAQ+N_4`5nfbd13rM@x3s%sa8xq^W<^s0gOxw1^8e@`iHYpn;`Hc`W|p^D~pupN5Xl zVUP8mes>W&2Z#;WMcXEges2F1B_qT>XrQ|POLiz)S@mAjKuo!J4iHrX7K;po zDIZW0s1!&P-87=Z^wW44#sa>nxtbNbLF3E4KL?8vTu~lhTEeTZY$y23?1x~-9Zt-< z!`efC$-cx_kLXFm_bYwae25~>Ci`Xuhr$mUwgr7XSp37IXfn%Aj;H^jF-cRlcNikvy_ zC2)U`uN`0aNnjBOmnoO3`k*I?#L%71yTHKn4k2wN4iEipT8Cc&Qz&F^uoA>ObOhx7 zM0@#E5MI~X1mOnrks}xE9AVKgu3e*L`n)W8(9Bygl_9CFw(PKEO_)z2wLrGE@{?C6 z=I9{7R9RZ!k7Jtg*VA^lfrHV>d@(IIqsLSdr>V}Z$DZ4uAbmy|o-_VAPr-JWXi;N< zC~`OAqetdgLZ`3@sm?`^x;TTbPNNSfS5`_9gGa91MFD3WJP*~cpKKq9=4<-M5V+{P zJNe#JjRuGCg}G1!^JPIu#ja8?wEqp1UQ$?dqSBvZqWTE)s+Xv<&y;=iOLn*e7dm_u zTIjkWAAyY!!?GWY*km?Q@cu{0{!el;uZT^%;qiy1`%h9DYBpac2x1u4UBi%M4PEnM z$6#A#wdKg&G@)-2-}R2PPAx5*v3Hvot`|`JNXdCbFU0YjPMZthIW6;JSIvYY${|Y0 zV)|TY&g>c?-0mRWp0Hr8ox70!@bT~8G>3b8yT|T5%Dv!?yfVoc=2M*aOD*9y2K_TY ztd-@NTr=)JuE&{U`J(n|xSODN(;6(?un*7iXAeCasve1{yem29*yO|W)H~De_5<2aiHv#!Qu>W(s6@< zj$$%zPUi8ami`6JCbZD}*YTiP)%trHZ8r)pO)*9Nu-&ys@{t>L4>Io^iAFc)B!6uJ znrz+u!@=Qp(?I8*1-rcA4x6Q_u^afjf`c)xh{wlWZEFVDQv$*1R&{_^5*@aslL5s; zkeQ{f*35G*nlwje3i@@X9OP}Jr2?Es5{leVy`fl#-8<%i6JB9$<{LgCCWKuTul&s8 z>ahvaT*wDK#!2JfX17ONbQrruvYg(5W20h26mYX7@4{Mu06$o{inW6EeN$_ZhY;YQ zF#;dPB8OgS2^^mX+u3oH=sFV|TAD);xE|JD%%vFXeFHtg60Hpk`~E^Vj`L&t;(cHL z7guEb7w7BWFY!Mr>sWt*S^Oam67$x>^v!^nrSLr{@hrz1rT?xBmv6|Hps*s=0Yb5> z)gN|Rj5=eFa&RQJ@*Qm0ZC7CHGGVhGL$|i|NX&*9(mW~6#et6_OLCLIXsp)1DoS1+ z0{g=E{(y_89Vpd1 zw7CzDS*w68bU!}bNO?>GcR3tz$nml38%hxZoyEM{NiQC)dXD(1r1%tk8hi1d5S5W2 zwz~dP$}fo5Euzh4#v^t(dp;~;_AKGIX7syoty|U~VBCM})nv79bu1d~tF%)n)(E#} zn!4BME2mnUJYZ)Dtu{TjW@(?@mRyXHi-`r9Y~;DqQE*BSQ=HgqqKeoZ>dW>HpBY?T zG-7w+%`H{gMm#|Ykcgwv{YH&5VK)Cj93vZ7Y^y#5ci4ybsv*ei9;@%o zp$^d}vHfwbD+eymDf;vRvXj{Y| zBW~9m9#SLTTm@LUX;t7(Je_Rm;2aC?b~2|$%>tH40p1{q(F--~kVZax7Yw->p0mJf zo0+Zlqr^+s^d?kLjIGQ^8=4a)6bwiVP;1zaF@syj?Ps^@|Df***7cXQh@~IEMSzU% zp#?H249M~As$BlL+8bwsvrhfufrV}4?4e9#+hr7Xx+~v$Z{nX4{MzX`ZxyUGoC&$I zVpjPLeGIMVp6uLmw^GWydw(|$lXv_4RjV;xRT+;5%f;?Rf59=!f8c85=QcK!-7|oz z2U4j3i_AH&fS46?6aio#x8|uK&@zaZ2&Bx!&+pDE_}axOjKpHdOCPf_{`>P2o-1(L zL5tu<%#>%AXPDMbBc{QNpQtd;7E5K->uC5SN%_IOI7H-l=p%m()w#fIYK>AqUyfgv z4PTWH%&2z9?;hnsPu}N+2PbVbEr)xfl4=j7%T;{4n zdNZ6~y37)<;ZGDivE=vb$5pM73J$g>-iiYEzjc38SYonweEvLLD+tVe622^MOeKqV z*hm>OaO@tS)Pr4F+A;PZ`~Mky7IN=$oJiRswF8VK98%4vV~@&}2HlYDePOt0C~{*X zcBV*&z*h=sv9#T&vP;-#aD#@18$s9;z)$*SYJ&Aow=1toCv=dcqj>A|k%o3vZGK_! zrC=HH*M+956tUm8kT(Q!xXwuUqEYWY_)b*f(neu;Vi_;eTL{m_(%k*O|?bvLWi8K-ON%mDTXE)rjWpRj3BEKUB@${Qaz*_X`molhh9vb(W3R zA{2&*;k}XD@d6~Hn>DpL{5h=ba9Cu}JKDZf9kN@cg_r&xpntf#6)E$2#KTuKbl28D zvX2{iBU=*uGc;v?XR;iCD@XXk*B7!3H&2c7RDKf6lnNllxaZG`H;!_7&}u4%{lJ|) z$5Ln3Czm(s`Xg;^O#dQsny=<0Oy@G_(K__>2c$bie*OpFf-NKozA+-Qp_Jh%?8jfG zP}A)k)JFlV$JtI(h79ra$-dm!K~gRGq65`k>yyLN_rprqU|9Nq6p`{Zq)LIQO7?2ycg#m?jnMbYnCcVM#lfM@Uf(Uh3&jLaD_H60oB>kLe@pK{4IGQOlalb) zDoz(n85w!RFW9TExqLt5yS-0xmS3@Os?t`;L%)>IFSxKDaE|)9^YuoFtDeepswA3V z23uU+nSrY3rP&946Cm9+4|+L2`WbBqb#dx*|0AIM{*;4}h}+?%`cno3O{-kiHL=F7 zW9*b^3bp6xIp0PBzn-e!G$l4C*k(64^}2ws-V)F)NNeP0(b$v+F@uI{(to=PxW5n2 z{RQtNhT$4u_Gz}9FWJE2_zj-gL2A77dsDim?Da+PJ{lC>zbgy%%)VRFZ$5qw76!Ht ze~a0GvX|<8=e_|HB$Sb2IgdNp_8-o3u7ENfaLN&U+t)Tv-DcB4Q|lQ%@6K{bPQ7hh z#QSO+Xm>7{mn{qEG5?U_^9R!s7EdbpHaXUvc|F^B{ON&v{QT=Fuxr=${A@^g-xZ!= z#G+qn1ARcX6({IGkX3H~)@Ik!I#XLl7ij#BkoEzLwR8yymsdv@Uby7@3nzsEyvB@) z^qBs*#IjB@$-mbX4*_BM?voob`(XhtVm{#XzCi3_$a`gKSeFn?qive!{ESx3 zF#Hl}5+yMZckwhD%30^H+LNRJ=hkTH`u-j$*)3O|NKa)X0 z8Z1X~{sLxnDgo1}vNIyNj*5t@(M8V+IG&$o%f&f5(N>M6rqo3E<8G^+=DsEC4G!Zn z715M;>6S8vBiFP%drKUOM$XK4X7O&C7|Vl=M-PkJq4QK@(8`QkAW ze)mec(x>P`$tHXqez5NJ>nk$@pi9|-)4P=~@Z9U}uH(;R}c$W4Tf~{{+Ye{;p0B+$-f#GP+^eu3-7XN|FMd#jMIH z`^cR2yZmIXzJf^7Od-y4re!8y6aH=effS9a7O303ALW^ryLl?rGmK~=tu}2+Y;dc4 zZ7VfylThh7G3>e8%5Ces(!4I<;#{8x-Izackb-P_x0d@gJ)7tVniuJouHwzcNT)*R z4L0Jmv+bL?wK><;VbE*wi}Fl=>T+R66j9aj(e~1vYim2nt87z!POBB2+6Y+cGr!#b zv(JFbm-9D8H!t#I39Y!si4km)!QPJynI}v5RCh4{etYwMhq$-Wn-hm-cm5Dtwh>?* ztB#i^IuCuha^q@rkA1UsrJLiJ%>j3NxO5$E?~$^T>IJcfVAW{t8%DVa;f6>=J(q(M zm~Cry?uPJ|T7!f~1PhJ`);2xb9!pcU=FX|GKBdHImEqnbHje8s(!@ghUw_(=S6{Oh zG+D7*dmXBEbj>KY7}$FM<--`H#7P}?;6XRHT8OO((T=$KU8O;LUro9`{u=bv8I8~o z{ko@|UBAK_SIXsB8hjw#e+haZ^GOMLGEtUq=6<0??sW9`7Uf@79cOF~?w4MPa!boI zpIGR)h8@7+L?V1%13N_{u;hMz4vWW4$E;N&Ymx)Xt% zlM*fQ9q6C*vmp^%wx42kk_D~9f7YsVls&_a9w`1WBfx9&tq*$MM>+(RK>VTK9Hzsy z$DSPI_?+~!9k=#(K;7b|THB(gFwaGTUl#5b3`d8g3SCWauz(Im?A!+bQ9+%xj0M!; z+r=WYV;0l3KEdKxxAtjBgkSug*YwTH4^)egJSWlO3d2z#FeAEV*F z4kJa`fe{IEC7R^>=i~He4;@VZZcrZL9*-J(vA-hTSk3BSN30m8cLjGRTZZsoo04NQ zN3Gq=q$tI1SL zJ}6}%AwuH42ee!J3@TEl;DAH|FC6TBVF23AH<@Fyef0YsTFs1mkpgw*>{i~gBW#Vnsl9i<4>rkb@NfTqm-ye}dB#w2HzlEQFKPUbld<}Nk6lJoUIK4N=PGLNM$%hHQJJ0S+{P*v! z-u*B2Gk=f#w_nJKdo>x?aYs`o85akeJwW^SNf$6mW<$F;w^z91uGe+!q%yB@T>Lkf zI;Aa85OJSHrFMwdA@|GRs-TX%2+DM0|4|YeNy}J3ZgJl7pZY~RDu>xJOGgJb(Z&1v zY&Gg|X>xZ0Br@#AvU*a`hT&vqxAAJwyPHfpi= zg4S#4|DckwsY@;k?4_c&B{w-Ocd#PoU^_TyW1}vLT+58zc~!akbw3CvN=grVO9~I@ z{hMUm2t18-+iOJ!F}Y&dlT*R#&8FwtNyiKv9sT#qio=9anK z>gkXCqkLP&E-=RiIpUk+*wO9RzZW?8g)rrr{QyokXn#5zY9CTE8@+FkI;BTeVtTUE z6YQ`C!?z8Es$e0|Z(Zp+2aG*XviiSl64zt7d>T}6i_&UXZ`6*QaPLk_Hd@^~o;HdZ zyGnx!&pup%$H@vjt0?*w`MjX$gGjB1u+e<#Re)Z--WH;JnzXK)Ou9* z-*DLJAv;2#E!x}MtU9M{iJb!0&J!22atNk&yT-1!OY?*SoBE7B2@y{xlz7r)et%GW z8vDzsh4LNrIbt0k3p2Z6xB0oveWGKgD^}KQmdWJ&9@xBCSpJv8#(r&G1n}Sp2PPp} zti^=4n~9an4yb*L0ET)Xrp^oH+0)X;#YZ5OkROT8kjOk$n^AZ~_{}l4l_5Aw@pQQpUtldH+srsLcr*Mr9Sm(S8Z=3B{qSbhtGZ*=%Cc^@CE93%Po{N>;p zTCQlqdxgQQJM(7`{2zvZ-sI|**ahIi+& z7BN;Ar|Hs%40WHfoQq=wwl99P2U<|8I{QnBhRaHdL%Q|$DScV29L$uaA z`qv?02f-m)%FCUT4*}SMRd?#N6KG=oIyAZGvr9fdkZ>qV32m8Er|2=E9UQ`*y+Ub~Z!2z3ZNNkPsLkHNXaz*d_R=fcf8BVs=kgkc_V;+^fu87COiA%W9 zI!C=MB0in3XR>!C7>irJ_3S~<1`1#6I9-llno$vst4j17g7gYX@Cq&&z8?{fsD&; zbMx9-I61Rwu=#>`uSsE_C%IwCY`x6G_ea?7%rJb&e1pRI_l6mW{w=5CMi-E8jRfa4 zb^`&4MuuU%5$ks#Mv=#vJtkH5aoWm?f|qQ~Zo1f2O|If|>iCVT@G`^i#=#P5HS%b_zyVkovPlO3KSDZ5TlhP!m41%L=gx0|A1fqqlmw zb(6p6tA+P@FCo1TDy|B+TpIcvk_@a?9wZX8`Fy)G4>i~BY70~uCf@(GiB~?DVhqhjtXrH zPUYM`@s!+WJIaGX3wW;sV_$Z6CrE_{gQE;a790=CSwes+{5t>5FU&kXC&* z_d0FE#o@6NPgrvW$>py#Xd)j*2&O#w#|L;FGwp}^d5h>+Po63=5hjrj`^4FN?Ja#Y zc^7MYs%DqwAgvcM23^pfma80-fAN1X_uf%WwePklRzy)$6r`&(=^dm?la5N2u9Q$i zFG7H*2&f21??ieJ(n|;+h)4+?LQ4>-p#=y8LcI&WZ{K_N-rqg@H})Opp5s3b1Fn^| z-uHd#eCG5AT75nyK-Y9_5)<*d|3cwK?p;HJC*5Yk;k-jLPhug7_!!rfU5+u!dmYO8 z20=RT=~s1APWj#`0mOC`|L`a*A-4@V#wN@1aQqWAsLBE7yyPe1b1-V;dN48ua9sPk z^7yEGbLfT8TKeK!LH%XPhHQrq>9d?xBS^w4Urdk=+K{Ha!9iA54s}PpjriPsD6I%b zW8~<&pC6SW5HMkbJEXj>{u-Blh<5(1N~@v{+mmC^6r=qHGfJb2_es7axt~N|L;|s> zxtqel750Ngyi$Hw)5!KY(p_lO_IQ0i8m(6^^x~|0|AJH(LUM#FceQJ5=XP_X)>7nn zR4a$M>haZU_*k)Ww@l}tV?W8|x>?(mQLsl(7V8|7W@1-ySrfN4LlB>U>_G{yIPBbt z<>!^uNI}9B+gj=G^x(7FK(2V;5A=kEj@mK9{r&02mH^}2^yl+#zW|U@+49E8ilXb?oOCp zw-JePE!OI$?Q!z#I+z9V3pezHl(Kle4W}%2UU=sDIh8gr57k_^nV;)BsQqi;%B?k3 zo_qV`kSR0C^S-}Kg+W|z)O(=CjkB`dbIQ9yU-}Xn$Uv^3`d-|ZRa>vRqWH{?r#tSp z`w3bmyY27BIg$La>MW2t64dj}tK+lA)^C@*`CHg~{p>`0>d9g)Cg#qzQ>>rWh53ro zhAcwP7z)rFX;fHZI?sQr3TjT|^Xz-bkuoP!>XNd#TXMa=)#BBDpY6&8oX~wIO#4zG zM;zZ)aqh^F?v>!a54%b8!`Ew9ZR!mywnBGdm7nyFkc%N=Nh7d?%svM!rw7I><0Rul z%9=EZq8v*sez|Z2UI!*)C}{5mVjmWxzD#fUUoO=Dszm$|z_fx59ZnssT67AvI^q9F z;V#rIq!&Faud`7r$W2#imB*MU*)Wt`Lis6DjRTf?JUx3S`nBsV!a`Ifa-g6u-D#!L zg3h%s1y@zy+m&{qYYPAcXhgYCo-um9bv!$xcT-xC@oiOuZ4kKuh zlALcltg}6t>L=`IlSO?Y5FhO)(9A1vydVL0t?XIxOI4U4z3v&*^(J3xoP}2Gc#3q7>;Gaf)#*hVdr0X<0 z42)r?t>X?CcZw7(bs2Sxtmn8|6m7~Tzuu}_N%3ags@8T~5g*|(lKxXjKY#iQePNru zh|Sgd6?1Pho|*6|^ulk?V9QMT>371-4(?M`inm9$1bPBeujiwB3Gh?QJH&H+??TKd z%aR9e{r*(jq&3zXdA~G*H@Q^rh}qEqi_nJE-@T&4~3lVz)74CwXm*J zRX2kOuIO=B`lcs;LL~`H2saV`yF@wl8Cn!A-Uu3A51#(sP~^BGW(@N;dualOPbFc8 z<{xO@gHd7_DNoi$7Ir80wV-5R!Qqczx(@?O8#2E{rHqI!Mp?q`JrC?fJe|Z>3YIT+ z+^24NBD1MHUgKSSbyihEtaBaX+QlHy^gtR)6p2P##LhmE8($euYimNv`didj;|%C1 z(~Z_p-y#Hl{t91UyoG@8{IH#WMxWaOq(|p~+Ke`U;Y&sM`<7Ol`#j9qzm2ot;y4{e z47a2}8zDjQ(RO#GHDk=_ke@PAj&GFeV+b5<=u+ko7*mwP#OPqQHpLMhRlE=d4S$8y z-yaC4F&FrTIb`g6m)$fCJz+lYCJV2~eQ~l9_l8bxy`K%2i!k#hsn@?qH;ml5k7tj* z&6)ai)!;*Q*UiGS(_1MvX6+J4Kv`@dbl~Go1=>u4KyUuE@P`Y=HrTbD?X)c5jX3g_ z#0OBji1Ctc=a|;~Ou}iOGicq0b~T_ZcHP(;KqeVtaNNNKxJC)>*ZtKRiAD+^`fVVb z@z%7Y;-1+bWVl{FG`O(p-_Bf=W+YDzSD41<;e(6fvgw>xa$OU`cSK z9AWo2rqJ?0QX{tbnWU*gkyS02Hu2S+1SWPr#xUo(0Nq5 z0V)tyyDpNQY2>iud}z#O7)t^Nb<6at-xQLo8*R4VT0=nM!ZntVSpj>=IS0vZ=+uvL zKB!MusCD*{L6YYJ`<1y#7ie|ah97mynFwf>bL0?8p75t8z;k8bxU#eHlx=W#+EmKxNraGsuO$O+mbF)&8Gql zua&L|G{9J7d|bf2fK1B-ML90>HHuxj7OnUze(Kjgbpf#^FbEnK z^&yYx9Cr6xv8svIqLmyzusQJ-XV==~+elUCcc(KU z$KTL8F*hku*XKKG_jESGb3t%1w&~NH)A}jylraUMxld2{1QZ+NmksLgl5BpwJ5%aN ziia;d`c>VxSlwx+GU_<|_&lJR>0w+1AQA@1Spb7=xw>wRT18_#=}H$mtLta&oCOOM z$qn3xqAcII?3^nzM4{aCFj;hU4@kO?2Zv``mt&Rl0g=_ETK>L+){Xb&qtAzc(`<*Qb#l zhdASeMa<;Kn7whNB)jm)1K@RCy8sNim~?A2*E>JkQev_au49|1jOncPoB87TbH!cP zmMdP=sP54KFkWxALAH?Pl{>*$;1bEK-j`9u@}>H0=?P!zS01H7+*^n#{QA2Eucz<~ zv-|1MtFI|Gk{jnjExpWn@))Cx6Kd;gZ-b5%B_@iBaln1U?w?MMMJH%+38);TEo$KF zhp}mDqand>fHv~iyDuO!rp3;_5yjmazfT6KPwra9s!-=%xF+qCzuEbpgM)zBe;QnWLN02mZhCF!3}srDpXnuw{J z@KB$;$-y{go!EYy@Xm>AXoAjh%VLKTn9*vv=Zt+f^ABtuFW^HgI=rQnNBqGQV{Nl* zgG~Y{h4!ylv^1u@iV47rBmd`t^+yp28T@qJAwlo>%A?NK)%bTtsMDSSELhJCeSq?h zdj|NgWM6%s{uv4*`$hJzLTmop#^n!d;Qw4qhxq8PVXzUXcemSkpxBjmY|>0Pz?fGW zO_N&-8S9B|V!~#V$cQYJEaV-remgW^^p=~iL2c3T+jTko*e5UHkI3p%+Jb(7GQ20o zVy?FHIU1k>X+Wzz-U1^zm{(Q!WCzh1ZY&%__hkduvI1!cer42dU%3)<;(EK@L$!9Q z?9V2e$x(YTeAc1PK^?E}W@DtJY#tqWe?)>~c$UE&L0) zaq8p-9>{@tqrsgzhUFagOTdA66AFNV9gMlgW8_koA+3G0p)dZc;%^ebNlzH-h8 z{)YO_K|DBcN7GSRU_X_e{n)d#G$!#HS9}+7eB{e?Z;VZ_c$HjW!X!(gAE_^I;h%u^sx?0NI^Z;3k zTsX1orks{_UJ%X!$SS`b`j=rHw7$qpF#&1_YvWtJ8OHcFtkz0^w%xJ&*Zx54bTjus zkk?80x^FvnNv;HT6jZz$u^a@L-~LypXY=BQINb_;{J^ta`cAbb@DoMPU@yvd3z7iO zOwku+)&cBdDBb5sFT=;H2XYQi>X_*Z%|0I{?HVo?=eI+mf-U{(ENxmQB~&ZealQ_a zfRYzJrnP++57K?9OFVxPe{&HvppM^nB<_OFyG%#oXn}KcZ~@o>dW>;q9(U=VB^pWwRPA(HTZ-*KHI-6hZ{2_#WT^3_H>f4fg2NGPx<`sxV^KA%r9iUAC>o zp)E5exN{`n>tEU*^)!;-?(1(18+}rDc|ul(qpd#eR;U!}pyCKF%mjT7otU`UqBZG# zr6yP>)nn-l*KwYPu?Bl|rcN!>5!mRIi_rE<+d;wUhPCNmBTv6?zGg-6*J=j7?3g?d zwZvDbU%=^Co)mJ+r1YIu(i*!kkAyjcIV9qMsA*K6kf++FG8*AJd@+z(Q2WQ7uP{|x zwh_FdgU%M65k*hZuiv3jf@elkjR=n2o&95V>hccM7F)XgaYgYU0+%d?)NO;Dr^CnV zxEm1FLXdaW(N-_MSgUP;%!m1-lAT{+$zx(FdBD#->T^tc&!{hivL~P7U>@x&@;nV2 zNxhHVyQnN>{#9bUd-57<%uZriuIghh7)whd2M!EE_>O~R_^m@Ce>S;zzS4yB28fUk znH*qzGVY_UOnhVLX;WGuO9Siz7{F_G+}1l&;h(-i4ivQu|z4B zOUS_eXL&SScfTeJyInfXz?SYT@inZUsXPg5!uyb`&5dnFMM=$mT&b0rGRK`Rm({_i zbVKK6y`EYoj-@+HuDJ-k)zW~)=C>q9VxHap=AvEHQh;h6K7FXjPF*EY`q+$iEx)1{ z)GObIJKUQD_6nmghhY91774LJ!_BEr>Tv96+lCsgsX!DRbukb)jU*sA;gZ%P%5_6p zG5|sE2SjZh)$#`eYCB~PGRBFTsX*=dq`}!j{}YLh?_%E+w!VKaa#|Nx%{s9}k1(lj z0^imsYQD>zfs$6bbT5cA-BmWS?_stF@5*kbU%`!Jm*@5q-UrDamMRK34UnPhH(;p7Ls0(12laEWx2x*FL(bDd^ZkyKu@`P~6x_W+9nFUMNP_A}Ro8`1P7y3gBl)GY?W5L8 zlV{@HT*AY2Ouj15E_$ldz0bIwi*y}MW35hE%UkPxgFW2GwDEmB^rK8)>|q4uKqpox zfc4n}Oy+ImqbKA>m=W4&0KY1b91Q>*|KJucqQsm4rqa3BXs}n+lZm61gGUM;;Nw?4 zngUpi3K&p+4=XmCU2YFlukfK~jp4(o6d``q&a%Wu>o@zBPY$wXM~7Sgy8EpEmoy!9 z5s;zXqyOYIOlMTModq#^)_=>gO^e5;O6X|90q2)#smr?lBh9*xY5ayS^HNNC8jCp3 z<@%Z~zm~@BhdNbu?5XRY-!%C^s575xs2g?&#oX?s?RmJ&c)|_HlV>e5Lgc#YB!}Fl zU@_4Riyr{3>?DVw3O0*Rvv&x`nQ*RtQ)w9yu~I|F(_Z1}U@i=Wpz&6IsV?8WDdU4A|h z;&@_E|Elc#@pVtz)Ee3msX)&+rS}vmAX2=kE;^*?bXjx zvl<*x-gs`SD2a5#Rr}dUZ4th!$rpUBwVwdpCw?t}LgwMsjw!~1cV770xM_8}LGe$M zU5I0&V7K&Hd7r>{_IG!S3D^=t7|bMx(@Rb_nt@4*Ds%pHDoxZ76eySK$y9ImW>AN6i(`u&OGFb1tl0Cjay?ruGfu0a9|aNPoe= z0b590vEJ(cClbbg=vOH_9@EFyS$r}oG9ap4U?h)LYp*QA)orChA!b7xMWB_Sp^Y*3 zcH)YJ*zO*x-#Xv+m=^7NShc-*>*SRL=bOkg40&ti^m5zMirTHa@2<{PN*@RJJ6iyc zP(3`L;ny!?#;zT7ZMXkEPbE99#4*oeTjzaBD?6(nPNII&a@wzQ-J20r=ry7pR%fWF zH?0PkTyiR4ebkHl0Jpzeq=VH=%~-yWV_~!37f_R;*>?>h#6p^X0oG{pc*2j={=(AV z+8_ah-Cc}(WG4~`v8eDv|*zwN=a}Qs{>eSx;96R zw@luDkK%z(zsnKfc+}tmmZTO0m$?sp#7hL3Y??F%4@XD{Bqx0_!!RPZ!q))dwq2(g z@5mFWRhdOjX@R;9=k2LK89Pf!ZCXhQMHl^Cb+W&0hH0+6*zck}3hJyYx)0dc9Y%eH zCE1jYeH;N|VHOMQ#C*7nC*W7E`4hI$e9Mlm!m)t^Yhea_WpcKOg(3XzWuh84B;SCRz`wkdc%9`mD$v5SjfK zX$yq>Zx+u#8dIkp?Y~*-`xmnD)2sipJ}xA0jHeXSrt8D9!hNlKBTm*pXm&l4Qa=tm zYUofJv_pg0jpZSRhOLNMrxs>WhAjXLEPQR&ZG%i1w1L{5L9glOmyY!jJStIVPWIlf zP9ASQ#MJ?%M=;S6>N`67FmJl+)yg&l^w%t{eTEmA|z!kdcFb_>hR`hEej70TN-4f!I2b5 z20ZXVoy$CVx^9+TMu0ei=BE((p%~P&0}z7}j9j!Dy!P7_I_)0!__6bx`*ygp9TRVh zN?>b{Tn@nhuw8@zW&q*=5Sqd0Tz9UL15zlQH(G@t^Ka*3Pa*i!SFg-yBv^PYw;w(Q zoB~q!lm6G93xQ@ME_pL!+okcGC;Nuye7!H2D{0io&d4$F$*#9zFZGqluenK>&J1n{ zv4xnWN-$NfS{GJH1eDY{COt#C#PJ_|N~8_=TfJRY&!@EowpgBUP)nR zw-$zHiYHSN+ZW<~j=ef^|C{LDdE!7LBI@>P6L?n>YAMQkdFMW;6-4jPTGDaY%=xmR zFoBtNDqg1>Ibz+nKzMU)cU(}!@RZbje=JGykB5Cazc3Cs*xpN#yGgT}#UmJuNjW?v zK^AJ;Xgd&}(B1h3ba+bd?AcaljNqzFkZmZ*)qQo|yGdd(p=qO@qaP^3!iZaEfn7oi z#O{WSJ?g^N{4Y@|PDXC-g|ry<&PaRjpJq#mTDuF(bW3WfF7e^J4@%YM*{#C{G&1V% z_>jE(tGYx1CN~Q@aoQ=9%}BHJMj>$p8;7CX5RyjiGX^QGJwXLU9xr%oToi{bh{FkEF()%>FVm~s+9F|zVT zjkqx)HzMrzyFqNz3sK$P88?_zHMU4v+7B)nooV~1lDHjA8nK8aDmDPu3UY*97y%XB zS5OcJSii0?Mt4~`08Bg6;Nm$R5X%^GwaBJ7CZK(;K6ToYzpU$g3t z!u3R=pPi@7_|e4Nl-b-v!8f&H0?9?GsuP#lVZf=^@Ki8uNjfs8TF%s=%{$1F=(KVX z)t69>D(1}>fwO{7xp6HbxR~x z;zc0NO42(`O}E^jOXK>1SJi|imdu?)`HOb4rd++(uDs1h+8Zvswcr7}n9U><583?~ z5a%#Aw;nWLx(NK_Y}4qf!yfq#3(;@Y`uuQ+_UU_|5#0wRKmlElto?I0P(}+8LHQ?D%uQ z!C*9^X*FO=>tUL*6e~NrA*UK8yZ&<5wYIDZ@biu@pH+;!z;nbx54{o^6PSPuLa*8~ z#rjdyxblGp9~9wG-T6FG(xRs+rBc4au<)TTRaB=Nzg^^pMt4$Y5IVCxHHo2&f*_<& z50vb4#Xjmt__uw@>fJO5GnZel!b^uR{f_B+5Q+$}2YX>puLB&-mMo5R{ z!>S2C-fp*AwCnr`j|zHv`xa2Hf9|CLcxu-%D?DW)8WqMs^|X7{E_OBB2e$5Qjyk4Y z?F*{?Ds^BtU+2cO8f1Jl4kK@dylR>fTFhgSZ~$VDVO1dV%~jc|KcapR9_-io31}0Z zlAnbn`2oNLffy!SEb(0skYqetn+9lP0sJ}j(`BdVj3yuTvCYVO9ofOfh=3HJ>nL&G zxKr~bv_zC~qpR)6%4c{laQGdz#_U_5pu#w@=qM$yXqct`o}uNAd*)1o_S*q^fL863 zcfGYO8!Jg6wj$h*%T{%2b2d`4@+9h-*UzUJw}5`FAi#juV^N`50kpLo;m6tWc4fK? z29piJ>p}6ZMMb6o?G3iM6y)IjzxDA?<}IQ{kZ5c3%f4>5b;y!Ue(GA zVkgi;EsU9jO>V^)kKg~pUv~1qDIxAtXWaoXzx?`Ch&Ad@?{4wFf-a9k{oJFcVzD~% zuW7VgcDbDa%wE=oDz)Zw>YZ0R2Z zJUqBJ-Z-&E*IC24TJ`oa%_2bu#Jui92n~aXh5QK5B~(g~dc^m4E|YAHC`Ki7k+CT54wWpV zEXU8(K!XaG6MT%2rMp4!NzT#vsQRPZq!`zu3PtGp59$210Jo!#{c39BLi_ zTyvNU2(S0k^^&*au-r$EgwYI;5PDm978=@m~#cjO4+T?c_bpyekPN4M^sYtJ=bbtsftt=JLy7KbUCUrOftxdxSO{A*M5L z8zl|*EAC4&Qv${yNgMzwrPW_YgK+7YGymMrNJ8xG4R`#fD?@P1>=BopuGUvlG@C#QY3{;ZRpJjGX>jHiOuJh$!`M=e^cB0l%d+{m*pX{ZCid5(c}@mHu9ppvb!!8K?z) z__eBHf%b5B**&u_XHi60w(EzE}&8u8y-KS=(txb$sXe*{h1p@ z-!jR@Nw>+OL{1MbW1^*Rkq%RA257LzUgN$1q*hE_eZDQ(-K z(XKT+m0cQ?HMoti&9%|);kS34e~BaV%=t`#{Qpop`wf+mu-=nSBM{)SWJ!|1=KrWz z(QQyHZSw$c<&())SYp)9thQhySi|QB=-C*n`%<1#fO{8n-s{W(iYO2OU!<`f0kFsS zR1J;a0PuJR7UZspO-()`G^dvwlV8xjvo5=E7jua4#V1tH8_i9zt0Le-nepo}C8C*z zp$J>Sal6(sT*=4+z-YFkwt>8gY`4JiS8H;}^Qsea(Zvk#ahAsj!&?wUZdJt-?r}37 zoMdzfjsuiblXh!Lg6UlLAgfeFyhRe4RB$XO<^St7A)DpsClWX&EpHYEH3hu!%ZUH9 zlWw#w)&KnH;0_FvI1NghErbJUeTkIvwSO!xu6Nmsp~v z$SyT;zMCb>zjxS3==FpFkLUK~c_j#Cab*Tja&C&%>3ZG^;Ya9Q)Vc(4&auWg5gK+9 z2jQyL1$rjPuui4R3e7~@b9EP2K=^}Y z7Gy~Q)5z6br>!`n^`{u#^5(-|HE}ZXd%!Y9)8H~M{~?LJ@&6R4|NQ$=@V}#Ody~F3 z$7GpEE>R!#C?b7p&)4NMd2M|Z05Z4^fTgaTom@YNIa=&qU0LvkuV6u~?I@$4s3^P_ zj7nD;7ANh`U$L^Rxr-9ylJyIl@*B3@`bLdeR4m)$i*L_UqC3kN%VUvjV>9Cqw;k!%(4 z&}0uE@Wu-qxQ`#WYh)jcU2Wqt%fkAurJM5=8MW?t-{QGJq-<~31aojibLQXsmh#XF2BRC zm9~CM%*s!5#k&0o*3!-r<}g`W+@U#-?*zX)rl)brt#Zmetk=`l)Y*UIVyzrxE|L>j zcoEa%b?D8421@~Ae1@=QuR=3>Im=;i%>X66)Y8_$kfkpnvGGyqK@>dpX?wHJ!K=yN z6L`60qN(dxNIq1#7d_YH8MgYoY3jS{{Msa~#Xftjj(DeDDwaK*U@1r_S#i0z<5OAc zdOQ*Q8(gUE(U)i#zF=c6;FE#!Z&vj!c%ErU32Hu!G2N&G=jj|`Ds3?WE0L6BuN#1g zJh!I>r8GY#8kMl#JG-{1Cr!NJTT!WxHcRH35$gPio&5NhiBO$UV0{PuH-U*1e=S?L zNmh@=yzaSCSV~aS3Ej9)*p+4ms@TfoAD{51bbfQu`Oak(d%-aWo3_Hn5kaKI#!btB z*jmOQ1!%`oWyN;4e1cd#dkj=7|Erl?J|UNYICM9*<7_bYXoSmBa-oRvgG-#E!{E0SRj(Hzj;2vN%Dnr8L6xs@ct5Br=N z!dI2Ozi#4y>jN5dcECjGj75jtY3I(_oaImkI1XLWYXR|S3?9eKi0KSsQbMvVz^ z_wgT99KO=lNtk1a1xqtW07OO(zflEL3+pNCx_lQ(P01I zqnkCV>v7tN7;bqnSo29T*rOvuuBYVS$t%gy<+WLGcq+e(_raP`ZpEZa%t6y;UE0Z_ zUH5%Lr)7sc66fr#sc0?Pa!k{l*Q>SD2j}$;!4Fpj6Fte~!^W*f_AACkUn`}*JGy%e0^{jpL< z+*%`3M&JC^=mcFVn)6-_XzM+w@ph5^;UZ$!!BDYh-cb)!y0uP4Pp)Z% z&u{l!iIK%C*8dKRLb$l=#P--q&r3s>#X7DA%{gx3V*Ku{hz(SuT#y{UV9&+4eI4~c zYc+e$q@Ta>fSCI_twp(sPUD`l$cR+l0HZmdoGhz=4bpEjRT4e6`PNzVjOsOModlf( zcjw9_s&1J10h6B(?xv|hMCBoCVrOLP$*`$m^9TR5knZ_yBW4OQG?r^p+~roOH*>XD zVUn{0Z(Sr|w37yet=B7vUg&M?~$MQD&LiztAp3 zV*VI-VSM{LYsI!X`7R#FC5Tae)S-|lNi~U+bqvB5Ou8-U+c^N|d3`jaD!(6%?C&_P z^u+kih2{ Q^ErcW17u*UuKY{%kGV?o|C5BT`9luO}@qZFTlRw3pA2g~@?$c;f(C zx+goBW|FOO^h1q>K9~Su0p)3)eM%S`;#cE3@P1EqPS^m%p`i3%fWwwI!KXpSzmGLe)rvz-*+s`@Q53!~|8Vr$0FrT+D!EBm)qBzkmYz&n<6UCOQ0k9Ey1-Hj_S#btK!b zjys&S-Bnra^rN+4w}gBz)3xN84)lr-xNk-g^s+Qyw&)5NT8wtsz;HdmZnD>JD-QLk zVBo0~)lmW3@Ie>YbN1|-?m3$DVg*OjgBamds&RN+$x?GYfITpWsWX$@;1x2E0)2XJgRsnLSk=>tQ~%f0x7O&9~k=TX?1L#?jhLMsm(aGBoi3jy7QDhh9wcqR@EF zUI1x1C3WuisK8GurT7=)<;ucPf}Sy<^pniiPdyGn`TM>u4O%Wog}B87STxvI#{S3d zdkVZ=C-)k$O+c;qnnZ5;RwzZ?=x-{G^^U{~5|@6<@=Kg7x^`Ks25L1048gi}*Svm{ zwifNmVxXu&R zwI_XL@ti9@K;Dxi3&0T>*=S%SKhk?txU@}2uY^s9I}lf_Z?`&LuZt(~5B5WF9>#D> zeklzal_ocul)FgJe7Y4yf_&@%x|C2fsW(O(WAf-j^v3zt_vslo96I}AYdoB5; zRaxTFIr%FvwcrW1@C4o%?Y@S`+o{ZP4E)G`!@{y7V6-b>#(^ak%TfkxXOnwnGLVY2 zrdQ>>vVnyqdvmbvj$Sj~C$d{{X#r_#Bi0G3HXnG!V^5!LbvTt)EaB&eh76y^yP(L` zhWB{jhzUYYvxI(d5ckcGiH(}Y_1*KViEEz$ALCSG?f|51q+eT*xyx&Yc=B-?7$1xA zArnb&s4v8*B!OB$&Xh(#PEXEf*mph)ILQpmf$iV5=f$ox6MLT-?@;WvIWPA*p+p5@ z1g1PI0%kn(A>X{{Q3JH;M-HU127xga&_Qax97ke$(^DTf!nmnMl9h$@;;~%arjtjd zc!b0o-`PkB%{pj&YAi1cm!&<- zaPRmhCZ!hz!8lFW}PZ&BowomF$GG3wyH0VYCKw`N) zmFFhtxvO)37H9FrJK8hANAp6v__()d95ii%jUnf&A5}Wm-cBWOkJe0pB<&a!_{=6% z5aJCr;W;$WHD)*sG*AH%^#l=Ctb!0AyDJX7tLp*@&gkfUq)ED?(S*JcCQlnbT73K> zlb&k$g1qvAVL{XJ`x=3Ao*S1%3m25(KIuSoQrhXCpQrvtuzEd@KK&;qS8u1IT8zXr zB6^`GbD*?(#Gn{FgjkrmR`hlA^>R;VB$5WcmSx6ZJE@`@-s}UF*?;T90`rMdu_Sv` z0_5;_nZ5UiKgXACujCt4H=AfD!aMOU4VL-6M@7%YsHDZPg9XI5A(ur*iz z6>Ikk+szU39Dlunjx68>80M`DPuXhe0ziooBjmJ`PnT%z*%vZqO##N93q9`W(B-GI z$*KP9`JVAMMh8uU$W}g!sv|d8d>SC(sN$NG*c`sbcXOpdAsw%uMI=-SxOMY6^a@xy=D}Uv+k7_9~ zE@Qt)H{Nc4TWbJxWYw-8n6j6a;kb_)bM%Gj8jXCe5s4TQtpc88UTY-tS(Q0kb)D00 zM~;B~?xw@;^KF%5vqj8pvepLwouZ6DqOmXdl_ha%RK8bDUs3Tbf%cjRu+~w!m2rvH zW~ns^59F&=uJVm<)um=}@EBe2?9vCK;QBXLq-cLW)kvCXoH~o*;xTGpHoL%|rgxXM zosk}8l2@@+Q57&`7(bT}DDJ9^XAGC4gBbJHTC45Ys-M;T$8U6j?E7WFL;W5!i(mcO zpBZ7{Co%c}(fE{ZJ>ei?(_=gCESP`O0daIMN0yJ9t6R@1$;9y+D1NU-THdWHKUdk- z@54g>(&$3M>eC;Y5nKKeMH~pTkOi9#iz{fKXYjuk)Dj`j{68+}&GiYVXd#F3^=8k- z$X?%VdxL%6+RHCw7-jv31JsBOPD&*GYC=jE5uQLmII}Jf=0M=v@(!3(d0qFp z_~X9+$nJEO^POJ4uGOHPw}5BTQvM&$HgN4npZ+day}$7{gkI?HIhVVSPtPH3K+%@} zJd;~^#Us;L$C}&Srt?>5co%7GeVYHJbH7&aA6{KrWBlfl)0+hoFpv0}exr6Zs@LLK zSp@ua?^^=LzTMKYfBlSQgoQ+P)*wcTR_22sUiA#g(ZZ-aP@X%;T&(F=xnavL0nU~R3PxtvTWdW7{mRTCbHLKci)|R)cCx@Ty@_S2xxvxTtpcorpAZ+ z>Q%;XfGvN+Rqwx$(}(>Wf$Qx^HHjJHhef%r=Z#|Yv#IM5UPZ@sH5|>^DS59YMH{MX z8XT*^{^+zxh1=rHPt!@?Wr!xJ%SDq_IE?=Y3$Om{8!5sWnXbR~*B-FrvjyyZVb_l2 zo=HcdSB64k1LQVstsu&v7f6_P4zuSUXf>w7z&I2R>@CXc)dD zMIuVwUH~O$`GKIB#N?(ur4N2rug*{hu&rGqEB~{YaanIaUY@sOYgl2$4cA-VE?#(< z|HG7i#NzAIH$O}a3`Yuck=mG-j)@GD244kV$h|ZAuPl%gjJ{$kKIo{bh-g%d8x$i+ zXa8*r5k63@eXGG*grCzTHjeHlf|uoPCmLJ&Xlysz49uNKEF(CY8x(bER-`XiQ{&aj zN=F#&_zKphT;gf2W`L=L@#fWqCbjq5dF|}mCu9g(3x1HCLrEV|VXu(SM(vY2ODToQ zgS2GVd4Rq6YBkrfy$k>#pv?m>X&boW9$8mt1d(cLCOQkgR&y92y&pw%vhUANn%E#2;*iZIi8Cl7seN1Pa{^GB8EYKEi+k5al88W7JhSBtQo7RPv$M;|+r z;G2ivEr>xc)iW=yy9n6IZz7{TeM>BzE*zS^IDFLSihIwHx5A^C9g;5P``}A8&$?{G zk|cc|&Zd`zy&w+`u>X`PWdr+(-3z$Z$1`{x^BB_h>3u%CSw9rWmW?+BoMR18%>q2R z?NKPww7ofj}S_jeq;VO}2~71t9PP z3^tiy=tZ|C>OZ}P7S`+huLf{|-FRl;GyK*!D=^T-UZ!;X z(m>I+vCHk2R}cNS3lOLM?+Jo0hD>m_wVyduK-y?LHFyes>CnXbq?BTg71@&O+}shC}uv> z?2krKHN z@L?YovIVw{{NhCJ@(Ofq+fSfex2N&2VdGkHmxR)1L3s$7pSro6-kq>Gnt?|OUOi~d zGG{lClM<96p*}Uss!*Jg=>bK@wG3tJr&iw%@Ad6$EJ{qZbUroqTy%1&kd!~DTd3~q z$tbfs!D4`cy8DlTdr~ZZY}(dzNY3mRwUo?ICb{luZ(QzuCt$L(^=re{t}p#7Ev20f z>SD{x+bqnqY}0Q8Umwh{c$pAX$*K5lS)1HqsO`e0h@FGU{_g|D=`4ffl$jI7#G|2j z=81)#Ux+>t#XCn~jj)1YncdJcQ1)(*sZ#5a+&--Is#%`J4%WcI#|wV;z3k9JU!PtI z!lzFuZTjmuPNg}&ol2-lNoyjg+Zqi^D@9wFmB0>*ji`R^0i}jG;OGjTF?ST>nu?{P z?7t$cP3DB2k4n@2p)0$xxuV1wV6N|)N6~XEhtbgxKY)m4muc=tQ#59Gyg*eK(w%g3yeeISSQ>jrJT8>rZ&hZ*$ z5Z*xILB`?3I;T6+0T4|+Jy0hh=OA(G-PvPTOzFTz`87-A{59vg%0^-t^t06?KGElb zFTUIt{nanOx2cf_I%X{DW55Hhj&9`Wzh)%e8EfEz$v?>He82SuW|AGFH`6^0y7&}*g~Jyfhy zHItc(LYWpr>Gk~s<>xMZ_~7qf?x!6-B*rJSHzAPj5D!AUam~3-lAykSvRia0PB`k% zcY+PCd|#CP27U&zTfI$x$6i~viK4leH|RhmpO`GH?Iw2SRn1f~NV?lOc=PqQsOEPQ z{5`MVBj$t79PL%?;OEa7 z;<5wg4bxrqxLr`=n&nAJB?a1LO~m)<%jY`RPn4led-iAdvgUBhYxTd=!Z<|*1tAHZ zy$(b8>XGr-JlXgXItl41{4}(Lm^vgzu+-x7vVF65?m&L(_0O-1uQaCv*ZGMnx(JbW z=L6RqYZhLwAmP5~+1`fcB)O_S_)-j~XdB+b1KU@24O;6m**<67rJeu+^$k)obe+R& z`FfA@0d`0cuuVw?a?4L$_nl=iXh+2wQ_p~s?w}}!!&OT+;?8OWzqUwn_eEKTU-|5z z|JS%{m3PmbB3X0h=B4TBJ`0ND4ks<2Hd%z@T}t{%_FDCtm6zu8w0cf2zGJi3=0VWg zR;env#6M@3_s^0)%2V;7=x5x1&fD9WKJm*KSp3|$^6qcGeV^}^_jBI#Z>viFbSxN5`8=dR8csB@P8cQSoCuwmY^!~ciM@!CU; zorl>L7pB&?=>Fsmz5T(K@uq_Pq=RqM_ebZZFS{FhnC<<8?>FA2UjLrf_%`*{)%245 zdg)bfm)`$o{cv;h`|gFwxen!N)0r8C!~SNO{MHO9z9H`|{ekA0iE6I$S<$k&DMNstjlFD~AYj^$M zx#0D?ylc(Bm>C*QW|(~ER0mfv36B(7`rkZss<7GMXeDw+eU{8xof@~7wc(`|Gb9T@ z{gLm|z8uesN*Ek2xT~w@Fu1R&UAehby`A>~u*`b{Eb|z8y0w2LIGqFbZ5rG=PhV8G z1lCp`c697NeetpM^u@pn*6jBQ_pvL1Z{ct#`2eje)nLbuqI7mZwcHU7VCN7B8fHxR YCx0p+tKB_^cQHu7)78&qol`;+0J@cbUjP6A literal 0 HcmV?d00001 From 7d7d53df5e3159791d6022ef19b3a71a84be7b65 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 13 Oct 2018 10:55:40 +0200 Subject: [PATCH 08/98] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1b62a2..9a79b03 100644 --- a/README.md +++ b/README.md @@ -229,8 +229,9 @@ Official list of decentralized exchanges for AMIS token * [openledger.io AMIS-BitUSD](https://openledger.io/market/OPENAMIS_BTS) **New** *on BitShares* * [openledger.info AMIS-BitCNY](https://bitshares.openledger.info/market/OPENAMIS_BTS) **New** *on BitShares* * [Waves AMIS](https://beta.wavesplatform.com/market/AMIS_WAVES) **New** *on Waves* -* [AMIS DEX #1](https://ami-solution.github.io/amisdex/) **New** *in beta* -* [AMIS DEX #2](https://amisdex.github.io/index/) **New** *in alpha* +* [AMIS DEX #1](https://amis-delta.github.io/amisdelta/site) **New** *in beta* +* [AMIS DEX #2](https://amis-erc20.github.io/amisdex/) **New** *in beta* +* [AMIS DEX #3](https://amisdex.github.io/index/) **New** *in alpha* * [Bamboo relay](https://bamboorelay.com/trade/AMIS-WETH) 0x relay * [Cryptoderivatives market](https://cryptoderivatives.market/token/AMIS) * [Decentrex](https://amisdex.github.io/decentrex/) **Instructions for token transfer** From aa53fdb434167dbe73f76f4a64cac17996fb6e4c Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 14 Oct 2018 15:59:36 +0200 Subject: [PATCH 09/98] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 9a79b03..32af0e4 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ Official list of decentralized exchanges for AMIS token * [AMIS DEX #1](https://amis-delta.github.io/amisdelta/site) **New** *in beta* * [AMIS DEX #2](https://amis-erc20.github.io/amisdex/) **New** *in beta* * [AMIS DEX #3](https://amisdex.github.io/index/) **New** *in alpha* +* [Amis Delta Dax Dev2](https://sprout-llama.glitch.me/) **New** *live* * [Bamboo relay](https://bamboorelay.com/trade/AMIS-WETH) 0x relay * [Cryptoderivatives market](https://cryptoderivatives.market/token/AMIS) * [Decentrex](https://amisdex.github.io/decentrex/) **Instructions for token transfer** @@ -368,6 +369,8 @@ Amis Delta Dex Experimental Developments - [0x relay API 1](https://amis-erc20.github.io/0xygen-Relay/packages/frontend/public) - [0x relay API 2](https://amis-erc20.github.io/conduit) - [Amis Line Mobile Wallet](https://impartial-ellipse.glitch.me/) +- [Amis Delta Dax Dev1](https://freckle-shield.glitch.me/) +- [Amis Delta Dax Dev2](https://sprout-llama.glitch.me/) ## Wallet On Ethereum, one can easily create a wallet to store, send and receive AMIS: From 06336e181ef7a73fbdbbe28606ef61b0020ecd3a Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 20 Oct 2018 13:08:43 +0200 Subject: [PATCH 10/98] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 32af0e4..84f28fe 100644 --- a/README.md +++ b/README.md @@ -408,7 +408,7 @@ On Waves use either bitshares or the native wallet: - [Live history chart with Cross MA EMA50 EMA26 and Stochastic Oscillator Full (20,5,5) on a 6 months duration timeframe - source cryptocompare](https://www.cryptocompare.com/coins/amis/charts/ETH?ci2=EMA50&ci1=EMA26&bc=StochO2055&ci0=BB50&p=6M) -![Amis Chart by Crptocompare](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/cryptocompare-amis-chart-sto2055-28aug2018.png) +![Amis Chart by Cryptocompare](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/cryptocompare-amis-chart-sto2055-28aug2018.png) - [Live history chart with Cross MA EMA50 EMA26 and RSI21 on a 6 months duration timeframe - source cryptocompare](https://www.cryptocompare.com/coins/amis/charts/ETH?ci2=EMA50&ci1=EMA26&bc=RSI21&ci0=BB50&p=6M) @@ -416,6 +416,7 @@ On Waves use either bitshares or the native wallet: - [Live history chart with Cross MA EMA50 EMA26 and OBV On Balance Volume on a 6 months duration timeframe - source cryptocompare](https://www.cryptocompare.com/coins/amis/charts/ETH?ci2=EMA50&ci1=EMA26&bc=OBV&ci0=BB50&p=6M) +- [coinalerts chart https://www.coinalerts.io/coins/amis/](https://www.coinalerts.io/coins/amis/) ## Api - [Amis trade streamer https://amisdex.github.io/cryptoc0mpare/trade](https://amisdex.github.io/crypt0compare/streamer/trade/) From ee8e4e6f062d44d37ac9023db42c4b91675b6412 Mon Sep 17 00:00:00 2001 From: amisolution Date: Tue, 23 Oct 2018 19:20:22 +0200 Subject: [PATCH 11/98] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 84f28fe..ec669f2 100644 --- a/README.md +++ b/README.md @@ -419,8 +419,12 @@ On Waves use either bitshares or the native wallet: - [coinalerts chart https://www.coinalerts.io/coins/amis/](https://www.coinalerts.io/coins/amis/) ## Api + +### Cryptocompare Streamer - [Amis trade streamer https://amisdex.github.io/cryptoc0mpare/trade](https://amisdex.github.io/crypt0compare/streamer/trade/) - [Live stream https://amisdex.github.io/crypt0compare/streamer/current/](https://amisdex.github.io/crypt0compare/streamer/current/) + +### Dex API review - [coingecko api request for tokenjar](https://api.coingecko.com/api/v3/exchanges/tokenjar) Response body @@ -464,6 +468,14 @@ Response body - [etherscan api etherdelta_2 topic0 trade](https://api.etherscan.io/api?module=logs&action=getLogs&fromBlock=0&toBlock=latest&address=0x8d12a197cb00d4747a1fe03395095ce2a5cc6819&topic0=0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d&data3=0x000000000000000000000000949bed886c739f1a3273629b3320db0c5024c719) - [etherscan api etherdelta_2 topic0 order](https://api.etherscan.io/api?module=logs&action=getLogs&fromBlock=0&toBlock=latest&address=0x8d12a197cb00d4747a1fe03395095ce2a5cc6819&topic0=0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85=0x000000000000000000000000949bed886c739f1a3273629b3320db0c5024c719) + Under development: +### AmisEtherDeltApi + +### Conduit 0x API server + +### Flexible Telco API +The AMIS pricing and exchange API allows interaction with mobile network IN prepaid platforms, postpaid billing systems, and mobile money accounts, via SMS, USSD, REST APIs, and Diameter. + ## Support * Our support channel is available 24h/24h 365d - [Gitchat: https://gitter.im/ERC20-AMIS/Lobby](https://gitter.im/ERC20-AMIS/Lobby#) From c6f99db0b7179a937316ff3726825153beba4e1f Mon Sep 17 00:00:00 2001 From: amisolution Date: Tue, 23 Oct 2018 20:36:25 +0200 Subject: [PATCH 12/98] Update README.md --- README.md | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ec669f2..8288ab5 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,14 @@ > What is an AMIS Token (AMIS)? The AMIS is a transactional vehicle acting as asset management instrument for decentralized services running on the ethereum blockchain. Main Features: +* Long Term Investment program based on Low volume. +* ATF vs ICO: Asset Traded Fund is what characterizes an AMIS; it's also an ICO in the sense of an Initial Coin Option. +* No ICO as we voluntereed to promote and build the AMIS business case around the concept of Initial Coin Option sold as Asset traded Fund. +* NO centralized Trading: Amis do not favor centralized trading platforms but rather engages natively with a set of Decentralized exchanges (Ether Delta, TokenJar, BambooRelay 0x relays, AmisDex) which will undoubtedly expand over time. Dematerialized, Decentralized, due to replace FIAT transactions in the real economy for the long term, Transborder proof. Run on the ethereum blockchain natively since its experimental inception. -Low supply of Tokens 37.000 (37 Tokens created so far) now 20 Mio + +The 1st instance of AMIS had a low supply of Tokens 37.000 (37 Tokens with 3 decimals) now it's 20 Mio Used as multi-purposes mediation instrument to interact with other decentralized exchanges and smart contracts. Note: The new AMIS contract provides 20 Mio Tokens with 9 decimals; old AMIS contract deactivated from the exchange. We also introduced AMIS tokens and assets on new blockchain technology such as Bitshares and Waves. We plan to burn the excess of AMIS Ethereum tokens equivalent to the supply issued on these respective blockchains. @@ -109,7 +114,7 @@ There is a function created in the AMISConverter that converts the old AMIS bala Security of the contract -The contract is created using the most recent solidity compiler to date ( v0.4.9 ) +The contract was created using the most recent solidity compiler at the time ( v0.4.9 ) The new token contract code is open source and can be reviewed [here:https://github.com/amisolution/ERC20-AMIS/blob/master/AMIS.sol](https://github.com/amisolution/ERC20-AMIS/blob/master/AMIS.sol) is available for review on etherscan: @@ -188,7 +193,8 @@ https://github.com/bokkypoobah/TokenTrader/wiki/AMIS-%E2%80%90-AMIS#how-to-watch ## Usage DAPP Contract usage interaction is constantly under development, however we recently released new contracts and interfaces with which it becomes much easier to call AMIS for your favorite DAPP project, for instance you could use it to develop your own smart contract for selfdrop, airdrop, exchange, transportation, insurance, conferences, concerts, ticket resale and trade it - see examples below: -- [Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) +- [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) +- [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) @@ -418,6 +424,24 @@ On Waves use either bitshares or the native wallet: - [coinalerts chart https://www.coinalerts.io/coins/amis/](https://www.coinalerts.io/coins/amis/) +### Other charts +How many Amis subscribers compared to a set of tokens created around Q4 2016 (ARC, NXC, PLU, SWT, DGD, 1ST...): + +The Amis population has reached 1326 holders. +Its density of 1326 Subscribers (23rd Oct 2018) which have mostly been acquired through + +* ARC 187 +* BCAP 812 +* NXC 942 +* PLU 1151 +* SWT 2300 +* XAUR 4167 +* TIME 5302 +* SNGLS 8236 +* DGD 8258 +* 1ST 18851 + + ## Api ### Cryptocompare Streamer @@ -468,10 +492,13 @@ Response body - [etherscan api etherdelta_2 topic0 trade](https://api.etherscan.io/api?module=logs&action=getLogs&fromBlock=0&toBlock=latest&address=0x8d12a197cb00d4747a1fe03395095ce2a5cc6819&topic0=0x6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d&data3=0x000000000000000000000000949bed886c739f1a3273629b3320db0c5024c719) - [etherscan api etherdelta_2 topic0 order](https://api.etherscan.io/api?module=logs&action=getLogs&fromBlock=0&toBlock=latest&address=0x8d12a197cb00d4747a1fe03395095ce2a5cc6819&topic0=0x3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85=0x000000000000000000000000949bed886c739f1a3273629b3320db0c5024c719) - Under development: +** Under development: ** + ### AmisEtherDeltApi +- Currently developing [AmisEtherDeltApi](https://github.com/ami-solution/AmisEtherDeltApi) ### Conduit 0x API server +- [Conduit](https://github.com/ami-solution/conduit) for 0x and [AmisDex](https://github.com/amis-erc20/amisdex) ### Flexible Telco API The AMIS pricing and exchange API allows interaction with mobile network IN prepaid platforms, postpaid billing systems, and mobile money accounts, via SMS, USSD, REST APIs, and Diameter. From 5368a93f6df914404e34754d3e92e6a99ec785a9 Mon Sep 17 00:00:00 2001 From: amisolution Date: Tue, 23 Oct 2018 20:48:16 +0200 Subject: [PATCH 13/98] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8288ab5..12d5987 100644 --- a/README.md +++ b/README.md @@ -195,6 +195,7 @@ DAPP Contract usage interaction is constantly under development, however we rece - [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) - [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex) +- [Amis Dex on App.co](https://app.co/app/amisdex) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) @@ -205,13 +206,14 @@ DAPP Contract usage interaction is constantly under development, however we rece - [Matching Market](https://ropsten.etherscan.io/address/0x435e01e15d10f3953cc0a3aa974c89ca74af791a#code) ### Instructions for installation + - `npm install ` - [Download from Github](https://github.com/amisolution/ERC20-AMIS/archive/amis-kit.zip). - Install with [Docker](https://docker.com/): ```docker pull amis-kit```. - Clone the repo: `git clone https://github.com/amisolution/ERC20-AMIS`. - run -it -For more details feel free to visit our chat room (slack/gitchat), blogs @Medium, reddit, Blogspot, erc20-amis.amisolution.net and / or [Wordpress](https://erc20amis.wordpress.com/). +For more details feel free to visit our chat room ([slack](https://amisolution.slack.com)/[gitchat](https://gitter.im/amis-delta-dax/Lobby)), blogs [@Medium](https://medium.com/@amis_erc20), [reddit](https://reddit.com/r/amis_erc20), [Blogspot](https://blogspot.com), erc20-amis.amisolution.net and / or [Wordpress](https://erc20amis.wordpress.com/). ## Gui On the ethereum blockchain one can use one of these GUIs to interact with decentralized exchange smart contracts From ff9329fe57b59fd920260d47b36b7134af8a4700 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 24 Oct 2018 01:01:34 +0200 Subject: [PATCH 14/98] Update README.md --- README.md | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 12d5987..e17db1e 100644 --- a/README.md +++ b/README.md @@ -385,6 +385,11 @@ On Ethereum, one can easily create a wallet to store, send and receive AMIS: - Metamask AMIS integration only supported manually (Metamask integration underway) - [MEW AMIS Integration completed](https://github.com/amisolution/ERC20-AMIS/wiki) (AMIS tokens added automatically) - [TrustWallet AMIS integration completed](https://github.com/TrustWallet/trust-api/commit/65cec408b22bec82d17260a628a851c7e7afb840) +- [TrustWallet](trustwalletapp.com) +- [MyCrypto](mycrypto.com) +- [Nifty]() +- [Balance.io](balance.io) +- [CoinBase](wallet.coinbase.com) - [Amis Line Mobile Wallet](https://impartial-ellipse.glitch.me/) On BitShares use one of the following: @@ -403,7 +408,8 @@ On Waves use either bitshares or the native wallet: ## Wiki [Wiki](https://github.com/amisolution/ERC20-AMIS/wiki) -## Charts +## Analytics +### Live streaming Charts - [24h Live streaming Chart: https://amisolution.github.io/ERC20-AMIS/charts/amis-usd/cryptohistory/24h](https://amisolution.github.io/ERC20-AMIS/charts/amis-usd/cryptohistory/24h) ![Amis Chart by Crptocompare](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/cryptocompare-amis-chart-macd-28aug2018.png) @@ -426,22 +432,25 @@ On Waves use either bitshares or the native wallet: - [coinalerts chart https://www.coinalerts.io/coins/amis/](https://www.coinalerts.io/coins/amis/) -### Other charts -How many Amis subscribers compared to a set of tokens created around Q4 2016 (ARC, NXC, PLU, SWT, DGD, 1ST...): +### Amis Population +The Amis population has reached 1326 holders (23rd Oct 2018). +Density and statistical composition can be found @ bloxy -The Amis population has reached 1326 holders. -Its density of 1326 Subscribers (23rd Oct 2018) which have mostly been acquired through - -* ARC 187 -* BCAP 812 -* NXC 942 -* PLU 1151 -* SWT 2300 -* XAUR 4167 -* TIME 5302 -* SNGLS 8236 -* DGD 8258 -* 1ST 18851 +How many Amis subscribers compared to a set of tokens created around Q4 2016 (ARC, NXC, PLU, SWT, DGD, 1ST...): +Similar tokens that went through an ICO: + +| Token Name | # of Subscribers | Creation Date | +| ARC |187 | Oct-31-2016 | +| BCAP |812 | Apr 10, 2017 | +| NXC |942 | Nov-01-2016 | +| PLU |1151 | Sep-04-2016 | +| SWT |2300 | Nov 01, 2016 | +| MLN | 2414 | Feb 15, 2017 | +| XAUR |4167 | Aug-08-2016 | +| TIME |5302 | | +| SNGLS |8236 | | +| DGD |8258 | | +| 1ST |18851 | | ## Api From 06be351c314fb20ac81e018e424553e9dd964f71 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 29 Oct 2018 12:11:14 +0100 Subject: [PATCH 15/98] Add files via upload --- images/amis-newlogo.png | Bin 0 -> 23782 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/amis-newlogo.png diff --git a/images/amis-newlogo.png b/images/amis-newlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef1d267974f0cf74d04a144e33d30215a72e6a8 GIT binary patch literal 23782 zcmV)~KzhH4P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DTzg4GK~#8N?Y#$h z7RB2C|5HHeEs&4`Asq-MKnesBdJR=TEGQO=4Z(sS(m_!`kR}}|3P_VKz4zXG2^|q^ zr+6yo|9LXWFqz$FpWP<`&;Nbjy>f9un6@+Dz59L7|NGDXJ^!}@*|!7#FZ+i2zmfiL z2mbT_{!5VbC`xY%aw`0c-7cTtm&wqZzZ}DGpb}U1__%TOZ)f#^Y4Gp-WU8YI=TPxc)EZ8{`He5w@jNh z`>nSmhUD3gZrSqp-+t3hciq^rS;5o9=bs0-M#Nk`a6l~Ji&m``_wRpb`SPD{+{hMS z{U4sJb|71}_}~BfSL&fd$TSl>bg%%&vY|t@>HhxLzm9Fw#(O-aq<|aaEBxu+y$R1g zYaDh)moB^K&HMHC?JU0ae-)%m_}%2QcOLeS=@w*hTj~De<;xJ5aqZgK!NkSAd$k#1 ze|9>$YXc!PzQVu%`OmL=^spZGtJhxJyKv#3fBMPm9WdX|y#@dC@PD+a{{TEa3^2jh z7WM0AWNPjX5(SNu*3J)o&1*b?2~*i<$DBDf$Atf`8b18?xpUs3>W_ldAB?Am0VWQB zldySgqS@xjleJ^Jb@r^I5!A*=MR%`UG2-CDo;@QoWPkgE&+gXk==a}yA-Vq{koqI> z^pL>BLC){l)Bb_c67=Yj__%S7Mo=5?U%c1|roa6BGvc||V`BO`xOAygR6Tk~{b6{@ zE-+y*G!la;FTG^{Ttg#p;Hl&}k-Y>x0CWon4anm(M*19WtJ-eX+?7=B9V=UX-2B}AiCwHb1M=A`m&YaBW{lmqJ>Im0PoUnN$G+WfSZ+1!IYsZW+ zzQ~{N-GgY^Uysd}=$?PNd)LvvJsLZc_rgu`Ly3%ww(I%%kW?QfbZYO{O!eP)?F447+^A&4RAdINIfDvWgSd#4Rjpi zM#He~|NGzSX5!hkd4!n1|M9oKseL&o1Tvf5Wivty@bnoEbobo3PKWZ)J|$)6*I(P0 zoQz9)*pPY@c*-J}kgs=r^9^Tay4UzFv|ZaUVS>$5Ts?B6*7w+&H8%UI&34S5Z9KUf zr%t(Bvlmm)1;TuM?OF>mbbj}4B4j+$sfP-whmNN#O5Zq2t?kq^-*`jYLD+%K1G{?k zsMdGZn{V3eE1S*l)ypUs<1NWvv1xM0juu$KxG!AS_$W2*Zwjx62dRgPr!0c$+^${3 zuUQ{3b{%cYK$sm&On&i24F?>UosMdoF;6}9)Aj2{vFW=(gPaa!(VjQ@#l4@Hun4pY z*?r+hAK77u4+&Ba5l>kJ6Krl&^X48;Wz~og+Hu-+0B`&1E3G5pP#&k#8sG^r5`Y6s zmpUECqCLAxJBQGTJ6`y`;JT_d>c0L0;i$v8R(7=M&;DNzyY#a)rF5|9#|I?o=u$AqQdMJ3x z7BI03#0YrYcg?y@jEcuDG{AzTOX6$S+UY3UxMJmg`9&K9G@B}+jz$)Z0gBOkQ?rby17;(n zvKdcV0n^2O`!p4XKv<99xP0)Sx;2Mw1i_)kYovw4^Ei>(0NP+=B6g;>GYdNAuRr|Y zj!D5!tpiQv6c|~=AR_h#NA*8`|J~iN*#)WW#8XzlbZ+NP>?@dm)E5RT9uMHorAulT zq->8}_*k`VwQsUwaMM^hz68RaJWlPg!O|f^h;DFq>U?1KZCV&C{*@6V_|3cTGWGlq zKCl=(TOgHfc*+WxFw+T->844O)U8BG_ILoAKY!(CpLy&;N}W23BT3veRt}9_I;TC( z?yiBg^o?ZZg$=?LhLH9g%a9J|z5l+2uO{n|${svr1xyE*Et64;&}8+bu@6~)^q^34 zw#bF0FX-n)_DEJn0CdOSR9b3#0cNK z^UlMgQrUo~tbmELRHM96nzTK&-bYBf)*d^u^}eI*XkAdFcFmoO(Fiih2aQCZdib#T z!Jx`-SR_6{3==R@qbb}G98K58Ti-l=+8vl+`W}tC?p_(og)|(flp7;3&h>{OOJx;L zSpgF=lQCsLOIWie@`$eLrdUMMv9qMz0VdU)4LFV;KYsP<)l;WVojiGR>(;G1cI-HD z;>6CKJLk=tw|4E?g9i`(_~Vab#*BI4g%^JQ`R8AMMYX!UapT7EV|Yp7wJew6jN3GX`L#ztsKvq%3DKc1qedHO+VR=bu|xw!CJ1S;A9Rz;yk@2~%En z_1G~LBG^$Z=#3V=gj%FF#!wC?BAT0sD5))9zI=J#zJ1%aZCkZ!)v{&FzWeSwaI=5^ z{)-ncZr;3k(xgcF{FlG{?hElklA@f@Q*tZ#qYg? zl=pbb3YhL)z3PsJqr#{!d1Tcpi#^o>1Vkhq>;va0L7P&$;p{o`?c2A{pFjWm@4p8w z3l}Z~PwUpL176FQFCQ>qz!zV90hJO{1FW`f+qP-bhA!%2mMmG~=jRs{6?NVaozkpX zvyhOGK7IN?!|vX`4WnH9#TQn5Dka4gmEb03*K2{vxL1fxlC?pTv{QeNUI zD`3I_Zjmnl`%vEsv!Ml^woad}HYOMW^NbX6{`R-OK|es!;>C+$WY8q=^zFCbf}}tF z=}-KoSFc|0z4spf{AZe8%`YcToERS;-?eMkGiT1IBOf?$pkBRtIdbH9^UXK^Y$%zs zd-v|g9(#;EnJ{4jy?`&!+_PuT-8*-Xeq6wM`f2qoAk4%oyQ2+AY+1@nHkfm-WsrO( z)ix9BgNb2QS(#Hvd4s2{fQhBz_OgHo3az@)zgh-^n`R~<)}*GUBHzHpkc4*a+67aa zF=Ga7>-XP(=l36f{P9aKz4X;rUqMU6Two3f3Bm)F`Ym%6gQG`})~{cmS8mj((OE-U z6@8g2Fffn?5fKp}NnQNSn>UfS{`%Ly{`t4xD1bp^3!3bt4jqi?S)v!Z>ed-EyvWhB zW{W%L%n{?mLygg`NCiLNyqR5$&l#Rfk;E@8R%84x>v&vVPwir1GJu=NFHdy2aNz>d zG~hsF-m+y2+-lUQQD1)fB^W~1S+HQii!Z+T!3Q6l&QPZK<*Zq=s#dL9qecz5-oG=) zc>;xQ-MT&T#1p>0zJSj(_#epn`}?y4v@t~+t9t$Q*K_5{)w*@-l`B`?y?WJMd=iSt zg6zntGGYrH%Psx3cW+|@)EWzK41MiWDF=AU7BI0mv@mO}9-5>=${5c?ceHd><3&sc zMo8A^Xq@rn$&;ZpFe%1?<@N91|GDR$LuUGWMtvNVwc*2uBk?qE-h7jxJ`*}!&z?Q= z=FJP3x_9qRW8+r=_>j7C=FG{qAfY3NnSNBv2-L*ZfpUgAcI?=#Teq~v1am^SvMzm_ z8@JlDkskvJqiGu?PHUoI6H<2ZlwDvFi^kq#v3FYj6XoG#V_a8=kTOjc{(?%+2_Zql z+7Nn1r#(WMhak0V*|JBE9;*0^9{2X!Z~OT8bn4W}NKrWHE?v3+qbHwy66xxWA(cw3 z|L)zpty;Abds4Gz&FjXHx{SjaH*TD0hDs<8l{G^?C3D2?l`Xy+i!GH_5{u*?_(s+t zWeZQ)3nmtglf*P|N9>3u6}d!;v{FeZMAEPetHN}IvWB4uFo7gk8{#&D91#qZr1q&8@=bd+q2%sf6%a<=7LN|~?Dl*+%Fahx^T(~fMLd#D-{nR1} z4!q{ipI_`AEp?i7;|8J?R2J{DeG`LsG)#*Be2VUN9!bN(4=on&kxF^Sllc(VNH+X0 zrVh<9V$@ybPJNH5O?miysc#{fAaH@Tp;E!W;2?bK$k+TG1_U>O2PGvXAr%2EF$RQ+ ze^#ngDIg%gC~nh$UXUVj@a@{QLjrU6a>&<`EFpuh$?Uz>dfmHsFFHC}>>do!s1?fg zkk9L9&pssKN$jes2;*;Y2TJVb9&<#kA>|F89AfD|D8Rgc^i7KHRHAYBR)iv{Q>bsq z)~{c`e){z3XyaJ4`RI|OX@I6Sbm&l2eGHOPNaFWscCoRsaJNrB`2=%-wsO=xn4^$y z;^N{M+1;zr5~LzgiT#3rN!`%23v(qTB#6e4F}Rz%k-5vNT}iiahpmC_pV)YH#K|f(Z_sg-#$CX?GaL9 z5R+zhM%UV)iy7f^J97f--USQPy}(3?8(fZq+P`}BYTRuYmJpAyB=KL^yD>j<*a*C` zC1$6@#6+Rwqs$vu3nJlbf($^PETm)lBEJU(1&LjNlJQTEQYz5I!Y(%s>E1#blgmS@ zlU>kH)n&uG@jnu7Wj`PjcQ4uKrWJ*?4VmsKafqx6o3+cVA!UvyFTg|>-pxo?Rl$%p z7!IWAg*aNt=GaXXH|P!Y366l+MB`t6`303826RrTDhcMEefC+zlol;oAfX$ViZz`7 z65OXlhYnaiEnbHa>ej6*2@KPj8Z)&K7_)ly>T+jcwcy+1ra^Hf{o_l(h-%seYn&Dr zVBA&Aa=5td-^D;xbdOR$AzvO}!7cg8*b9>eHV4(3VaYJH(ebru;@(t3Z#Uz-pRtP$3{qSuth3th;Xwg3P%o%rah5VkNdyC*W(_t|m zc*N7#wrx#oqnQrqj!Nlx^0X~(|9_=>r>{&66P@9Jo2N{X3LVIRHzBN`mtnD_0R*OY z?b`3Z|Gp|J36@m4bZOK*<025chYT4aL>Z)GG%Ra|g)~;GR4K73h+nWFX>_pI0j%d3 zNaa=nTx;{D9E#7QNs}hBV`ylog(OEW^w2lEbea49`zi=9BM}wjkr9hY`Bqge&lO{B zBdd%w4f_Bvg;YA8?2qEEr9~}US8ABqtpN;$sDu-jXW+nr$lY)~4LEBzM{t z`wP@CUGjQ`3KfE?Nh5;kQZbt24;Fg?LqrC`Xldv55$U9iMc?AZi<=_bbSRvIa`zG2 z3B$6O5sgm-!^FkLE+0M|Q5wa~P8}67CXvL;Klub9o!C7&i-l&b;tXc;i^0`su~Z|Z zvJFoRL=k3pAAylKg9Ctql@d4Y(zKX=6mR5iz#(4%WI%ObN&KGwHNF^fmH6&C035&; zZZ-NMnSma0R6JOWEUb>|T*&foyzz$YD440y#cR6nye7d_>b_$k3dr&pg_ns z=r{;Humc!Jg9Z&$r#*)q9v%)?G9?2-R2SZU4AUaAz}>_6h-F2K78NfKK;f;hNROLE z1F$YNeEOotsfhPD0$f|&@u!}8$|J)f#7}gA=rTT9EiY>^5wsso$e8m=ZJ|#?0f{fW`aOhu1_bM77lNgFTVn{T=R!O9T+8wIKt9k5R zt5z-1D<&pJGzR*n;vE$}NMJ;cHpL2w4{|Po)@|a6W{#vN)7SAHPsUt9NUPC;a&+}- zxi#36(Bt?D`3?SE!ar1H4TX*Z?NC<6&3= z+&mtqXn+|^TD|Fu&_i6F9W;pUP?UxZ8>(Q!gkeYIhh|I0+OcCtx!O!r?f!kDiZOm# zdugaLt-h>Blcoe5vX`A2WfnW>J)Wq>blf0aVw6+A23G~hv<&huiz*ag zyTqQ`1R~Ag+R~jT#=(SU2Tb%OeoIb`dqA5MnSr7SHd8%`*HgQbL292wS!cp{+zK!8 z1d0hy=7*pyZ4Q}CsKxatvT|#!H+bU3C=DP%%{{7`EQQ5f zVjL$1v6Sf8M8=_xN#$R7!7zCfBVgP<9Ph%W48y|YXib(-yYPERx?$Q@L_wjKxN6A87+X2+0&< zCSfF;x;ssqk=wU#FAoE{f^;R?tB>i9U;|S@Sjp^z-viq$PNqF$DlCB|%Q?FXjLW2SCG+V9>2x9(XDU{QKV$So|Fp1FsZ^0k0tx zm>FqLFY(B}kTZ--B|$Rh+r)7pjAjGpco3bqiR`Y zwREHxK>XKI0<|p_8t!0E1z5CN4;~AL7}2(U=1fOqNj7$j zCrn=MvJlmbX0{B?2qhm61N2<#IB05^mrP{~LKcM^j(A+mRJU&3xpCw6&6_BEKVpjl zjts&X2=h8}m^=ny)r3g_P}*O=e(Tz`oBT<4(HER?kfJYs9!&*9geQWJ=|o3<=y>ba z4;UTLKtUMu^6(c|g8ALMw7hib$}6vQQt1kRC!#?}-^{{X>;PSunuXoH`|}S!kemJ^ zKX>jh#!vhbg;yF{#V5gATc09!DOwT@w#2eXHDXpKd0Y`rY!WI${5)D;vqv81>UVec z47i@0gCl3ZIJ}o%ewob`y9`x8wm>%5mcr%=`yp)Zt+(Dfd*Q;-lV|oEJi2r5;obX> z9y)gF%z0$_TSzKU1rRBNyBQ68H;91>Ubt}i$cdAC4<6mU`{1r!hj#5cxOd-?gGW!E zK6f67q#f$r&Ye3;qZHFYqOdK&vre2jyZ_MfJ$vZo>bQH)p?!ys9Y1~g^3|)L3Yx*g zUy$5sIeYGcQo*G)fr+GKK?3;`Bmpc|1-LI=xq9l{g~P{B?>~HE@1bM->_2ki$cZ!S zHf=6ZqJ%mK@q^Z2;*&t!qzm8DFL&-(T-m7F#~IU+y+8uasJYvrSdQrvgOaLi%t#~{ zS*GBymFW4TZ<8-8z{D04x051)47&HJ1cIeRY$&+XG9XRy8kNUs!!NBhC59rZz z;Jdx)`^m^r<2P@nz~o#agVpmxfJ0h3fBxdim8%8}8P>Dkz;}BMq9Z@=^cwj7M}r4{ zJp7yai_c%W1Xy{<(^{}#VeLBgRYWo%uvoKZ9e@+ekyD3^LE+9^xVZ1o@l88+&t0}^ z#Fx|hef)W^fx|x>G-BXqV~30$7gRDm#z8CzGZhdN6x7|Zp`(b#$;rvIxyXm@=1N&t zoqOf6Z_iYz7Zq~t07z@&4W1Z+pa@*q>hzS^6GO8jSh`W@UVH5|!RFX&qEKKfMwf+P zf9w$s4GhE=Qm-stzPfpfXCf=cm5ED^icKmLmlRbwu3Gh^mpXMVSTJ4Gz(Rv`C1e@~ zznq%--SSn9o3xCoM6Vi=RcneLx<^$`jH#ShB{p95>GG8m0Sv{ue*MO_U3+`>=^q{y zT{hm;{z1psn&m22d%nZV5UPt8FQXPLUB04p=@5;_6)ae!fB%n9pSu9@6QUbJ*riKX zAwu7+S>OM&QEi@nA*o)&it)7~SWiq+WaXsLN^wu*&aIA9J+TG^7$zvfzuZBJTtd+c zVN`6jyQ0Wy;eVG7Yj(MkN5+R%_~`H?W+D?@6kSj`9jY8bjJP{QpbsA_QY1NXT5t$Z zBNd6=;d95Ljd=9KojXTPot`jxdQeDIi3-(&;~R({|LBC=`O;G*X^)piI**ZRp@pYT zpPx4Sn{pLmi$})DUg9r4rOQ2@!-ZG*Ae<3vMMt>j*>jh^UAC%G>t_oEhG`v3R;}Y3 zQ86hgdDGTi$B&==Z1~8$88&w@)MJl5UN9h}L|F9ueFq;ndYrdoKu~qzV(PZt2PaJX zx_RqoqAJDuMO5}J8|PoXrhnzyB`eqUD--{CE*H;|Pm!WNACDNjW%s@_=P&>Gqe~$W z6kU5*u;h>A)QkT`rsFCRBQi*fRlB1R5YlNZkKqwgFnFhs@{&HuX}G+Lg7NagKgbe7 z24E6K6h2l&$U1fEXa-+?54U1ZvHggwI`;9}^&4CF9q9Y^8n9;p;K)LGG6KgM7zN$^zr&aRCvUBChS1Pt%scKDp%T#*n zgMK^q9ZF5T%DZ2@bY2UL2odEJd1a9>*NwWG%Y zo+#vPT1ZsBJbyuNsfG9irPrh__%{eA&y^ZF=#I?)i%b zvHKCV+Y}Cpkeit6i6;hrI^yW5Ghk7gH-W{SJ3k&gdSd*PY2lTtN<49p5`|)fvgIqR zT)R&6Wu5S*o40Q5J$!7$=yAnLh6KemGQ(41RGErJGGbliN>~+ZbK#>}lj2boyLRur zX~*8PXD_k-y@!r}Iekt-Qk_D&%tcFUw{D-WRN2xAjh@Jxo{dD~ z0)8cfL&HW)o{oNW`}Q6A1%oHJ|$4;IW784Ji!jf7Q@J-K&OJ_`v=P2guJ8Igj zeMgRCKA;PN7e{jC>a~qK_w^q5Nq!$cNe(5dLTa?gTO{4){s7atp2+PJAlrbaVv!X( zck8`=>#k$R&Ky2*df}>dPrul;P(VnjYK>*H@LEq5EnOA{sj|5z^A`@Q+0ymd)M*z| zv!!2TmDt4Osq+>bI(6#yojbr?ttdohv+VoKGtX#8OQ~(m!l|lef6ZLuioSPKQ$>w( zk3XaZIQ8W@z!P^lh!tR*;0jIctpEpvM}#0kZ;0FlOxl-3BCl|AVLVj#OOTmE$4`x) zHY=iXV*Zj5Qs{v}1XQR|D!!3lc=Vee4cxNlz}2fa;aQ@42A)ogojg6Pay6f@3b}Hp zM;3?!$X%c)-2+0)yg%U6?fVa3zwRpe1$@)U;gx0UHg|lpNB*LI8gUAaYw$$AbW5o` z$dIt`q{glC2SsJZQ^ihi_5Oa-wta_>Zr!_Y__)cXBFYC;N>*|CWZ~i}lK6YhC-M}J zsuEtOt!M_MAXNSl723bpdGoG47p`1E=#)Gi&!*}TG7YcTG-Zkk4z*|)vef*ZJ#~9G zHoOfR?9>vzVip{0L8~0#39pb`G;vOp7gBvJa4t+iB2I|l6F8j~TL{#ULNNJIuuEN# z;668Q-r9ZW$R{I4=T;6fPvK%AiOtw?sD*FYs?DG4uzuUF3zx5eT@6no#!M(s^g-r{ zOJ08b@!}DcU40Xq1w>VT?v*z;?c8(u$~9pZ{rTr#PMx_pXUU3&t)I^y6ef>9qITP& z!DTdB!kXXh`N8Z(OB=WAXvEX2Z}wWbVe__q`<8sau1k-e1$_J9B};&Ds%&Ji>j7e{MM#txn%x)$;B`t zs6<8NOJU8y+N_CXR4{fIRVxo#7QD-5euuOT@1uigq>8ca!z>>+f zVqr4+wm=4Fd^z>n>;;Sc{L|w-(4GVu9!SR(s>dbPSh;@l$#WMF$%TX==+orsGm83T z0#oh+MM@{6bDXfGmVwdLYBy-UcJsEgmo5pTs1U{{&zf5?v4KySI57)k>B)Q#ydMGw zr9(o$Ua)BIk)v}KFEho{D{uB%x@P10?K`G@v!Gs!r;C(ICt#s9nm=I}t!8rVC9Bqr zoi@91+Yb3llnSZY;sLcwXyg}J?w!6vcJ4on@s>sMf_$P9jwr&I^i0nc34Lfr-X_)o zwT&ni$LoyDYSPxZrUJ>_4uf!OhgI&Di;sS{DA+*b>h!WQ{_(d^i6_-T)K-pOQO zeC#n!6nPmzDj=p-cyjBsPd}+bOzfi7>rb3Lk4O%DZ{5DV@5s?nV<*B2gR0hJ{KBQ8 zG_u5+{ryWV_-@tiLq{#}^zs|MmaN^ldh^yVrp}D1QQxm@e3~j(Kj#yfj7*Hyxl0!u zHCX%CZP__^KHuTa+jl*Sz)fn|JQJa^(iE#%2nGxOj*gb9a{Dsc7NC zBHmiPvIeJ*R&I)a5^JPMMOYJEcgUJqM_n~3-J4jA>#>U`QRz$lk$La%IKngd6FW7L zvP7q-)4==E4#wYIj-`mG#3L(qEmz(GVQCl&PH6IEv5=zWs;3i=_=Y7T%M2Jbe%GNR z)IMc8bV+R7DmTfQJ1++*+vhD7STeRD(n+bN%Q z1&fsks#-sH!SsX$IU1V0PjGZxe4VAM)_cIyo4ppV-MC`Imf;hoL{v!duUOM3BwDjC zAT^E|J067>!RY4ATL+Jxnze9Q%JVPf_YZy`wkNj^Dqp=?_2ezPTzJBaC%xUQitG%F z+yr4wn3PtNQw^}B7`3U;jjhsnp)%RYrp1`G+bFY#K9OWMS5XRF5$_qW#pxlc!Z&T& z6a$YspCH#nw`nz*WgAF^EZfBy6fPDBQOU5@)PL;pJb8S>#Xn0|Yg!_*(o1iCuzAYkC{06{H0XEYWWj0)w*pv z-|IW5KvCb&#AYR{)-M_r=TkDGNQsik$+h)h7*SBP+DzP2o?IfMyT9bA54K|mp+NkB;ODcPW%H46~6&Sg43bXVxm;F zHcIXAk`$S6R|XEvMFtP$%b)+57hf(^yktlXp+&b1im8PZm8VdNbP+14rGJ@(dX3vG z`+j}fr=M2Il25T>ufP2c`kiXe#CV7$xq(u*!S(7iZ@XmmI@mOp4!$23 zx4m`y@bOb)CQd0@ta#CYkdl!VDkj!z`c#|Ox^*A-<)p)hkD$${tHP0BO%(|Kp*@-G zWCN=P0*}e&ut<57atbQOQeZ+7Hdirz+mACmiDBWsQd7XO1zbp}gCMIiI6=L9RfJ8t zqfCgFGVePeAn=PxQ#!r#9;$nI9hWs36{$pY^&GkL=PBe9UdLrT6dF)ycvSI>8oFY~ z$sXCddylXeXm~=!%j4sMBMda4Ol*_p?bmPFaq8^()YL2e`VGpHQGrgL+~YZ)K!|yu z0ocaVvbCGKzt>X@s1jr5DdJnAeD(0?N<+SwxMAC_)8{S`tRjM55Tw?u+tjVw+uh!N zw|Bq6BgRkpddbqQd-feac~%QPCLqi@MIF{JOnO9sX_vjKEXBgwgez9Nby9WF@V~a< zrQx`)x9yoUB=qdi|?D_MepuT*_9`l%vOhp>eUNgkN%j_2bA`ifLfjc)e z6H0}b<`LluwGN&|2?~O4<&*>wkm1i^yUXb&k4362SbJ~WxQS(X(yY1VYu58Ao1wZ_ zOUWNtHn415p^{O7RqCMg=krM~#wGTSjixAyO9`;V6Xu`N)l!6d7+E&@o!KUWgmzuIb`9Ny z=s!>eyolX{Zr#590|KZDCc?as$~~T?thb?ky%zPN-O(xvACQ-;&PYtEb`5wo$m0lZ zgg{^_)eK@pMIvA#1Icd)yEDN|NXI0um`+TDlT_tU>!9Sqk2dm)FMWd}g5nya3*&JO z3;C9;QoC8H@(KA%l||c9H@beq#>Y>d64AXDc*4k@$0qn~X3^lX zSQbi@OMtgJ!V?%R7!V3+Qy0eHeM@B_=!0u$WTv$uA$P{M>@1k-E)kI1HhE%`~- zq?-Ej%W8HMS#_U%_8Fl_awg~v?}l3E4ot#UB+`k5A1(FD)eSrLe$aoY>PJJGF6tN1 z;F(SVp_x2i=wcC3K<>0cFpL_X@ z*^5`~Idu5^rOS{d@C2%4Wiv4*Lut&*-B}W)D7qj=YHdhJ_voQ>*MJlOr?m{k?6&YE zFPMkRN{Nq%6y!?2Dw%ytd_FHm;;(5$7z&^u4}4D~buc&I6T<1a^Ou*b+4x)+{AjMQ zf(+#@*}r6PxvJ@Pn8lXiA@(a18&$6SoJA{+oIJxfEuyB}$xpfS7xE2@c_M#dqeY-f ze6{NJTjmQa>#`&%4ve1PZ_y_wZO!xlhJT+jEGkQGS5El5*eOrl3THE8{O&b+#xm@zBHRNlRNKbCi7 zpyQ{{Enc;*(_1}DhF2;cQ87IE0pm-1wKo1SwM#@)OsvzW@6eG`W_}YClqnhlB~es- zwDX78u3p^6ebho zM^jT1AFiNGh~a81n9KY2!<_>}FHN2q9-R@(<-;-x}^;#}5q{4Irw`IS#@XpN@< zpL~`_2@}m&-eXl0k~Zzw!(v3*0yzkz8!TG6?zJAh%T$an7E&%ap{b-&LQxH_*2FI| zrc^}PCo|it_#o8_LaiYs%zNU&QlK@KnesS&P3zv+2N{HlI_7rpZHqpU*dgY|gDuUe z2rlp}`SQdL@K&O5iuT}&5i%2$Nxii~#AIH-adZ2DLxYEZQPi(gNOjk~yHu@=x+wG_ z%C>mP@W9Ho)6GIPTcGqcZiXdkCl+TIF5$;c4fA!<}AxO{x)c+#FBjE)*2nrF$PdBt+4O$OW_nAa(TQ z*=1|i_ZjqQeC>LL1H*!A5dvQ_K1 zc-j^Xjn5>;i81pP3kZs>S1huk#FI!+0T8?wy!hnVvm3VUB=)ya%XYK+~xTz*R*`GbAG?l`HN@repHN&pD^p|VdEz! zHE);SKRpP<<=m}WH$18g&fNn?PhP)%^V;?65>EvKLye+$(Gn%|`K5VXs;3kUD_^JO z({J@26xXOlzQ9n|FB6*;4XY4eyIIpV&l~X+5m`Yd)kvVr$f~sX%m;W9QGU=}AO*JA zkh2#qZr^iY%A5tyb$q>aWM%xstf6pVxJEm%Yt(PteDTT+$4{L{Y#GX$sNO^pFm#)2Mr{s^D>C2B^zHz5 z;qKjg826@q{cVNnwILx74(zeVe2V)H89i~rSKka9H>Jt5FXb!pAj%e7PEbVjN5jYL zIB?|h7m>wJ98o zMiFSBQKtOG0$CVhT(NR-(Uq%?`)bbq|wXI4-C)BRre9gwK$IhJT+rK|IY-Tzq$XiHs zaBRI2C4*mh_oEJ-yA}2gCd2?nQX;BQxfx#hf_51jlS6&x* z!tZ8engt3L?Dl>y)A&sAM1BjmuwXAh-=t2#)f+c1q^6#|c#)qAmoMXh>e=%Hqd3nZ zrD>{kVoE@G`PR=ow_(Rl{MEqGSfYqTG_^h~RU1so7~Q}BK$}ZRQT6e3K-|ACZWVC! z!&SuDhNttpcFpM8Rjn}vcN6L;l*yQGfjdu}E@dR$iIyTkYSE&lgsG?$1@}IIB7qfZ z77eLTEUaqr@K}C)LSu?YRv{KU-8xmfZ9q(Nxe8TgE&Q%U=E6%Z@|H6f2?#DLWn6v# zQo*nG9?+#n?~;)*>0Xz(2KkEl2A8jzw{UR+8HnB_6u3-ul|G-0>d>{@lLd;BNTZPu z{#mwM^ulG!-NpNYC%kfJ&Risdp1>vyt=kVASig1qqLtrIo;hd2#EEJld@(q_=e$LW z`6}6h=%ghpB}J8sp8UXBORrMI} zOMc6$^;`DrJ-mF?+7~-^DPJ|dWVv|1sLF)`!;O5CV5XhB_H5X(`_r)#qvMi%f?dl< z=i^B&1IorXN@=%w+wM!LS7is%3$4*Cs8S8%PpLHV znV(`|6*c1xAt-Nje@~0215ZJvL*M^o)QAaF+jn{+UlCs%wB$JWmW|DoCx1YNBp06I z8x{{N?Q4kAWL5cnOA-!hC*Bu4tys5d+wQ%yzg<+lR^x&JVL`DC3I&82`KBnUj!S^@ zJ#&|?dbUgVd`0{v-AyyC)r^g+{{6hjrStg^STWv=Cn5v=RmsJzi z;B+OTYxo95R;*UHYOMxwwHwCPYFH_;Zdi0|;eZelY76@76;2|f%6zkM$>=Yq81Ymx zB&_#mW4@g6^_x9E#2Q{YsU-q9+J0_?@#;-sthjL=Hw2GERD7eVI*IrFVEMX@n|JS? zy>Lmx*3T9UiX@3t15?hNxdsg#3OL|m$n0m&U0k(k+xz`oAr+<5vV_wZecPbQwWG<4 zU%&a(`HNT$c#u%lp@_A&uy%4erG->PTDlg!$+=K6-t=xTZ5-8aYb{85#uJGU>&A_f zqlo)@khMjOfP6$$7d1ePhE3T9#ZbNPt3i{dPj`BwfPYCz^Ghc-FA`d*TJ0w9^cgbv zv(cY@G5+Jv$MhaNtj!CZ3zrBs8oq1RuD4?2=CxaPj2b`5h^JDa;eAJr`|9g&`wSXZ zBD8E^RafeZ3n-QAU|uTVm#G4iIJVq{d_odkillu!x#-jSOmMyQ_^y(j3W^Gl5O%hbP^Yy9FBlYI6AOUbIG~&K%57+pt_qF z^+#L^EuQwzJ~w0DqQpjRiiD>7def|n4T}dyyxODpyd^8vZQZ$J-+?W=_u{Va*yYU} znLNa<2&y7JCHjsSyL7`QKIoBSCmQh-92P!c^n{rUmJA*}zFduZg)^Ks#MT+Zp%{>; zJq|U)Dq%Mt0eO7&#%px`0hE4mA9zS>S(z$b&_8vU4aOK)J zdi5*d6DU(UaW@52N~#o7dG&^^n|JIKSB%Ps62jJ1`Ca$4xG68D;={CDJ(cpUfw*h# z+-$>>HV|JJ#wSWW%im)Z7I%UhZ3nUqq+6|8`Fw{C`*FHWoDotsKA>VoXl&hfc*KH3 z!-q|nzH$2=VuMnzUM1-4!~O%P)T3@LMghO5*b<@TUwq@;MJv8vzG~fPqsNEFB&hM@ z$WP#D(AbG{mae22M(tMZh113_s;a4ZsdfA3JjSb-+MmGF%()B8DmNykFZHp<5cLRz z_lv3$Q$1<$=t)byU%zqtuJzk?FZ+JO=t*BSeCpYJMFOS#gbwRpAtAXz!^zWUYUWvw zU}B%y;pgJx?N|X07$T+U4q`0&0=S2TCrrSIgz8-e!r(+58F!b4iSif{5Y+Zdy>eyS z{(}QQ8&!m`g0yr4eq0}DOmcLEiu1l(g$;(JB18>Qb4-26B`0T%h;sijv2`1^nzwM- zlI1Hu9y!K{Cn^OD9Y1ycs6gL;83S{DjDDK$%1+^0!z)4uYga4%Q=`XXs4wl_(sG8maP(5wOZM#HA`2D z^Np%pqI@+Oagg>cCHa>ur6!m&6d4M3?))G)SZq;TSeQpV(STTkR6{LcV#d+qOuNfM z6&|USV>}@el07KLCCrr9AkEyJs0byK{!6MJ0wz~j!P(36mab~v{+0YCLLLa?)tmZ- zSA3yMk4@BjJA4d(g8G@d0+?{fRZjQCiY#)NDd=L zzSyNl;S$7br7tzzNSoA(-}qNZ^p8#i_Y{ay>h-jx6i1=rCA5er>TFwI3?WWIjfKKe zBk#|#1{Qan$$RAFX(H64%NslX`KO;eB1trGj3;W(sY&G&T4hg(6*QfXicsQSD1kY2 z7B=YKy`PSsI5%bXyedici$%shpeSU8hn4L=d>jI4g$kK29pJ0&{6@FM8hr|lh#d08glaX?J=5yh6Fp2$OG35eB`eo#*s*8T#;yH^ z4m08@p<104Yc}jXd<2K?H%pc`ZU16{l4V>%SeZDjEGL6w3ZFjxt3$_5&z!%cY0GCZ zaNtokl&w)X~en||+c!D4iMkrpD=w3c4v^GY` zyMFVbBPS0XKDl7U%9hV}ED#h)u(>uS{}eYCArxP^a(&N%qf=(hZ~64|#lxbCghU5a zt*<5~Jm72x65uPA94MQMd9cNg^C7MN)%oE%fvb9Dcw5$J_VrKXUxku7ih0j2Vx8 zOLh;4u2w9#Tym}2TX*g|dGg%JQ)gDL+mKwhq2}k|)v$>6?A;q_4_hUl5Rghuy|(w@ zvAK&^bpPPPq(;sBLdq8@8BP#R(a2bza@D9XTeNI~Pk4+^sfeP1rL~d=L?GfnP|HAA zoL{F`UwyY`&EZX&1QaZo>6U=|_ZNKlp&dbrHe8;rRmEUN{K}HZEgdq%4yE*x-%-p- zFm*m4SQwrY)7zNHMU-Wk@bt+AfhU)N`0Uwf)21iZtd~%yQC#gNv9%f})M=7XtG*Tt ziANn4nMTs?o<4W(oB50C)=#NkFNH4r(1oPi4jo=yy>7#tZx=oD+)LH!HHxp(v}$rg zA3wd&1qWZbYHUJsa`k$R6Y8c^tJ|b`+jev2EjWQ$;^O6#XU=}JaB*VI`qk?-lj})t z)T~>#_aRP~FQ;Pt@ABGfS|$55x|_Ru_jk`p=JuNO2>>u~X+a?b|CrT$#)L`uhjq%d!b36rgIQN(s;mYS~g_ zNu){IF?@^el#DVaa9%xjOqAu^q1-R$5m?^PCow4eiw#w8CY6(6@Z|0&LBP@e)MC-> zI4qw;^*wv`&6>Sn{Iuzxe>rvJ_$hq`eq2zw8HbLT;6>_{=t4Tpp`*vK-{;%D-*ekTbIOyT?Y=W+^}Wl!tV$-9W`;r$O+R}e{$VSbqW{_*9zNW z6HG*D=6mwVf%WT4B6Mo=X6>-K6T&8mqM7Ofk>gN-m((T#K0U%nHgJq5N>GT-g9Z&^ z7r3&*IN5vey(e}YQ2>!#ZNPr<1-tU*Zr{FiDHXzS9I+<3q5u66^r|;Is(mJbC8K@l&Uv zc64MwRss}ozPi?v%HS6nnV;jQ&Yin(0kjdEBdV8ZBF>PHKRtQo0+Z5_K}6YL@uni= z7v7h4>&w0CH*a3NoO=4~1;WEw`PS`wl9Fp{0}`nL1ntO7j1OxgWTko8vMOA-&PDV1 zk{Y3w-SLR6J!W_I?O(ju(cNW^@g!4M`JMQ1E3>)PsI-@cPJ)VP)xP^tH!si+bcQ?WdlAk!{h{9UnPnacgLW^z$%k|hZy z{{jU*ZQNLch|!mFxEQdu(g7p?d4774bi1zl$ zz8IW>!D@)UIC$uyyfDb=r-u0+7HK3)T)e48HrpQ=WRt?HjoGPFC+n(n+W1@rAixyv z<1?a36AM5X#b-C~0F z?f4edF)_*;y(pZMMUas7l88c<_gc%f!8f^B)+yB#6Y+Ua<4Rj3$|e_R+lM1l3p*cA zo?N;5dGh!Y-TRNUY!UTYGH{@MJkb&pIfioki&#@usX!A+w)uXRKy)B7t z!ZcvVg)XP#oVc@E`{LbQm2PKK#K9X=nz-Pav!#Uq0!D z7d%1==x|Apwr`jNJa*I?EWSBg@u*Rw#B0MHEIvN=h>u?G z5mmNHv9kHG(v0qS%Cxg5QqOqvr_C|Be^!c08}90``PSa^J9?rmBcE~`ggTjcd6Xd2dSbGr z8q$O$;ZX-vr=T7+TjUqhN!(6(Go~ z&JgrF`)kF2jPF@Jd#n}i;u<^-YpTHGRB?oFbruLD0reU>VVaKgIPsxsdPc1pHP#t& zOGs0(i3!q$wcW69j&jvXHM_~!dV9UW6G9A0c0$n;k0|SlUD0APHH4hlOX;5Tc>M50 zLZH;s;`0?b%1$42Z&N*vDlzKoI2x8RS2D~?E)rvkBUa9g_+;=}s;}9oL4*0ddJ&te zU5IMmo`iAo*E@H#*AWTd9)AcYceD@Q((0x=9SlkDUhuGZ;C`T@L3QAyKd`7!g zZ>MAscnX#5y?9me8E8~Q+^+7_^d)9TFELuu84xb)lxYG=RZW5O4(Q)smg!cn_+egX zjQwJBrnhAfpyClv`2M`uWN+vbyU*1#GH?KYmN+DL#r$ChDz|bM9Bf=YpSYU;$rOZ} zQ6$-m_arEf&^!%H$hk(Bk8~Q|l1Y~J{B7=q9Y}BZc>A}Edq!^CeW0TV% z>}v;x3yevfp1r9xh}C+n$6-wc0mjn2Uif4P_tt7%V5j~0-aRf+F=9o%mV!-iUB7E1 z8(5BGyn}^k4et6e2W3i%qnM{`z!O8r3bLZC3Q2aRhmC|G2?GHeb^w7XPZcKUj(p~Y zix<yD13MP+2(uC2Q!nyLa84u`#LF=AHKf zF<8ur7}OSXH#OB%4l~+9?QfKq^oa?G#Szm8c4m4-1mr>9Gs$1nz+ZPuq>E+}BuK~$ zHivkpngj&`u%vr26iY=hgaWB%Au%9y&QX{ELm7D-QWrP8K@zx1+8q}&p7GuV3+%Hz zTAB*xgy0zm(ZqlIV4|h>c#`#1sJP0`8ZRzqbn<@Wr)-ldsP0etB7l4G^&>DDgLE-! z*a5V0`_N~x!fRv++0J-nipQcCxQSPpdK5!pmr{R(@t^RxN%yffEVsF zIVOzB=-H(>5nd7m0@-u= zUfCl*F^Y&)6(BImH~8)4xpKxHSBcqL4FIRFdfAJ|?leGi?A^P!Mo7@?tS@tRH!_UL z)U)e_=xvN$5j>8m4=!D5Q?kZYqAeBwnllpBwCMpeJMgOE!^Jol5sYQ*?CiX3<2}D) z2;7$Z$!EtA8WlHO^x|kSC3qAv;3=9yX9t4ntD;DvV`^Z+e{55u)OHPBQd7Pd8CM#? zHjeg}#(XETw7*y$hATOcGS!YYbwH zW0abm$4EDF+*G=P#A@HWC&;8Riu|p&-tr>!0P_+x_%$Mj{mctjF`~B?!Vn%FZVb+J z>wr}FKxpB{ncR|C@>|U&g+v~j$z40GtnWZAyQ!`7lNK=j7 z9XRmlY43$@?*K^|Zs6J7x@AR)v)EhhQ*_M!sH}pUh1da^H!LQ@jU|RA0Lc1i)d)Le za7Vu0?c29&-eREX?ka5SWx(UK94YTI5#X>~xTS6@9~(=e-ZvH?5_Yv^IJz~OD+tLy zR7c>SW81Xx0#c@exfdUyMvrtn@o%St!kefLph-NEg;|pd;;hvbkf?5dc7h(&I_8Xn z#o1A`znIIE#}T_HLn7@j3A-2cSbZZ{-qkBtj(-2W2!b=p)SRm$G#K6frv4d^V^UA- z&-d=xe>KyV8hSFxPhJaBXz2*%cth1GhYcGh284;YTQnWjBCXV%upc*q2|yE>VO3tJ za;7|vY66ZD2Y5jORB)K61z50s5WsW$!UZm?P+hayZU8lpXRkKcYPcHi#D)!yMv#q3 z9nK1#Oh}QtUpbuy35gF;jpG(}Ao!Psr9icwv-=jv)7FE4ubIDb%Ttfq>9Ub>GztgH zb84qxQgo3rX+^!{gR;4Q`*s+dW?Pz~lr9ph<)S4=Xuu|^z2@(~{pPWNxcL-V%-zS+ zT5qNUFo~v4&j!Vq>&s-XK7INy2zD2Xan!KJZr!@soDpqKlbI+Jg<4>U>Ob569m zbLkR3pb?!rixNZ}64P^9rrp)_1e-Pjd55fcE975CGLxymBXQ6#9*Drp4%?ctWcjRZW4WQUyfazPe?~I66Wa zBU)*1NY~Ow6V! zQ>ZCxOub0opwv_~^uT`Z9^J_rRil0p)GP`KL5H~clnO~?QJN+?)(8$J_!wWL6gx8PHQ9WXh=llOuYWr`+GUO9aD{(bw<&$W0Dq@Twh zd#q!XD(WVp8&Z>x!fFIl-#U919|D+Ai%bxCZQngNeE4uxekW2uD@}ok`O^OV#7a|J zVn)}l9;?{YO-LZaSpBjc#hIvYN*Q5|LSU5g0#EFiQKklD?uIhGSHm5xvI!=~c=8%j ze1+meB=8bfjJoc#XU?>%P{HF4j%nMrdyN{;$HY*$Jvk&~eBZv@WPJC^mEZsLCu@q0 zUsl}?l)>dwrtF+EhXN0jzeVV=6a1fPd97L*!}!r*J-&iz17i&x?s@WVDC#+BTR|~a z)1e&I!?X`3Z}8+bq{OS@Zo~7h1`e#TyoTG+&O+WX?#Uk<5fqA5w}ZTz9jjJ38q?T# z#iyTY#|FGCoGRASQQux04Fc)i3U_BN5y-F%E@eJB=7jd`jd6Tgr%Vp)1;P*|f6M`E zTdqThmbV{aM)Pj(JocL2sngIQL)4{`+J=k9YhS6H(HLb*6pF|7xNBfcAer;_+un`F z-G|0Q&}tt*j7_3@-JG2x%H%zsvLc(aa^hG>4Io0uYqzDH?VdPfh$=Ioh~e71xOcCe zzSeDw#kjNbA{d;s)13do2i`3bu@5y<8x0~YM}vssAGG=5djTdd`CS(6=DZKNW<%b3 z3#*BD8|SgtdZIZ@YvV7fic2_*RfwA&N#Tymbj>2Kd%=_Z7~fl zj4#v+D3kG$;Ot^^f;eRfPgxP9P-;ec73OSfqf=6%{Qc$UMQu+JT}i@*t?rh^+Q@Y@ zo&jNTUXN@{e{**Ww4Eu)Z!s>9zyVBv#(J#T4yLT)DJzir`PQxBUKv_EZflpMBnc*R zl1Qy#;}DsVs66)d*xN^ocgDhBuw(nz`gq6YvWGrp zk@4N5O8+y@WaTi7eTO$~il1L>3Z8%IC&nS2EfaCGfc9Buk?awxqz$-k?AWX<6>Gju zcx)G;&mx$zfj(tXHmAhV^w(d{%Jyk}n?|LFOsK9s*lSi;lAOX=7><+MJauYT)^C*V z9i?;{r*`B*QIVH*Fl7&(vIr>*dKP9}M@KcNVZ$eLaUraaB^0 zw4>rSv;cb6x=ts?)OPx+laUp#+i{~x7uQfC6EFCf=i{leLq2bACN~c@^b|$0s!Gc9( zJD463o>;dd#)mkyVdhLUf15{z{WmHwQ0$JH&VXsyYd5WNYNEJ|Z{bC~C2eFlrfz_+ zcL9br&YIDqjiCyU7)%cZPgzv=LqG)^VEB36C=dXIg*24}&sgzdUXogW!xrrM1SWy=LM>YXyot?%i9qhz%mPNye1@ z`oj;#Pz^h{F>OP@ka7K9GbVKkqPVn?9i?=x7&gpNHbJ%v;Lg+-zPNlQ{s^cb`2h*p_06w10e8pO1* z(X-|;rIT0N@a30(|I1&TZsx;dbJ^*?v%s183pm||jP{u6aBisVPZ}7-jeEqUh_ZX2CmYGm6vi+TcPX8GBt~PpO<+A5Fg*%9WtY0A zZ5(E0%@Qc;=#LmN!qH`Lc8;7H&cv(U}r4p%%LI?+v#hkjj86C^-{Ym^3j9okH?c^SB#A>l!$Bso+i4#JkHKB%QjS% zFwU73m#sECfulCw$#IiE1Wb<_PY+2pcemL$&zym4OtR;+aR)L};mMn8EzGzu7JQ>T z?if3U4u2Gw{s25ZVn~Ut#=;IoLAG`39!4$}r4zKri_$y~@S2iB#^$yeGZ3_mdF%hb z2Gbvdr$-=2xjPkX$`oWq|K~*Qc=yQHGY$p9oR-ulPZ*u00(l(J70ir_{RWMr-qB!JE|aF#1HiPhw1PPcAUp5(q1T5>lgo@s=w zA1+)lmbiEbi`9qx-w7DcZ~X|i{(s~Yo_F?tXN&)lhy4g%>c0>z?rdO>bg7SE>;Fei h@kkHJ-em0a{|C5w=R`QmSz7=A002ovPDHLkV1iN+g+c%T literal 0 HcmV?d00001 From 00da6159f5ea4fef0584de2d6ca132b6e7dd587a Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 29 Oct 2018 12:12:17 +0100 Subject: [PATCH 16/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e17db1e..8ad3b87 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -amis-logo3 +amis-newlogo AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-down-red.svg)](http://erc20-amis.amisolution.net/)  From fc14132889612c71f7082a22b8461ec1390b886a Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 29 Oct 2018 12:17:27 +0100 Subject: [PATCH 17/98] Add files via upload --- images/amis-logo-28x28.png | Bin 0 -> 2503 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/amis-logo-28x28.png diff --git a/images/amis-logo-28x28.png b/images/amis-logo-28x28.png new file mode 100644 index 0000000000000000000000000000000000000000..93973d9fa26d4b45c4861eb3162c0c4dd67ba559 GIT binary patch literal 2503 zcmV;&2{`tNP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf30z4;K~zXfWmXAT z&1)L}ovk`jX`w7xqNEa)q$}6ZqOs&AS#CwQ?wzu0;v!jMGM78^+>}f_xR&RltZ8g1 zq2Z$BQY2Z*UQx6-r%v_G`~O^L=9zh)=RD{8fB*0Q{=Rqr$%2EXkhY~6pGB@vq8)OC zg@+*`B0|64+R}no<>j#G-5Yrs8BiG*z}mq9UZJ7r(CMI1sq|;Pyu4u3vp*VJ^jm0a zYsHKZU&w|922sq`-Ow~OLS<+K&BrFJ@Nz^)M+f9`x%lGe*jU`VZ~K&^Uq5^u5d-!6o!FhM!rQt|$Ye4Ys@mbd(hqWD zw}3?tYsh5~V49B~1=!BWNYp-gf||-obTK!F+mtCN%gq(S zkP80K-@aX3@Zfiiyhxg-I95f9L=rLpn?4qJ@{_I(3I6>aBB|WXJA!Y0RvN9~5KOc+u7Z4JHCF|B< zG-s=h-Q8GQi!uD217Egq|9-TvyNTMN9t9}nTF7sgl)#p6BgyTY99-SE4~e{&pP!Ff zP6{iI(evleF=NII>|i&}o;@3b*~;MHV4OaE8fj^1@MQN-W>Br29X8y$g#jKOXywE+ zVJ{v0{(GVOdZKMxEr-z`1-5j%U2^PjD zpjL7@XY>_ztCfun)MjSrXm5v#_1!vo@;@EmGxV7)Td4NK2fBFiBJJL_i|&<|OLFpUna+M)Ds=1^rWbWUR6|3 zMtC@-hJ@%X)Vs8r4_sk4?A*DN-n@QAPVSy$?(zrn8a0|m`%fa1!J}wvYMKCEl#omT za~6}w7i0AoiBH@}mKGL5aoYCnRC(zVEgw9X$~Z)Ye1Xp*Tv}dG04@LDX%aYQ zm^dvQ4P}=w#xD?Ikx^)RT!xgbThYzI6EdX{Zs(oAm!88A^vx2u_=Vy|-YGnI@Ibh( z=;lq>y1K%U%jX!E%~MV!y-3Kd&CT@a@ngDw|2{2VyjWaDX=F^p#spG8#3CB~#VE3| z8$x!Y0?5O6D#;WovUG5#%hyY&p`l(_>Fg6Iz8gDsENOK*%4JVg6c*Cj5hEzk&5hbL z8u4COD7CI8{$*!pV=G(X@8=7nzOMW~9=Qk7U~20KzsXZYV%*Bl#{BrzaP=68pSgt0 zxeq_*@~NtAL_~Nv=5dQNY->Z#`t|76vnRZ`GwE7eAy;zMi%!F0%2{Q|{n3N#XVa!+ zM130rBb6K_c_(2u&;usiL9Q2GLi5u*h)etnbe%H1t}H|GrE>@ji-n8-Otd__32$#N z%;W|TmzW5*2@}A{f{DwPp%*t1#qWUnq{+<8B({=Pty(2a=Yprs&JMATjGRl6bLQv+ z&vB-(uV?F@U55>)%)nSQsU7+_)dpk;Ft=@8v~V2?_f1dcZet z-q4;sd#I|aisIwr#et}(DB84XlUVaWCZ$qI6({U2VO15J1`Wb7Zs1nj!oa_>ygaxB1c;V)oEy3y>*1j* zbcTe^fc!<>Gc1T*CN_*Xod+`Lp{y)q@~D!eZ~y-I$emx3p~Ht`C1+rAax(tL{3e#k zQY=rJ8m1u%E^>)T-RCLe8W;$jRtt8C)DXqDgPdG(>gW;3XU#Lgg*$&oLEcUDb8&$& zH{Vtsw#Gb?mh%)p_dBqovolgxt%AC`8mT;*?CtF_(b18cdOOn-f&mX|DfJ&QvFgKm zB)&6u+cvOU;4wZ3TkIdf*TER_cQu{J{M8oY{k_CZrY>59nxjW?^2Z-x!<6D07qAmg z`i)GeuBWCVho`> zOi;2|+abq+(r)N(<{%U-V-jT0wJUV2@Ks|Y5_odIVOFMMU?n#Q2Ol5YFD!(D*OCR2 z>m&<1nRZBBtB$=O#WCTpDbSov!O6NTArA|C%M zuPZ80&&lNM=Z7nM_o5dkjV-e^L#C1cEmHZoSSiuc!F*RDyetYCp-FCve**%#XY^Xs RWMTjS002ovPDHLkV1jIV&jkPg literal 0 HcmV?d00001 From 4c35dbda7b90e4e0d2b7de44e598c563835bf2ad Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 31 Oct 2018 20:05:55 +0100 Subject: [PATCH 18/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ad3b87..18fd587 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ amis-newlogo AMIS-QRCODE -[![Website Down](https://img.shields.io/badge/website-down-red.svg)](http://erc20-amis.amisolution.net/)  +[![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  [![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://github.com/amisolution/ERC20-AMIS/issues/) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official AmisEtherDelta](https://img.shields.io/badge/official-etherdelta-brightgreen.svg)](https://etherdelta.com/#0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis) From bfb3d8bdd79a9319997aaf5d9a8f1847dc9de817 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 31 Oct 2018 20:07:34 +0100 Subject: [PATCH 19/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18fd587..b7e0a4f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -amis-newlogo +amis-newlogo AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  From 58d66487bd64073ac0db517f8887e3bd890de1c9 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 31 Oct 2018 20:12:21 +0100 Subject: [PATCH 20/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b7e0a4f..403b2c1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -amis-newlogo +amis-newlogo AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  From e80a7d25fb6adb78bfe299400f71bdcb04c208c8 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 31 Oct 2018 21:29:08 +0100 Subject: [PATCH 21/98] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..9e070f9 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +www.amisolution.net \ No newline at end of file From f7835311fe2b381008fb4c5de9b2117430ec8a32 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 00:15:33 +0100 Subject: [PATCH 22/98] Add files via upload --- amis-github-ethereum-dashboard.ipynb | 4524 ++++++++++++++++++++++++++ 1 file changed, 4524 insertions(+) create mode 100644 amis-github-ethereum-dashboard.ipynb diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb new file mode 100644 index 0000000..28dbc96 --- /dev/null +++ b/amis-github-ethereum-dashboard.ipynb @@ -0,0 +1,4524 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "e90rkiawp8H8" + }, + "source": [ + "\n", + "\n", + "---\n", + "\n", + "# **Content of Notebook**\n", + "\n", + "1. Retrieving data from Github org (ethereum)\n", + "\n", + "2. Cleaning and formatting data\n", + "\n", + "3. Plotting charts using Plotly\n", + "\n", + "4. Putting into Firebase\n", + "\n", + "\n", + "---\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zi9sHxwROhLo" + }, + "source": [ + "# 1. Retrieving Data" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", + "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", + "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", + "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", + "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", + "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", + "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", + "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", + "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", + "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", + "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", + "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", + "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", + "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", + "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", + "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", + "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", + "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", + "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", + "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install sklearn\n", + "!pip install matplotlib\n", + "!pip install plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 8636, + "status": "ok", + "timestamp": 1527668728606, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "M2sky6pYY9og", + "outputId": "8d13199f-8c16-4c33-a60e-9e9044546702" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" + ] + } + ], + "source": [ + "# source: https://stackoverflow.com/questions/12965203/how-to-get-json-from-webpage-into-python-script?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "\n", + "import urllib.request, json \n", + "\n", + "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", + "\n", + "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", + "# events = json.loads(url.read().decode())\n", + "# print(events)\n", + "\n", + " \n", + "# Getting data for all events\n", + "allevents = []\n", + "i = 1\n", + "while i<11:\n", + " with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=\" + str(i)) as url:\n", + " events = json.loads(url.read().decode())\n", + " allevents = allevents + events\n", + " i+=1\n", + " \n", + "print(allevents)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zmVpMYBxOnrM" + }, + "source": [ + "# 2. Formatting Data" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 687, + "status": "ok", + "timestamp": 1527668734475, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "puJKUj-8eFJC", + "outputId": "8d717d5c-a770-4951-c22f-a78796897da2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" + ] + } + ], + "source": [ + "edic = {}\n", + "\n", + "# for single page of logs\n", + "# j = 0\n", + "# for i in events:\n", + "# edic[j] = i\n", + "# j+=1\n", + " \n", + "# for all 10 pages of logs\n", + "j = 0\n", + "for i in allevents:\n", + " edic[j] = i\n", + " j+=1\n", + " \n", + "print(edic[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lJxZKxdmEvwQ" + }, + "outputs": [], + "source": [ + "# https://developer.github.com/v3/activity/events/types/\n", + "# Payload is a unique object that differs based on its event type\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 2952 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 732, + "status": "ok", + "timestamp": 1527668736229, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "4DCw4EiqE3vu", + "outputId": "cebb4b88-2c5c-4bf9-9ab2-46de875aa8cb" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idtypeactorrepopayloadpubliccreated_atorg
08751648709IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T23:05:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
18751636392PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
28751635242PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
38751612602PullRequestReviewCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:57:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
48751606764IssueCommentEvent{'id': 8655789, 'login': 'codecov-io', 'displa...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:55:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
58751592879IssueCommentEvent{'id': 8602661, 'login': 'jakerockland', 'disp...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:52:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
68751580082IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
78751579259IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
88751575653PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136135662, 'size': 1, 'distinct_s...True2018-12-13T22:48:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
98751554182IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:44:06Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
108751552656IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:43:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
118751546770PullRequestReviewCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:42:26Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
128751545833PullRequestEvent{'id': 6540608, 'login': 'kclowes', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1162, 'pull_req...True2018-12-13T22:42:15Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
138751544474PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136119495, 'size': 1, 'distinct_s...True2018-12-13T22:41:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
148751543759IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:41:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
158751531812PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136112801, 'size': 1, 'distinct_s...True2018-12-13T22:39:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
168751529594PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'opened', 'number': 22, 'pull_reque...True2018-12-13T22:38:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
178751524322CreateEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...True2018-12-13T22:37:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
188751495938PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136094228, 'size': 1, 'distinct_s...True2018-12-13T22:31:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
198751479824IssuesEvent{'id': 8933231, 'login': 'dylanjw', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'issue': {'url': 'https:/...True2018-12-13T22:28:08Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
208751479546PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:28:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
218751457988IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
228751457971IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
238751455096IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
248751455085IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
258751404945WatchEvent{'id': 453776, 'login': 'ur5us', 'display_logi...{'id': 29512034, 'name': 'ethereum/devp2p', 'u...{'action': 'started'}True2018-12-13T22:13:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
268751388340IssueCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:10:18Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
278751375542PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
288751373949PullRequestEvent{'id': 791437, 'login': 'davesque', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1160, 'pull_req...True2018-12-13T22:07:30Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
298751373741PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
...........................
2658749262323PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134949870, 'size': 1, 'distinct_s...True2018-12-13T15:59:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2668749248312IssueCommentEvent{'id': 20308948, 'login': 'zscole', 'display_l...{'id': 143768297, 'name': 'ethereum/eth2.0-pm'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:57:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2678749236050IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2688749231725IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2698749230140ForkEvent{'id': 45850645, 'login': 'Snetw', 'display_lo...{'id': 15452919, 'name': 'ethereum/go-ethereum...{'forkee': {'id': 161661585, 'node_id': 'MDEwO...True2018-12-13T15:55:10Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2708749205280IssueCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:51:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2718749204531PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134920063, 'size': 13, 'distinct_...True2018-12-13T15:51:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2728749198475IssueCommentEvent{'id': 85355, 'login': 'lookfirst', 'display_l...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:50:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2738749173576ForkEvent{'id': 45844784, 'login': 'gangnamtestnet', 'd...{'id': 30313032, 'name': 'ethereum/ethash', 'u...{'forkee': {'id': 161660600, 'node_id': 'MDEwO...True2018-12-13T15:47:11Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2748749171801PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134903228, 'size': 2, 'distinct_s...True2018-12-13T15:46:55Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2758749171067PullRequestEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'number': 5649, 'pull_req...True2018-12-13T15:46:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2768749170485IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:46:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2778749167495PullRequestReviewCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T15:46:19Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2788749161300IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:45:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2798749153672CreateEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...True2018-12-13T15:44:22Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2808749152469PushEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'push_id': 3134893359, 'size': 2, 'distinct_s...True2018-12-13T15:44:12Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2818749133571WatchEvent{'id': 34389409, 'login': 'ndc07', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'action': 'started'}True2018-12-13T15:41:28Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2828749130652PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'action': 'opened', 'number': 569, 'pull_requ...True2018-12-13T15:41:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2838749129431IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:54Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2848749128387IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2858749128034PushEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'push_id': 3134880769, 'size': 2, 'distinct_s...True2018-12-13T15:40:42Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2868749118552PushEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'push_id': 3134875732, 'size': 2, 'distinct_s...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2878749118494PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'closed', 'number': 11, 'pull_reque...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2888749114734PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'opened', 'number': 11, 'pull_reque...True2018-12-13T15:38:50Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2898749104997CreateEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...True2018-12-13T15:37:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2908749101507PushEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'push_id': 3134866869, 'size': 1, 'distinct_s...True2018-12-13T15:36:59Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2918749101342PullRequestEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'action': 'closed', 'number': 310, 'pull_requ...True2018-12-13T15:36:58Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2928749078704IssuesEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2938749078679IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2948749070596PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134850927, 'size': 1, 'distinct_s...True2018-12-13T15:32:33Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
\n", + "

295 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " id type \\\n", + "0 8751648709 IssueCommentEvent \n", + "1 8751636392 PullRequestReviewCommentEvent \n", + "2 8751635242 PullRequestReviewCommentEvent \n", + "3 8751612602 PullRequestReviewCommentEvent \n", + "4 8751606764 IssueCommentEvent \n", + "5 8751592879 IssueCommentEvent \n", + "6 8751580082 IssueCommentEvent \n", + "7 8751579259 IssueCommentEvent \n", + "8 8751575653 PushEvent \n", + "9 8751554182 IssueCommentEvent \n", + "10 8751552656 IssueCommentEvent \n", + "11 8751546770 PullRequestReviewCommentEvent \n", + "12 8751545833 PullRequestEvent \n", + "13 8751544474 PushEvent \n", + "14 8751543759 IssueCommentEvent \n", + "15 8751531812 PushEvent \n", + "16 8751529594 PullRequestEvent \n", + "17 8751524322 CreateEvent \n", + "18 8751495938 PushEvent \n", + "19 8751479824 IssuesEvent \n", + "20 8751479546 PullRequestReviewCommentEvent \n", + "21 8751457988 IssuesEvent \n", + "22 8751457971 IssueCommentEvent \n", + "23 8751455096 IssuesEvent \n", + "24 8751455085 IssueCommentEvent \n", + "25 8751404945 WatchEvent \n", + "26 8751388340 IssueCommentEvent \n", + "27 8751375542 PullRequestReviewCommentEvent \n", + "28 8751373949 PullRequestEvent \n", + "29 8751373741 PullRequestReviewCommentEvent \n", + ".. ... ... \n", + "265 8749262323 PushEvent \n", + "266 8749248312 IssueCommentEvent \n", + "267 8749236050 IssueCommentEvent \n", + "268 8749231725 IssueCommentEvent \n", + "269 8749230140 ForkEvent \n", + "270 8749205280 IssueCommentEvent \n", + "271 8749204531 PushEvent \n", + "272 8749198475 IssueCommentEvent \n", + "273 8749173576 ForkEvent \n", + "274 8749171801 PushEvent \n", + "275 8749171067 PullRequestEvent \n", + "276 8749170485 IssueCommentEvent \n", + "277 8749167495 PullRequestReviewCommentEvent \n", + "278 8749161300 IssueCommentEvent \n", + "279 8749153672 CreateEvent \n", + "280 8749152469 PushEvent \n", + "281 8749133571 WatchEvent \n", + "282 8749130652 PullRequestEvent \n", + "283 8749129431 IssueCommentEvent \n", + "284 8749128387 IssueCommentEvent \n", + "285 8749128034 PushEvent \n", + "286 8749118552 PushEvent \n", + "287 8749118494 PullRequestEvent \n", + "288 8749114734 PullRequestEvent \n", + "289 8749104997 CreateEvent \n", + "290 8749101507 PushEvent \n", + "291 8749101342 PullRequestEvent \n", + "292 8749078704 IssuesEvent \n", + "293 8749078679 IssueCommentEvent \n", + "294 8749070596 PushEvent \n", + "\n", + " actor \\\n", + "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", + "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", + "6 {'id': 205327, 'login': 'carver', 'display_log... \n", + "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "11 {'id': 205327, 'login': 'carver', 'display_log... \n", + "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", + "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", + "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "21 {'id': 205327, 'login': 'carver', 'display_log... \n", + "22 {'id': 205327, 'login': 'carver', 'display_log... \n", + "23 {'id': 205327, 'login': 'carver', 'display_log... \n", + "24 {'id': 205327, 'login': 'carver', 'display_log... \n", + "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", + "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", + "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + ".. ... \n", + "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", + "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", + "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", + "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", + "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", + "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "\n", + " repo \\\n", + "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", + "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + ".. ... \n", + "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", + "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", + "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "\n", + " payload public \\\n", + "0 {'action': 'created', 'issue': {'url': 'https:... True \n", + "1 {'action': 'created', 'comment': {'url': 'http... True \n", + "2 {'action': 'created', 'comment': {'url': 'http... True \n", + "3 {'action': 'created', 'comment': {'url': 'http... True \n", + "4 {'action': 'created', 'issue': {'url': 'https:... True \n", + "5 {'action': 'created', 'issue': {'url': 'https:... True \n", + "6 {'action': 'created', 'issue': {'url': 'https:... True \n", + "7 {'action': 'created', 'issue': {'url': 'https:... True \n", + "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", + "9 {'action': 'created', 'issue': {'url': 'https:... True \n", + "10 {'action': 'created', 'issue': {'url': 'https:... True \n", + "11 {'action': 'created', 'comment': {'url': 'http... True \n", + "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", + "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", + "14 {'action': 'created', 'issue': {'url': 'https:... True \n", + "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", + "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", + "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", + "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", + "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "20 {'action': 'created', 'comment': {'url': 'http... True \n", + "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "22 {'action': 'created', 'issue': {'url': 'https:... True \n", + "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "24 {'action': 'created', 'issue': {'url': 'https:... True \n", + "25 {'action': 'started'} True \n", + "26 {'action': 'created', 'issue': {'url': 'https:... True \n", + "27 {'action': 'created', 'comment': {'url': 'http... True \n", + "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", + "29 {'action': 'created', 'comment': {'url': 'http... True \n", + ".. ... ... \n", + "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", + "266 {'action': 'created', 'issue': {'url': 'https:... True \n", + "267 {'action': 'created', 'issue': {'url': 'https:... True \n", + "268 {'action': 'created', 'issue': {'url': 'https:... True \n", + "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", + "270 {'action': 'created', 'issue': {'url': 'https:... True \n", + "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", + "272 {'action': 'created', 'issue': {'url': 'https:... True \n", + "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", + "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", + "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", + "276 {'action': 'created', 'issue': {'url': 'https:... True \n", + "277 {'action': 'created', 'comment': {'url': 'http... True \n", + "278 {'action': 'created', 'issue': {'url': 'https:... True \n", + "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", + "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", + "281 {'action': 'started'} True \n", + "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", + "283 {'action': 'created', 'issue': {'url': 'https:... True \n", + "284 {'action': 'created', 'issue': {'url': 'https:... True \n", + "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", + "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", + "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", + "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", + "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", + "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", + "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", + "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "293 {'action': 'created', 'issue': {'url': 'https:... True \n", + "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", + "\n", + " created_at org \n", + "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + ".. ... ... \n", + "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "\n", + "[295 rows x 8 columns]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame.from_dict(edic, orient='index')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "iYuOQffkif5g" + }, + "source": [ + "### Number of each types of event // PIECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 608, + "status": "ok", + "timestamp": 1527668737059, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "llyqSEk9dNud", + "outputId": "1b8fb75f-6670-4335-e55d-b0e19f07b6b0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" + ] + } + ], + "source": [ + "etypes = {}\n", + "for i in edic:\n", + " if edic[i]['type'] not in etypes.keys():\n", + " etypes[edic[i]['type']] = 1\n", + " else:\n", + " etypes[edic[i]['type']]+=1\n", + "print(etypes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Z0KZVGt_q4XD" + }, + "source": [ + "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 887, + "status": "ok", + "timestamp": 1527668738108, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "oV5GK_4VjGz7", + "outputId": "8f72a626-5ff7-4b53-b5fd-4055a29d88af" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" + ] + } + ], + "source": [ + "users = {}\n", + "for i in edic:\n", + " if edic[i]['actor']['login'] not in users.keys():\n", + " users[edic[i]['actor']['login']] = 1\n", + " else:\n", + " users[edic[i]['actor']['login']] += 1\n", + "\n", + "print(users)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "AT89xW2DrQ5l" + }, + "source": [ + "### For the timeline chart // SCATTERPLOT" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "AFf6znSBjkLq" + }, + "outputs": [], + "source": [ + "# getting the time\n", + "\n", + "def get_date(dateString):\n", + " from dateutil.parser import parse\n", + " from datetime import datetime\n", + " theDate = parse(dateString)\n", + " #print(theDate)\n", + " \n", + " # Return a format that can be easily sorted. \n", + " return \"{:%Y-%m-%d}\".format(theDate)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "mmy4B-Eh0ARo" + }, + "outputs": [], + "source": [ + "useract = {}\n", + "userlist = {}\n", + "for user in users.keys():\n", + " userlist[user] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1331, + "status": "ok", + "timestamp": 1527668741725, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "_QABrJl7rgwo", + "outputId": "324a0837-7963-4519-e989-f3b1ed36269c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in useract.keys():\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + " else:\n", + " useract[time] = userlist.copy()\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + "\n", + "print(useract)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "FWTX0y5KyTxW" + }, + "source": [ + "### All repos and number of activities related to each + most active repo // BARCHART" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1244, + "status": "ok", + "timestamp": 1527668744200, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Tns-gU6tyTFb", + "outputId": "75a1602b-ffa5-45d3-ea06-53115c4ff2d4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" + ] + } + ], + "source": [ + "repo = {}\n", + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " if name not in repo.keys():\n", + " repo[name] = 1\n", + " else:\n", + " repo[name]+=1\n", + " \n", + "print(repo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "it1N2K4eyNdM" + }, + "source": [ + "### Repo Activity // LINECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "MpmHtjPQ0M8w" + }, + "outputs": [], + "source": [ + "repoact = {}\n", + "repos = {}\n", + "for r in repo.keys():\n", + " repos[r] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1222, + "status": "ok", + "timestamp": 1527668748252, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "8fcUs9hvvmCc", + "outputId": "624e0c09-db34-4662-fe32-528de5497710" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in repoact.keys():\n", + " repoact[time][name]+=1\n", + " else:\n", + " repoact[time] = repos.copy()\n", + " repoact[time][name]+=1\n", + " \n", + "print(repoact)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "CXFkKZKg8Rp9" + }, + "source": [ + "### Plotting events in time period (Morning/Afternoon/Night) of each day" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "j_EjZ_AB8g6Q" + }, + "outputs": [], + "source": [ + "import time\n", + "def getHour(String):\n", + " ts = time.strptime(String[:19], \"%Y-%m-%dT%H:%M:%S\")\n", + " return int(time.strftime(\"%H\", ts))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 769, + "status": "ok", + "timestamp": 1527668750876, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "epKc2kzS80Ir", + "outputId": "de29dd19-9240-4f3a-f25f-5cc941083b05" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "getHour(edic[0]['created_at'])" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "KUiaK41I8vFY" + }, + "outputs": [], + "source": [ + "def classifyTime(hour):\n", + " if hour >= 6 and hour <= 11:\n", + " return \"Early Bird\"\n", + " elif hour <= 17 and hour >= 12: # 17H is 5pm\n", + " return \"Midday\"\n", + " else:\n", + " return \"Night Owl\"" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 714, + "status": "ok", + "timestamp": 1527668754237, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Tacj2G2QAQnw", + "outputId": "aabd5c2a-e7a8-4ed1-b848-17ec973c7bb3" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'Night Owl'" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classifyTime(getHour(edic[0]['created_at']))" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 712, + "status": "ok", + "timestamp": 1527668756478, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SKtwop5RG9AU", + "outputId": "8ca17014-427b-4cad-f120-c25b8cbcaf66" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" + ] + } + ], + "source": [ + "workingTime = {'Early Bird': {}, 'Midday': {}, 'Night Owl': {}}\n", + "\n", + "for number in edic:\n", + " t = getHour(edic[number]['created_at'])\n", + " date = get_date(edic[number]['created_at'])\n", + " if classifyTime(t) == 'Early Bird':\n", + " if date not in workingTime['Early Bird'].keys():\n", + " workingTime['Early Bird'][date] = 1\n", + " else:\n", + " workingTime['Early Bird'][date] += 1\n", + " elif classifyTime(t) == 'Midday':\n", + " if date not in workingTime['Midday'].keys():\n", + " workingTime['Midday'][date] = 1\n", + " else:\n", + " workingTime['Midday'][date] += 1\n", + " else:\n", + " if date not in workingTime['Night Owl'].keys():\n", + " workingTime['Night Owl'][date] = 1\n", + " else:\n", + " workingTime['Night Owl'][date] += 1\n", + " \n", + "print(workingTime)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "QBGD6XHPJV90" + }, + "source": [ + "### Finding number of unique users contributing by DAY" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 652, + "status": "ok", + "timestamp": 1527668757324, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SF6rfO9sK80k", + "outputId": "b9c86187-e2d7-4bd4-b105-ecbef3807354" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "alldaysuser = []\n", + "everyday_user={}\n", + "\n", + "for user in users.keys():\n", + " # use useract as i want data for every day\n", + " everyday_user['x'] = list(useract.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in useract.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " everyday_user['y'] = curract\n", + " everyday_user['name'] = user\n", + " everyday_user['type'] = 'bar'\n", + " alldaysuser.append(everyday_user)\n", + " everyday_user={}\n", + " \n", + "print(alldaysuser)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 617, + "status": "ok", + "timestamp": 1527668758110, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3UMUyKTIJV99", + "outputId": "e481f7aa-b01e-4781-93a3-fa1d3a55a50b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "numActiveUser = {}\n", + "\n", + "for date in useract:\n", + " u = useract[date]\n", + " numActiveUser[date] = 0\n", + " for user in u:\n", + " if u[user] != 0:\n", + " numActiveUser[date] += 1\n", + "\n", + "print(numActiveUser)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "puwDnw_eJV-C" + }, + "source": [ + "### Sieving daily data for number of unique contributors to show only data for past 14 days" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 721, + "status": "ok", + "timestamp": 1527668758994, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3CwnWg44JV-G", + "outputId": "9bc19b14-e34b-42ae-a285-d690467cb161" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "# https://stackoverflow.com/questions/7971618/python-return-first-n-keyvalue-pairs-from-dict?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "# format for obtaining certain number of keys (sorted or random): \n", + "# first2pairs = {k: mydict[k] for k in sorted(mydict.keys())[:2]}\n", + "\n", + "############## FOR COUNT OF UNIQUE USERS #####################\n", + "\n", + "datafor14 = {k: numActiveUser[k] for k in sorted(numActiveUser.keys(), reverse=True)[:14]}\n", + "\n", + "print(datafor14)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 616, + "status": "ok", + "timestamp": 1527668759777, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "q5wcx-Rc3Yjr", + "outputId": "6950e09c-6038-4679-c293-491fe468b18a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# change useract into [{'x': dates, 'y':count, 'name': uid, 'type': bar}] FOR EACH USER\n", + "\n", + "############## TO SHOW EACH UNIQUE USER AND THEIR ACTIVITY (1 or 0) ########################\n", + "\n", + "past14user = []\n", + "a_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " a_user['x'] = list(datafor14.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in datafor14.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " a_user['y'] = curract\n", + " a_user['name'] = user\n", + " a_user['type'] = 'bar'\n", + " past14user.append(a_user)\n", + " a_user={}\n", + " \n", + "print(past14user)\n", + "\n", + "# directly use past14user as data for stacked bar chart" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Q-brJ84NJV-O" + }, + "source": [ + "### Finding number of unique users contributing by WEEK (for whole dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 139 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1527668760615, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "LU-ubfhoBNJq", + "outputId": "1aea3c21-5e2c-4cad-cb0d-b38d7cd65672" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "{'1 Week(s) Ago': 72}\n" + ] + } + ], + "source": [ + "########## FOR COUNT OF UNIQUE USERS ########################\n", + "\n", + "weekly = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "usercounter = 0\n", + "uniqueactive = []\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(len(numActiveCopy))\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " if user not in uniqueactive:\n", + " uniqueactive.append(user)\n", + " weekly[str(weekcounter) + \" Week(s) Ago\"] = len(uniqueactive)\n", + " uniqueactive = []\n", + " weekcounter += 1\n", + "\n", + "print(weekly)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 159 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 609, + "status": "ok", + "timestamp": 1527668761380, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3Hk6iQtTBStx", + "outputId": "b13c2d27-8aa1-4b16-92ca-ae5835c588c9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", + "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "######### IN ORDER TO CHANGE FORMAT INTO STACKED BAR CHART TO IDENTIFY UNIQUE USERS #################\n", + "\n", + "weeklyunique = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "uniqueactive = {}\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(tempWeek)\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " uniqueactive[user] = 1\n", + " else:\n", + " if user not in uniqueactive.keys():\n", + " uniqueactive[user] = 0\n", + " weeklyunique[str(weekcounter) + \" Week(s) Ago\"] = uniqueactive\n", + " uniqueactive = {}\n", + " weekcounter += 1\n", + "\n", + "print(weeklyunique)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 785, + "status": "ok", + "timestamp": 1527668762337, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "NPhuQkBwFZ9h", + "outputId": "cead7cf6-3dd9-41ac-e9c5-8c4257253d6c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "############# CHANGING INTO FORMAT FOR STACKED BAR CHART FOR UNIQUE USERS #####################\n", + "\n", + "weeklystacked = []\n", + "w_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " w_user['x'] = list(weeklyunique.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for week in weeklyunique.keys():\n", + " # if got activity, record as 1, else 0\n", + " if weeklyunique[week][user] >= 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " w_user['y'] = curract\n", + " w_user['name'] = user\n", + " w_user['type'] = 'bar'\n", + " weeklystacked.append(w_user)\n", + " w_user={}\n", + " \n", + "print(weeklystacked)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "61aCZhAogY9F" + }, + "source": [ + "# 3. Plotting Charts with Plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "BEvGQGfCQrz4" + }, + "outputs": [], + "source": [ + "import plotly.plotly as py\n", + "import plotly.graph_objs as go" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "zBgeBPCmgb_c" + }, + "outputs": [], + "source": [ + "# Credentials needed for plotly\n", + "\n", + "import plotly\n", + "plotly.tools.set_credentials_file(username='yanrong', api_key='17UtNl7m6jsSekZ1Rf4C')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "nD6jUdKpfYp5" + }, + "source": [ + "### Piechart for event types" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 555, + "status": "ok", + "timestamp": 1527668769127, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "F9wV1id2foE8", + "outputId": "401c8ccb-0b3f-43ef-9cb7-18419f74e5c4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" + ] + } + ], + "source": [ + "# Recall:\n", + "# e_types is a list of [{x: xvalue, y: yvalue}]\n", + "# etypes is a dict of {x: y}\n", + "labels = list(etypes.keys())\n", + "values = list(etypes.values())\n", + "\n", + "print(labels, values)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 583 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3931, + "status": "ok", + "timestamp": 1527668773212, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "4iGinWGvTFGb", + "outputId": "4d042e23-2ea9-4d78-df6c-5e5886caf265" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~yanrong/0 or inside your plot.ly account where it is named 'eventPie'\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eventPie = go.Pie(labels=labels, values=values)\n", + "\n", + "py.iplot([eventPie], filename='eventPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "6XMmsR10h6po" + }, + "source": [ + "### Barchart for each contributor" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3944, + "status": "ok", + "timestamp": 1527668777275, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "TWRBjWZhf_Vr", + "outputId": "61cc7f10-22a8-41ed-d971-cb94ecf3d3d9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alluser = list(users.keys())\n", + "usercount = list(users.values())\n", + "user = [go.Bar(x = alluser, y=usercount)]\n", + "\n", + "py.iplot(user, filename='userBar')\n", + "#IPython.display.IFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "jdqVgUdzipME" + }, + "source": [ + "### User Activity by date (Grouped Bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 805, + "status": "ok", + "timestamp": 1527668778110, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "UHyaIQfGknzf", + "outputId": "cd5cc956-8944-4fd4-8a8c-897bfba9bc95" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" + ] + } + ], + "source": [ + "# need to reformat useract into {user: [list of days active], ...}\n", + "uact = {}\n", + "\n", + "for user in users.keys(): # all the users\n", + " for time in useract:\n", + " if user in useract[time].keys():\n", + " if user not in uact.keys():\n", + " uact[user] = [time]\n", + " else:\n", + " uact[user].append(time)\n", + " \n", + "print(uact)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 634, + "status": "ok", + "timestamp": 1527668779186, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "wqDBJK_kqe6u", + "outputId": "e57c9988-b817-46e0-d1ad-9648e7f666ab" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "useractivity = {}\n", + "\n", + "for user in users.keys():\n", + " useractivity[user] = {}\n", + " for time in useract:\n", + " useractivity[user][time] = useract[time][user]\n", + "\n", + "print(useractivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 531, + "status": "ok", + "timestamp": 1527668779886, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "_qmSc4KurbIA", + "outputId": "7b40e686-40a9-476d-bbab-15398791b1de" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# Putting into x and y for each user\n", + "\n", + "allUserBars = []\n", + "\n", + "for user in useractivity:\n", + " current = {'x': [], 'y': []}\n", + " current['x'] = list(useractivity[user].keys())\n", + " current['y'] = list(useractivity[user].values())\n", + " user = go.Scatter(x=current['x'], y=current['y'], name=user, mode='markers+lines')\n", + " allUserBars.append(user)\n", + "\n", + "print(allUserBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3701, + "status": "ok", + "timestamp": 1527668783763, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "ZZN-it6os2LH", + "outputId": "732e1f4a-072f-4f9f-f01c-b2c394264786" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "# layout = go.Layout(barmode='group')\n", + "\n", + "# making user activity line chart instead\n", + "fig = go.Figure(data=allUserBars)\n", + "py.iplot(fig, filename='UserActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "USXYLNwc0uuD" + }, + "source": [ + "### Repo Activity by date (Grouped bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 914, + "status": "ok", + "timestamp": 1527668784747, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Kojb7D0t03hg", + "outputId": "2a82eb75-ab49-4eee-a8a4-442a47d605be" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "repoactivity = {}\n", + "\n", + "for r in repo.keys():\n", + " rAct = {}\n", + " for date in repoact.keys():\n", + " rAct[date] = repoact[date][r]\n", + " repoactivity[r] = rAct\n", + " \n", + "print(repoactivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 860, + "status": "ok", + "timestamp": 1527668785776, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "qbewgrDz13aR", + "outputId": "897b7203-2988-4ef7-cb4b-a3d4e09c5fd8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoLines = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Scatter(x=current['x'], y=current['y'], name=r, mode='markers+lines')\n", + " allRepoLines.append(rep)\n", + " \n", + "print(allRepoLines)" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3731, + "status": "ok", + "timestamp": 1527668789785, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "je9_fWMo3UJw", + "outputId": "6c12181c-e5a1-4199-f634-5dec9028f9dc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group linecharts\n", + "py.iplot(allRepoLines, filename='RepoActivityLines')" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 761, + "status": "ok", + "timestamp": 1527668790647, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "lqHeTbNP6RiM", + "outputId": "8ac39a6b-3d5a-456b-fdc4-12324fa4f4e7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Bar({\n", + " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Bar({\n", + " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Bar({\n", + " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Bar({\n", + " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Bar({\n", + " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Bar({\n", + " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Bar({\n", + " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Bar({\n", + " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Bar({\n", + " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Bar({\n", + " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Bar({\n", + " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Bar({\n", + " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoBars = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Bar(x=current['x'], y=current['y'], name=r)\n", + " allRepoBars.append(rep)\n", + " \n", + "print(allRepoBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3644, + "status": "ok", + "timestamp": 1527668794857, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "xt9ZK1eC4C0g", + "outputId": "46ea2ab7-76c5-4022-c5df-f40d4f38baf3" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "layout = go.Layout(barmode='group')\n", + "\n", + "# using repo activity line chart instead\n", + "fig = go.Figure(data=allRepoBars, layout=layout)\n", + "py.iplot(fig, filename='RepoActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "ifqxugZRONk9" + }, + "source": [ + "### Looking at types of Contribution per user" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 886, + "status": "ok", + "timestamp": 1527668795807, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "OTu68Zlj6D4E", + "outputId": "cd708e7a-f2aa-43b3-c72c-c44d53656a5d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" + ] + } + ], + "source": [ + "userCont = {}\n", + "\n", + "for user in users.keys():\n", + " userCont[user] = {}\n", + " for i in edic:\n", + " repname = edic[i]['repo']['name'][10::]\n", + " if edic[i]['actor']['login'] == user:\n", + " if repname not in userCont[user].keys():\n", + " userCont[user][repname] = 1\n", + " else:\n", + " userCont[user][repname]+=1\n", + " #print(userCont[user])\n", + " \n", + "print(userCont)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ioZKlPOzH_N7" + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "niqdz9h_pvyL" + }, + "outputs": [], + "source": [ + "userList = list(users.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 956, + "status": "ok", + "timestamp": 1527668799105, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "qgcRjWKMBq_8", + "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'fubuloubu',\n", + " 'values': [5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", + " 'name': 'pipermerriam',\n", + " 'values': [21, 1, 1, 3, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [leth],\n", + " 'name': 'halfalicious',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth],\n", + " 'name': 'codecov-io',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jakerockland',\n", + " 'values': [4]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", + " 'name': 'carver',\n", + " 'values': [4, 32, 1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'nivida',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'kclowes',\n", + " 'values': [6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist-shell],\n", + " 'name': 'evertonfraga',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth, ests],\n", + " 'name': 'winsvega',\n", + " 'values': [4, 5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'dylanjw',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'cburgdorf',\n", + " 'values': [8]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [evp2p],\n", + " 'name': 'ur5us',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'davesque',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Jeongjaegu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yethereum],\n", + " 'name': 'alexwanng',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'JustinDrake',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'kswizzlek',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-solc],\n", + " 'name': 'pryce-turner',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'humboo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'voermx',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'charles-cooper',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'sandakersmann',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'binary-adam',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'jpeletier',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'AlexeyAkhunov',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'veox',\n", + " 'values': [9]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'SabraAS',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, m],\n", + " 'name': 'hcaw',\n", + " 'values': [1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'caotic123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'zach-is-my-name',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'Arachnid',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'djrtwo',\n", + " 'values': [17]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ellowpaper],\n", + " 'name': 'EBGToo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Hilobrain',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Afzalshah38',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'nolash',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'eip-automerger',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'ifdefelse',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'perlmutterlabs',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'vngkv123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olc-js],\n", + " 'name': 'LogvinovLeon',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'stale[bot]',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'AnuragHydro',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'ryanio',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'jannikluhn',\n", + " 'values': [4, 2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity-test-bytecode, olidity],\n", + " 'name': 'chriseth',\n", + " 'values': [20, 25]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'CrystalEyes7',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'marcgarreau',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'riusricardo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ive],\n", + " 'name': 'FrankSzendzielarz',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'leonardoalt',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'hwwhww',\n", + " 'values': [1, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'rahulvickysingh008',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'rauljordan',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'christianparpart',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'gitcoinbot',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-ssz],\n", + " 'name': 'Bhargavasomu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'dilbydilby',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'haltman-at',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'SODAMFIA',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'timl206',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'terenc3t',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Snetw',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'arnetheduck',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jacqueswww',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'hamzaenaime',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'PhABC',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-pm],\n", + " 'name': 'zscole',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'lookfirst',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thash],\n", + " 'name': 'gangnamtestnet',\n", + " 'values': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# converting userCont into format for multiple pie charts\n", + "\n", + "allUserConPies = []\n", + "numPies = len(users)\n", + "rootPie = math.ceil(math.sqrt(numPies)) # length of 2d matrix\n", + "counter = 0\n", + "\n", + "# we need a double for loop to obtain a 2d matrix of piecharts\n", + "for j in range(rootPie):\n", + " for i in range(rootPie):\n", + " current ={'labels': [], 'values': [], 'hoverinfo':'label+percent+name', 'name': '', 'domain': {'x':[], 'y':[]}, 'textinfo':''}\n", + " current['labels'] = list(userCont[userList[counter]].keys())\n", + " current['values'] = list(userCont[userList[counter]].values())\n", + " current['name'] = userList[counter]\n", + " current['domain'] = {'x': [i*(1/rootPie), (i+1)*(1/rootPie)-0.1], 'y':[j*1/rootPie, (j+1)*(1/rootPie)-0.1]}\n", + " current['textinfo'] = userList[counter]\n", + " uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'])\n", + "# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\n", + " allUserConPies.append(uCon)\n", + " counter+=1\n", + " if (counter >= len(userList)-1):\n", + " break\n", + " if(counter >= len(userList)-1):\n", + " break;\n", + " \n", + "print(allUserConPies)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 13127, + "status": "ok", + "timestamp": 1527668812424, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "pg4HNsmA9_ww", + "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", + "\n", + "py.iplot(fig, filename='UserContributionTypesPies')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "hVAoYtABJ3N2" + }, + "source": [ + "### Looking at the time period in which Contributors are more active on GitHub" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 718, + "status": "ok", + "timestamp": 1527668813207, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "iBUVrFW8SylN", + "outputId": "b23075f1-c0c9-40ee-efc0-8fd115f1f2f3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# reformatting workingTime into [{'x': dates, 'y': count, 'name': catName, 'type': bar}]\n", + "\n", + "workingCat = []\n", + "\n", + "for cat in workingTime:\n", + " c = {}\n", + " c['x'] = list(workingTime[cat].keys())\n", + " c['y'] = list(workingTime[cat].values())\n", + " c['name'] = cat\n", + " c['type'] = 'bar'\n", + " workingCat.append(c)\n", + " \n", + "print(workingCat)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "elOh4GdlUInJ" + }, + "source": [ + "### Stacked Bar chart to show proportion of activities in each category:\n", + "Early Bird: From 6am to before 12nn\n", + "\n", + "Midday: From 12nn to before 6pm\n", + "\n", + "Night Owl: Between 6pm and before 6am" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3654, + "status": "ok", + "timestamp": 1527668817025, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Jzdczz0XPu4s", + "outputId": "07abcfdd-e6b1-4101-8d45-274ad35ce7b8" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# x is date, y is count, name is the category\n", + "\n", + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Category of Activity on GitHub'\n", + "};\n", + "py.iplot({'data': workingCat, 'layout': layout}, filename='workingCategory')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "pw_HZUafU2KD" + }, + "source": [ + "### Pie Chart to show proportion of each working category" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 809, + "status": "ok", + "timestamp": 1527668817857, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "q7A_-qq8U1ZX", + "outputId": "29d7dfc5-311f-4927-b366-3b394b40b754" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" + ] + } + ], + "source": [ + "# workingPie = ['label': [all the cats], 'values': [respective values for each cat]]\n", + "workingPie = {'label': [], 'values': []}\n", + "\n", + "for cat in workingTime:\n", + " workingPie['label'].append(cat)\n", + " workingPie['values'].append(len(workingTime[cat].values()))\n", + " \n", + "print(workingPie)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4316, + "status": "ok", + "timestamp": 1527668822306, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "-7sC2RKjVqjN", + "outputId": "a2d291cd-f81e-46b8-f1bf-efeec63487a6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "workCatPie = go.Pie(labels=workingPie['label'], values=workingPie['values'])\n", + "\n", + "py.iplot([workCatPie], filename='WorkingCategoryPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "KozOOOay7oZk" + }, + "source": [ + "### Stacked barcharts to see each unique user contributing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "JIG0UKy17tjR" + }, + "source": [ + "### To see each unique user by day" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3808, + "status": "ok", + "timestamp": 1527668826182, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SSpt2CIXEgw8", + "outputId": "477973b9-4f49-401f-b5b3-7d6743f3fdd6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Unique User Activity'\n", + "};\n", + "py.iplot({'data': past14user, 'layout': layout}, filename='activepast14days')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "__1RxqkV7wlw" + }, + "source": [ + "### To see each unique user by week" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3566, + "status": "ok", + "timestamp": 1527668829836, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "aAD6xDu27nEN", + "outputId": "accbdbe4-6451-4cd5-edc4-e8218d14eaf9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Week'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Weekly User Activity'\n", + "};\n", + "py.iplot({'data': weeklystacked, 'layout': layout}, filename='weeklyactiveusers')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "fS3KVNcbiwly" + }, + "source": [ + "# 4. Putting Into Firebase" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "RyquX3cOnXxm" + }, + "source": [ + "### Link to firebase: https://amis-dashboard.firebaseio.com " + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4246, + "status": "ok", + "timestamp": 1527668834171, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "KDHEsdPcz7ZX", + "outputId": "0bbbd916-ebaa-48f3-d601-117a7f8fb1b7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", + "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" + ] + } + ], + "source": [ + "# Install the firebase library\n", + "\n", + "!pip install python-firebase" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ECHZXxiWOXDV" + }, + "outputs": [], + "source": [ + "from firebase import firebase\n", + "from firebase.firebase import FirebaseApplication\n", + "\n", + "yourFirebaseProjectId = 'amis-dashboard' \n", + "\n", + "# No authentication. You will need .write == true in your Firebase security rules. \n", + "# This should work after you change yourFirebaseProjectId above. \n", + "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "fO9Ld7JsOmKD" + }, + "outputs": [], + "source": [ + "# formatData function which takes data in the input data format in the form of a list of dictionaries with two keys x \n", + "# and y. It then converts it into the required format required by the charts CodeSandbox\n", + "\n", + "# Input data format [line,pie or bar charts]:\n", + "# -line: (x,y) - coordinates of points ordered in the list sequentially\n", + "# -bar: x - name of category, \n", + "# y - count of specific categories\n", + "# -pie: x - name of category\n", + "# y - count of specific category\n", + "#\n", + "# style = recharts or victory\n", + "# chartType = line, pie or bar\n", + "# title = title of chart\n", + "# yaxisLabel = y axis label of chart\n", + "# xaxisLabel = x axis label of chart\n", + "\n", + "# Note: Data edited and converted into a dictionary. Copied from jupyter notebook.\n", + "\n", + "def formatData(data,style,chartType,title,yaxisLabel,xaxisLabel):\n", + " ans = {}\n", + " ans['data']=list(data)\n", + " ans['style'] = style\n", + " ans['chartType'] = chartType\n", + " ans['title'] = title\n", + " ans['yaxisLabel'] = yaxisLabel\n", + " ans['xaxisLabel'] = xaxisLabel\n", + " \n", + " if style=='victory':\n", + " if chartType == 'line' or chartType =='pie' or chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return {}\n", + "\n", + " elif style=='recharts':\n", + " if chartType == 'line':\n", + " return ans\n", + " elif chartType == 'pie':\n", + " pieData = []\n", + " for d in data:\n", + " x = d['x']\n", + " y = d['y']\n", + " pieData.append({'name':x, 'value':y})\n", + " ans['data'] = pieData\n", + " return ans\n", + " elif chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return 'ERROR'" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 709, + "status": "ok", + "timestamp": 1527668836813, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "FGUejipLQJW6", + "outputId": "b7e59c8a-617d-458f-84a8-d895c9c47d4e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" + ] + } + ], + "source": [ + "# we need the data in the form of {{'x': xvalue, 'y': yvalue} , other pairs of xy values}\n", + "# e_types is the new dataset that we are going to use\n", + "\n", + "e_types = []\n", + "temp = {}\n", + "\n", + "for key in etypes.keys():\n", + " temp['x'] = key\n", + " temp['y'] = etypes[key]\n", + " e_types.append(temp)\n", + " temp = {}\n", + " \n", + "print(e_types)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lV7SreC7CwW4" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "default_view": {}, + "name": "Copy of ALSET GitHub Dashboard (without how to save local file)", + "provenance": [ + { + "file_id": "1CXafj_kN4V4r-YDBDQtNFxbDOVZ9JLde", + "timestamp": 1527053621420 + } + ], + "version": "0.3.2", + "views": {} + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From a4156de37aa72187f2d37c9cd95a79df0330fa00 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 00:38:10 +0100 Subject: [PATCH 23/98] amis github ethereum dashboard on Jupyter Notebook --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 403b2c1..4ef5479 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ ![Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/amisolution/ERC20-AMIS/master) From 5b25e9efb930da172fd677ccf7b21132fc313b3b Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 00:53:09 +0100 Subject: [PATCH 24/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ef5479..f5b4c9f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  -[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://github.com/amisolution/ERC20-AMIS/issues/) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) +[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](http://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official AmisEtherDelta](https://img.shields.io/badge/official-etherdelta-brightgreen.svg)](https://etherdelta.com/#0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 @@ -11,7 +11,7 @@  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) -![Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) +[!Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/amisolution/ERC20-AMIS/master) From 480cf9227890d311904436f548564bb64b64fdb3 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 11:46:14 +0100 Subject: [PATCH 25/98] Delete amis-github-ethereum-dashboard.ipynb --- amis-github-ethereum-dashboard.ipynb | 4524 -------------------------- 1 file changed, 4524 deletions(-) delete mode 100644 amis-github-ethereum-dashboard.ipynb diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb deleted file mode 100644 index 28dbc96..0000000 --- a/amis-github-ethereum-dashboard.ipynb +++ /dev/null @@ -1,4524 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "e90rkiawp8H8" - }, - "source": [ - "\n", - "\n", - "---\n", - "\n", - "# **Content of Notebook**\n", - "\n", - "1. Retrieving data from Github org (ethereum)\n", - "\n", - "2. Cleaning and formatting data\n", - "\n", - "3. Plotting charts using Plotly\n", - "\n", - "4. Putting into Firebase\n", - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "zi9sHxwROhLo" - }, - "source": [ - "# 1. Retrieving Data" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", - "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", - "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", - "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", - "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", - "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", - "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", - "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", - "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", - "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", - "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", - "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", - "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", - "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", - "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", - "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", - "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", - "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", - "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", - "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", - "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", - "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", - "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", - "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", - "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" - ] - } - ], - "source": [ - "!pip install pandas\n", - "!pip install sklearn\n", - "!pip install matplotlib\n", - "!pip install plotly" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 8636, - "status": "ok", - "timestamp": 1527668728606, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "M2sky6pYY9og", - "outputId": "8d13199f-8c16-4c33-a60e-9e9044546702" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" - ] - } - ], - "source": [ - "# source: https://stackoverflow.com/questions/12965203/how-to-get-json-from-webpage-into-python-script?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", - "\n", - "import urllib.request, json \n", - "\n", - "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", - "\n", - "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", - "# events = json.loads(url.read().decode())\n", - "# print(events)\n", - "\n", - " \n", - "# Getting data for all events\n", - "allevents = []\n", - "i = 1\n", - "while i<11:\n", - " with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=\" + str(i)) as url:\n", - " events = json.loads(url.read().decode())\n", - " allevents = allevents + events\n", - " i+=1\n", - " \n", - "print(allevents)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "zmVpMYBxOnrM" - }, - "source": [ - "# 2. Formatting Data" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 687, - "status": "ok", - "timestamp": 1527668734475, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "puJKUj-8eFJC", - "outputId": "8d717d5c-a770-4951-c22f-a78796897da2" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" - ] - } - ], - "source": [ - "edic = {}\n", - "\n", - "# for single page of logs\n", - "# j = 0\n", - "# for i in events:\n", - "# edic[j] = i\n", - "# j+=1\n", - " \n", - "# for all 10 pages of logs\n", - "j = 0\n", - "for i in allevents:\n", - " edic[j] = i\n", - " j+=1\n", - " \n", - "print(edic[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "lJxZKxdmEvwQ" - }, - "outputs": [], - "source": [ - "# https://developer.github.com/v3/activity/events/types/\n", - "# Payload is a unique object that differs based on its event type\n", - "\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 2952 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 732, - "status": "ok", - "timestamp": 1527668736229, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "4DCw4EiqE3vu", - "outputId": "cebb4b88-2c5c-4bf9-9ab2-46de875aa8cb" - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtypeactorrepopayloadpubliccreated_atorg
08751648709IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T23:05:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
18751636392PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
28751635242PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
38751612602PullRequestReviewCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:57:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
48751606764IssueCommentEvent{'id': 8655789, 'login': 'codecov-io', 'displa...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:55:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
58751592879IssueCommentEvent{'id': 8602661, 'login': 'jakerockland', 'disp...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:52:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
68751580082IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
78751579259IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
88751575653PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136135662, 'size': 1, 'distinct_s...True2018-12-13T22:48:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
98751554182IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:44:06Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
108751552656IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:43:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
118751546770PullRequestReviewCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:42:26Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
128751545833PullRequestEvent{'id': 6540608, 'login': 'kclowes', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1162, 'pull_req...True2018-12-13T22:42:15Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
138751544474PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136119495, 'size': 1, 'distinct_s...True2018-12-13T22:41:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
148751543759IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:41:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
158751531812PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136112801, 'size': 1, 'distinct_s...True2018-12-13T22:39:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
168751529594PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'opened', 'number': 22, 'pull_reque...True2018-12-13T22:38:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
178751524322CreateEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...True2018-12-13T22:37:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
188751495938PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136094228, 'size': 1, 'distinct_s...True2018-12-13T22:31:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
198751479824IssuesEvent{'id': 8933231, 'login': 'dylanjw', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'issue': {'url': 'https:/...True2018-12-13T22:28:08Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
208751479546PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:28:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
218751457988IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
228751457971IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
238751455096IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
248751455085IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
258751404945WatchEvent{'id': 453776, 'login': 'ur5us', 'display_logi...{'id': 29512034, 'name': 'ethereum/devp2p', 'u...{'action': 'started'}True2018-12-13T22:13:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
268751388340IssueCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:10:18Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
278751375542PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
288751373949PullRequestEvent{'id': 791437, 'login': 'davesque', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1160, 'pull_req...True2018-12-13T22:07:30Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
298751373741PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
...........................
2658749262323PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134949870, 'size': 1, 'distinct_s...True2018-12-13T15:59:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2668749248312IssueCommentEvent{'id': 20308948, 'login': 'zscole', 'display_l...{'id': 143768297, 'name': 'ethereum/eth2.0-pm'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:57:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2678749236050IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2688749231725IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2698749230140ForkEvent{'id': 45850645, 'login': 'Snetw', 'display_lo...{'id': 15452919, 'name': 'ethereum/go-ethereum...{'forkee': {'id': 161661585, 'node_id': 'MDEwO...True2018-12-13T15:55:10Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2708749205280IssueCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:51:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2718749204531PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134920063, 'size': 13, 'distinct_...True2018-12-13T15:51:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2728749198475IssueCommentEvent{'id': 85355, 'login': 'lookfirst', 'display_l...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:50:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2738749173576ForkEvent{'id': 45844784, 'login': 'gangnamtestnet', 'd...{'id': 30313032, 'name': 'ethereum/ethash', 'u...{'forkee': {'id': 161660600, 'node_id': 'MDEwO...True2018-12-13T15:47:11Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2748749171801PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134903228, 'size': 2, 'distinct_s...True2018-12-13T15:46:55Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2758749171067PullRequestEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'number': 5649, 'pull_req...True2018-12-13T15:46:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2768749170485IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:46:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2778749167495PullRequestReviewCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T15:46:19Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2788749161300IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:45:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2798749153672CreateEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...True2018-12-13T15:44:22Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2808749152469PushEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'push_id': 3134893359, 'size': 2, 'distinct_s...True2018-12-13T15:44:12Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2818749133571WatchEvent{'id': 34389409, 'login': 'ndc07', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'action': 'started'}True2018-12-13T15:41:28Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2828749130652PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'action': 'opened', 'number': 569, 'pull_requ...True2018-12-13T15:41:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2838749129431IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:54Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2848749128387IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2858749128034PushEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'push_id': 3134880769, 'size': 2, 'distinct_s...True2018-12-13T15:40:42Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2868749118552PushEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'push_id': 3134875732, 'size': 2, 'distinct_s...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2878749118494PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'closed', 'number': 11, 'pull_reque...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2888749114734PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'opened', 'number': 11, 'pull_reque...True2018-12-13T15:38:50Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2898749104997CreateEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...True2018-12-13T15:37:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2908749101507PushEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'push_id': 3134866869, 'size': 1, 'distinct_s...True2018-12-13T15:36:59Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2918749101342PullRequestEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'action': 'closed', 'number': 310, 'pull_requ...True2018-12-13T15:36:58Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2928749078704IssuesEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2938749078679IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2948749070596PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134850927, 'size': 1, 'distinct_s...True2018-12-13T15:32:33Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
\n", - "

295 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " id type \\\n", - "0 8751648709 IssueCommentEvent \n", - "1 8751636392 PullRequestReviewCommentEvent \n", - "2 8751635242 PullRequestReviewCommentEvent \n", - "3 8751612602 PullRequestReviewCommentEvent \n", - "4 8751606764 IssueCommentEvent \n", - "5 8751592879 IssueCommentEvent \n", - "6 8751580082 IssueCommentEvent \n", - "7 8751579259 IssueCommentEvent \n", - "8 8751575653 PushEvent \n", - "9 8751554182 IssueCommentEvent \n", - "10 8751552656 IssueCommentEvent \n", - "11 8751546770 PullRequestReviewCommentEvent \n", - "12 8751545833 PullRequestEvent \n", - "13 8751544474 PushEvent \n", - "14 8751543759 IssueCommentEvent \n", - "15 8751531812 PushEvent \n", - "16 8751529594 PullRequestEvent \n", - "17 8751524322 CreateEvent \n", - "18 8751495938 PushEvent \n", - "19 8751479824 IssuesEvent \n", - "20 8751479546 PullRequestReviewCommentEvent \n", - "21 8751457988 IssuesEvent \n", - "22 8751457971 IssueCommentEvent \n", - "23 8751455096 IssuesEvent \n", - "24 8751455085 IssueCommentEvent \n", - "25 8751404945 WatchEvent \n", - "26 8751388340 IssueCommentEvent \n", - "27 8751375542 PullRequestReviewCommentEvent \n", - "28 8751373949 PullRequestEvent \n", - "29 8751373741 PullRequestReviewCommentEvent \n", - ".. ... ... \n", - "265 8749262323 PushEvent \n", - "266 8749248312 IssueCommentEvent \n", - "267 8749236050 IssueCommentEvent \n", - "268 8749231725 IssueCommentEvent \n", - "269 8749230140 ForkEvent \n", - "270 8749205280 IssueCommentEvent \n", - "271 8749204531 PushEvent \n", - "272 8749198475 IssueCommentEvent \n", - "273 8749173576 ForkEvent \n", - "274 8749171801 PushEvent \n", - "275 8749171067 PullRequestEvent \n", - "276 8749170485 IssueCommentEvent \n", - "277 8749167495 PullRequestReviewCommentEvent \n", - "278 8749161300 IssueCommentEvent \n", - "279 8749153672 CreateEvent \n", - "280 8749152469 PushEvent \n", - "281 8749133571 WatchEvent \n", - "282 8749130652 PullRequestEvent \n", - "283 8749129431 IssueCommentEvent \n", - "284 8749128387 IssueCommentEvent \n", - "285 8749128034 PushEvent \n", - "286 8749118552 PushEvent \n", - "287 8749118494 PullRequestEvent \n", - "288 8749114734 PullRequestEvent \n", - "289 8749104997 CreateEvent \n", - "290 8749101507 PushEvent \n", - "291 8749101342 PullRequestEvent \n", - "292 8749078704 IssuesEvent \n", - "293 8749078679 IssueCommentEvent \n", - "294 8749070596 PushEvent \n", - "\n", - " actor \\\n", - "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", - "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", - "6 {'id': 205327, 'login': 'carver', 'display_log... \n", - "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "11 {'id': 205327, 'login': 'carver', 'display_log... \n", - "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", - "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", - "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "21 {'id': 205327, 'login': 'carver', 'display_log... \n", - "22 {'id': 205327, 'login': 'carver', 'display_log... \n", - "23 {'id': 205327, 'login': 'carver', 'display_log... \n", - "24 {'id': 205327, 'login': 'carver', 'display_log... \n", - "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", - "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", - "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - ".. ... \n", - "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", - "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", - "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", - "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", - "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", - "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "\n", - " repo \\\n", - "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", - "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - ".. ... \n", - "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", - "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", - "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "\n", - " payload public \\\n", - "0 {'action': 'created', 'issue': {'url': 'https:... True \n", - "1 {'action': 'created', 'comment': {'url': 'http... True \n", - "2 {'action': 'created', 'comment': {'url': 'http... True \n", - "3 {'action': 'created', 'comment': {'url': 'http... True \n", - "4 {'action': 'created', 'issue': {'url': 'https:... True \n", - "5 {'action': 'created', 'issue': {'url': 'https:... True \n", - "6 {'action': 'created', 'issue': {'url': 'https:... True \n", - "7 {'action': 'created', 'issue': {'url': 'https:... True \n", - "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", - "9 {'action': 'created', 'issue': {'url': 'https:... True \n", - "10 {'action': 'created', 'issue': {'url': 'https:... True \n", - "11 {'action': 'created', 'comment': {'url': 'http... True \n", - "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", - "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", - "14 {'action': 'created', 'issue': {'url': 'https:... True \n", - "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", - "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", - "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", - "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", - "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", - "20 {'action': 'created', 'comment': {'url': 'http... True \n", - "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "22 {'action': 'created', 'issue': {'url': 'https:... True \n", - "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "24 {'action': 'created', 'issue': {'url': 'https:... True \n", - "25 {'action': 'started'} True \n", - "26 {'action': 'created', 'issue': {'url': 'https:... True \n", - "27 {'action': 'created', 'comment': {'url': 'http... True \n", - "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", - "29 {'action': 'created', 'comment': {'url': 'http... True \n", - ".. ... ... \n", - "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", - "266 {'action': 'created', 'issue': {'url': 'https:... True \n", - "267 {'action': 'created', 'issue': {'url': 'https:... True \n", - "268 {'action': 'created', 'issue': {'url': 'https:... True \n", - "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", - "270 {'action': 'created', 'issue': {'url': 'https:... True \n", - "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", - "272 {'action': 'created', 'issue': {'url': 'https:... True \n", - "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", - "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", - "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", - "276 {'action': 'created', 'issue': {'url': 'https:... True \n", - "277 {'action': 'created', 'comment': {'url': 'http... True \n", - "278 {'action': 'created', 'issue': {'url': 'https:... True \n", - "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", - "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", - "281 {'action': 'started'} True \n", - "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", - "283 {'action': 'created', 'issue': {'url': 'https:... True \n", - "284 {'action': 'created', 'issue': {'url': 'https:... True \n", - "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", - "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", - "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", - "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", - "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", - "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", - "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", - "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "293 {'action': 'created', 'issue': {'url': 'https:... True \n", - "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", - "\n", - " created_at org \n", - "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - ".. ... ... \n", - "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "\n", - "[295 rows x 8 columns]" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.DataFrame.from_dict(edic, orient='index')\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "iYuOQffkif5g" - }, - "source": [ - "### Number of each types of event // PIECHART" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 608, - "status": "ok", - "timestamp": 1527668737059, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "llyqSEk9dNud", - "outputId": "1b8fb75f-6670-4335-e55d-b0e19f07b6b0" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" - ] - } - ], - "source": [ - "etypes = {}\n", - "for i in edic:\n", - " if edic[i]['type'] not in etypes.keys():\n", - " etypes[edic[i]['type']] = 1\n", - " else:\n", - " etypes[edic[i]['type']]+=1\n", - "print(etypes)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Z0KZVGt_q4XD" - }, - "source": [ - "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 887, - "status": "ok", - "timestamp": 1527668738108, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "oV5GK_4VjGz7", - "outputId": "8f72a626-5ff7-4b53-b5fd-4055a29d88af" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" - ] - } - ], - "source": [ - "users = {}\n", - "for i in edic:\n", - " if edic[i]['actor']['login'] not in users.keys():\n", - " users[edic[i]['actor']['login']] = 1\n", - " else:\n", - " users[edic[i]['actor']['login']] += 1\n", - "\n", - "print(users)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "AT89xW2DrQ5l" - }, - "source": [ - "### For the timeline chart // SCATTERPLOT" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "AFf6znSBjkLq" - }, - "outputs": [], - "source": [ - "# getting the time\n", - "\n", - "def get_date(dateString):\n", - " from dateutil.parser import parse\n", - " from datetime import datetime\n", - " theDate = parse(dateString)\n", - " #print(theDate)\n", - " \n", - " # Return a format that can be easily sorted. \n", - " return \"{:%Y-%m-%d}\".format(theDate)" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "mmy4B-Eh0ARo" - }, - "outputs": [], - "source": [ - "useract = {}\n", - "userlist = {}\n", - "for user in users.keys():\n", - " userlist[user] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1331, - "status": "ok", - "timestamp": 1527668741725, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "_QABrJl7rgwo", - "outputId": "324a0837-7963-4519-e989-f3b1ed36269c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" - ] - } - ], - "source": [ - "for i in edic:\n", - " time = get_date(edic[i]['created_at'])\n", - " if time in useract.keys():\n", - " useract[time][edic[i]['actor']['login']]+=1\n", - " else:\n", - " useract[time] = userlist.copy()\n", - " useract[time][edic[i]['actor']['login']]+=1\n", - "\n", - "print(useract)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "FWTX0y5KyTxW" - }, - "source": [ - "### All repos and number of activities related to each + most active repo // BARCHART" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1244, - "status": "ok", - "timestamp": 1527668744200, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Tns-gU6tyTFb", - "outputId": "75a1602b-ffa5-45d3-ea06-53115c4ff2d4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" - ] - } - ], - "source": [ - "repo = {}\n", - "for i in edic:\n", - " name = edic[i]['repo']['name'][10::]\n", - " if name not in repo.keys():\n", - " repo[name] = 1\n", - " else:\n", - " repo[name]+=1\n", - " \n", - "print(repo)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "it1N2K4eyNdM" - }, - "source": [ - "### Repo Activity // LINECHART" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "MpmHtjPQ0M8w" - }, - "outputs": [], - "source": [ - "repoact = {}\n", - "repos = {}\n", - "for r in repo.keys():\n", - " repos[r] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1222, - "status": "ok", - "timestamp": 1527668748252, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "8fcUs9hvvmCc", - "outputId": "624e0c09-db34-4662-fe32-528de5497710" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" - ] - } - ], - "source": [ - "for i in edic:\n", - " name = edic[i]['repo']['name'][10::]\n", - " time = get_date(edic[i]['created_at'])\n", - " if time in repoact.keys():\n", - " repoact[time][name]+=1\n", - " else:\n", - " repoact[time] = repos.copy()\n", - " repoact[time][name]+=1\n", - " \n", - "print(repoact)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "CXFkKZKg8Rp9" - }, - "source": [ - "### Plotting events in time period (Morning/Afternoon/Night) of each day" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "j_EjZ_AB8g6Q" - }, - "outputs": [], - "source": [ - "import time\n", - "def getHour(String):\n", - " ts = time.strptime(String[:19], \"%Y-%m-%dT%H:%M:%S\")\n", - " return int(time.strftime(\"%H\", ts))\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 769, - "status": "ok", - "timestamp": 1527668750876, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "epKc2kzS80Ir", - "outputId": "de29dd19-9240-4f3a-f25f-5cc941083b05" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "23" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "getHour(edic[0]['created_at'])" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "KUiaK41I8vFY" - }, - "outputs": [], - "source": [ - "def classifyTime(hour):\n", - " if hour >= 6 and hour <= 11:\n", - " return \"Early Bird\"\n", - " elif hour <= 17 and hour >= 12: # 17H is 5pm\n", - " return \"Midday\"\n", - " else:\n", - " return \"Night Owl\"" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 714, - "status": "ok", - "timestamp": 1527668754237, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Tacj2G2QAQnw", - "outputId": "aabd5c2a-e7a8-4ed1-b848-17ec973c7bb3" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Night Owl'" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classifyTime(getHour(edic[0]['created_at']))" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 712, - "status": "ok", - "timestamp": 1527668756478, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SKtwop5RG9AU", - "outputId": "8ca17014-427b-4cad-f120-c25b8cbcaf66" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" - ] - } - ], - "source": [ - "workingTime = {'Early Bird': {}, 'Midday': {}, 'Night Owl': {}}\n", - "\n", - "for number in edic:\n", - " t = getHour(edic[number]['created_at'])\n", - " date = get_date(edic[number]['created_at'])\n", - " if classifyTime(t) == 'Early Bird':\n", - " if date not in workingTime['Early Bird'].keys():\n", - " workingTime['Early Bird'][date] = 1\n", - " else:\n", - " workingTime['Early Bird'][date] += 1\n", - " elif classifyTime(t) == 'Midday':\n", - " if date not in workingTime['Midday'].keys():\n", - " workingTime['Midday'][date] = 1\n", - " else:\n", - " workingTime['Midday'][date] += 1\n", - " else:\n", - " if date not in workingTime['Night Owl'].keys():\n", - " workingTime['Night Owl'][date] = 1\n", - " else:\n", - " workingTime['Night Owl'][date] += 1\n", - " \n", - "print(workingTime)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "QBGD6XHPJV90" - }, - "source": [ - "### Finding number of unique users contributing by DAY" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 652, - "status": "ok", - "timestamp": 1527668757324, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SF6rfO9sK80k", - "outputId": "b9c86187-e2d7-4bd4-b105-ecbef3807354" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "alldaysuser = []\n", - "everyday_user={}\n", - "\n", - "for user in users.keys():\n", - " # use useract as i want data for every day\n", - " everyday_user['x'] = list(useract.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for date in useract.keys():\n", - " # if got activity, record as 1, else 0\n", - " if useract[date][user] > 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " everyday_user['y'] = curract\n", - " everyday_user['name'] = user\n", - " everyday_user['type'] = 'bar'\n", - " alldaysuser.append(everyday_user)\n", - " everyday_user={}\n", - " \n", - "print(alldaysuser)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 617, - "status": "ok", - "timestamp": 1527668758110, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3UMUyKTIJV99", - "outputId": "e481f7aa-b01e-4781-93a3-fa1d3a55a50b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': 72}\n" - ] - } - ], - "source": [ - "numActiveUser = {}\n", - "\n", - "for date in useract:\n", - " u = useract[date]\n", - " numActiveUser[date] = 0\n", - " for user in u:\n", - " if u[user] != 0:\n", - " numActiveUser[date] += 1\n", - "\n", - "print(numActiveUser)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "puwDnw_eJV-C" - }, - "source": [ - "### Sieving daily data for number of unique contributors to show only data for past 14 days" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 721, - "status": "ok", - "timestamp": 1527668758994, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3CwnWg44JV-G", - "outputId": "9bc19b14-e34b-42ae-a285-d690467cb161" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': 72}\n" - ] - } - ], - "source": [ - "# https://stackoverflow.com/questions/7971618/python-return-first-n-keyvalue-pairs-from-dict?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", - "# format for obtaining certain number of keys (sorted or random): \n", - "# first2pairs = {k: mydict[k] for k in sorted(mydict.keys())[:2]}\n", - "\n", - "############## FOR COUNT OF UNIQUE USERS #####################\n", - "\n", - "datafor14 = {k: numActiveUser[k] for k in sorted(numActiveUser.keys(), reverse=True)[:14]}\n", - "\n", - "print(datafor14)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 616, - "status": "ok", - "timestamp": 1527668759777, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "q5wcx-Rc3Yjr", - "outputId": "6950e09c-6038-4679-c293-491fe468b18a" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "# change useract into [{'x': dates, 'y':count, 'name': uid, 'type': bar}] FOR EACH USER\n", - "\n", - "############## TO SHOW EACH UNIQUE USER AND THEIR ACTIVITY (1 or 0) ########################\n", - "\n", - "past14user = []\n", - "a_user={}\n", - "\n", - "for user in users.keys():\n", - " # use datafor14 as i only want the past 14 days\n", - " a_user['x'] = list(datafor14.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for date in datafor14.keys():\n", - " # if got activity, record as 1, else 0\n", - " if useract[date][user] > 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " a_user['y'] = curract\n", - " a_user['name'] = user\n", - " a_user['type'] = 'bar'\n", - " past14user.append(a_user)\n", - " a_user={}\n", - " \n", - "print(past14user)\n", - "\n", - "# directly use past14user as data for stacked bar chart" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Q-brJ84NJV-O" - }, - "source": [ - "### Finding number of unique users contributing by WEEK (for whole dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 139 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 678, - "status": "ok", - "timestamp": 1527668760615, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "LU-ubfhoBNJq", - "outputId": "1aea3c21-5e2c-4cad-cb0d-b38d7cd65672" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "{'1 Week(s) Ago': 72}\n" - ] - } - ], - "source": [ - "########## FOR COUNT OF UNIQUE USERS ########################\n", - "\n", - "weekly = {}\n", - "numActiveCopy = useract.copy()\n", - "weekcounter = 1\n", - "usercounter = 0\n", - "uniqueactive = []\n", - "\n", - "while len(numActiveCopy) > 0:\n", - " if (len(numActiveCopy) < 7):\n", - " tempWeek = numActiveCopy\n", - " else:\n", - " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", - " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", - " print(len(numActiveCopy))\n", - " for day in tempWeek:\n", - " for user in tempWeek[day]:\n", - " if tempWeek[day][user] > 0:\n", - " if user not in uniqueactive:\n", - " uniqueactive.append(user)\n", - " weekly[str(weekcounter) + \" Week(s) Ago\"] = len(uniqueactive)\n", - " uniqueactive = []\n", - " weekcounter += 1\n", - "\n", - "print(weekly)" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 159 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 609, - "status": "ok", - "timestamp": 1527668761380, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3Hk6iQtTBStx", - "outputId": "b13c2d27-8aa1-4b16-92ca-ae5835c588c9" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", - "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" - ] - } - ], - "source": [ - "######### IN ORDER TO CHANGE FORMAT INTO STACKED BAR CHART TO IDENTIFY UNIQUE USERS #################\n", - "\n", - "weeklyunique = {}\n", - "numActiveCopy = useract.copy()\n", - "weekcounter = 1\n", - "uniqueactive = {}\n", - "\n", - "while len(numActiveCopy) > 0:\n", - " if (len(numActiveCopy) < 7):\n", - " tempWeek = numActiveCopy\n", - " else:\n", - " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", - " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", - " print(tempWeek)\n", - " for day in tempWeek:\n", - " for user in tempWeek[day]:\n", - " if tempWeek[day][user] > 0:\n", - " uniqueactive[user] = 1\n", - " else:\n", - " if user not in uniqueactive.keys():\n", - " uniqueactive[user] = 0\n", - " weeklyunique[str(weekcounter) + \" Week(s) Ago\"] = uniqueactive\n", - " uniqueactive = {}\n", - " weekcounter += 1\n", - "\n", - "print(weeklyunique)" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 785, - "status": "ok", - "timestamp": 1527668762337, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "NPhuQkBwFZ9h", - "outputId": "cead7cf6-3dd9-41ac-e9c5-8c4257253d6c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "############# CHANGING INTO FORMAT FOR STACKED BAR CHART FOR UNIQUE USERS #####################\n", - "\n", - "weeklystacked = []\n", - "w_user={}\n", - "\n", - "for user in users.keys():\n", - " # use datafor14 as i only want the past 14 days\n", - " w_user['x'] = list(weeklyunique.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for week in weeklyunique.keys():\n", - " # if got activity, record as 1, else 0\n", - " if weeklyunique[week][user] >= 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " w_user['y'] = curract\n", - " w_user['name'] = user\n", - " w_user['type'] = 'bar'\n", - " weeklystacked.append(w_user)\n", - " w_user={}\n", - " \n", - "print(weeklystacked)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "61aCZhAogY9F" - }, - "source": [ - "# 3. Plotting Charts with Plotly" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "BEvGQGfCQrz4" - }, - "outputs": [], - "source": [ - "import plotly.plotly as py\n", - "import plotly.graph_objs as go" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "zBgeBPCmgb_c" - }, - "outputs": [], - "source": [ - "# Credentials needed for plotly\n", - "\n", - "import plotly\n", - "plotly.tools.set_credentials_file(username='yanrong', api_key='17UtNl7m6jsSekZ1Rf4C')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "nD6jUdKpfYp5" - }, - "source": [ - "### Piechart for event types" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 555, - "status": "ok", - "timestamp": 1527668769127, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "F9wV1id2foE8", - "outputId": "401c8ccb-0b3f-43ef-9cb7-18419f74e5c4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" - ] - } - ], - "source": [ - "# Recall:\n", - "# e_types is a list of [{x: xvalue, y: yvalue}]\n", - "# etypes is a dict of {x: y}\n", - "labels = list(etypes.keys())\n", - "values = list(etypes.values())\n", - "\n", - "print(labels, values)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 583 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3931, - "status": "ok", - "timestamp": 1527668773212, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "4iGinWGvTFGb", - "outputId": "4d042e23-2ea9-4d78-df6c-5e5886caf265" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~yanrong/0 or inside your plot.ly account where it is named 'eventPie'\n" - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eventPie = go.Pie(labels=labels, values=values)\n", - "\n", - "py.iplot([eventPie], filename='eventPie')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "6XMmsR10h6po" - }, - "source": [ - "### Barchart for each contributor" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3944, - "status": "ok", - "timestamp": 1527668777275, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "TWRBjWZhf_Vr", - "outputId": "61cc7f10-22a8-41ed-d971-cb94ecf3d3d9" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "alluser = list(users.keys())\n", - "usercount = list(users.values())\n", - "user = [go.Bar(x = alluser, y=usercount)]\n", - "\n", - "py.iplot(user, filename='userBar')\n", - "#IPython.display.IFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "jdqVgUdzipME" - }, - "source": [ - "### User Activity by date (Grouped Bar chart)" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 805, - "status": "ok", - "timestamp": 1527668778110, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "UHyaIQfGknzf", - "outputId": "cd5cc956-8944-4fd4-8a8c-897bfba9bc95" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" - ] - } - ], - "source": [ - "# need to reformat useract into {user: [list of days active], ...}\n", - "uact = {}\n", - "\n", - "for user in users.keys(): # all the users\n", - " for time in useract:\n", - " if user in useract[time].keys():\n", - " if user not in uact.keys():\n", - " uact[user] = [time]\n", - " else:\n", - " uact[user].append(time)\n", - " \n", - "print(uact)" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 634, - "status": "ok", - "timestamp": 1527668779186, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "wqDBJK_kqe6u", - "outputId": "e57c9988-b817-46e0-d1ad-9648e7f666ab" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" - ] - } - ], - "source": [ - "useractivity = {}\n", - "\n", - "for user in users.keys():\n", - " useractivity[user] = {}\n", - " for time in useract:\n", - " useractivity[user][time] = useract[time][user]\n", - "\n", - "print(useractivity)" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 531, - "status": "ok", - "timestamp": 1527668779886, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "_qmSc4KurbIA", - "outputId": "7b40e686-40a9-476d-bbab-15398791b1de" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "# Putting into x and y for each user\n", - "\n", - "allUserBars = []\n", - "\n", - "for user in useractivity:\n", - " current = {'x': [], 'y': []}\n", - " current['x'] = list(useractivity[user].keys())\n", - " current['y'] = list(useractivity[user].values())\n", - " user = go.Scatter(x=current['x'], y=current['y'], name=user, mode='markers+lines')\n", - " allUserBars.append(user)\n", - "\n", - "print(allUserBars)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3701, - "status": "ok", - "timestamp": 1527668783763, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "ZZN-it6os2LH", - "outputId": "732e1f4a-072f-4f9f-f01c-b2c394264786" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group barcharts\n", - "# layout = go.Layout(barmode='group')\n", - "\n", - "# making user activity line chart instead\n", - "fig = go.Figure(data=allUserBars)\n", - "py.iplot(fig, filename='UserActivityBarChart')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "USXYLNwc0uuD" - }, - "source": [ - "### Repo Activity by date (Grouped bar chart)" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 914, - "status": "ok", - "timestamp": 1527668784747, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Kojb7D0t03hg", - "outputId": "2a82eb75-ab49-4eee-a8a4-442a47d605be" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" - ] - } - ], - "source": [ - "repoactivity = {}\n", - "\n", - "for r in repo.keys():\n", - " rAct = {}\n", - " for date in repoact.keys():\n", - " rAct[date] = repoact[date][r]\n", - " repoactivity[r] = rAct\n", - " \n", - "print(repoactivity)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 860, - "status": "ok", - "timestamp": 1527668785776, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "qbewgrDz13aR", - "outputId": "897b7203-2988-4ef7-cb4b-a3d4e09c5fd8" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "allRepoLines = []\n", - "\n", - "for r in repoactivity.keys():\n", - " # make dictionary of empty list to sort data into x and y\n", - " current = {'x': [], 'y':[]}\n", - " current['x'] = list(repoactivity[r].keys())\n", - " current['y'] = list(repoactivity[r].values())\n", - " rep = go.Scatter(x=current['x'], y=current['y'], name=r, mode='markers+lines')\n", - " allRepoLines.append(rep)\n", - " \n", - "print(allRepoLines)" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3731, - "status": "ok", - "timestamp": 1527668789785, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "je9_fWMo3UJw", - "outputId": "6c12181c-e5a1-4199-f634-5dec9028f9dc" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group linecharts\n", - "py.iplot(allRepoLines, filename='RepoActivityLines')" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 761, - "status": "ok", - "timestamp": 1527668790647, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "lqHeTbNP6RiM", - "outputId": "8ac39a6b-3d5a-456b-fdc4-12324fa4f4e7" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Bar({\n", - " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", - "}), Bar({\n", - " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", - "}), Bar({\n", - " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Bar({\n", - " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Bar({\n", - " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Bar({\n", - " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", - "}), Bar({\n", - " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Bar({\n", - " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", - "}), Bar({\n", - " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", - "}), Bar({\n", - " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", - "}), Bar({\n", - " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Bar({\n", - " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Bar({\n", - " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Bar({\n", - " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Bar({\n", - " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", - "}), Bar({\n", - " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Bar({\n", - " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Bar({\n", - " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "allRepoBars = []\n", - "\n", - "for r in repoactivity.keys():\n", - " # make dictionary of empty list to sort data into x and y\n", - " current = {'x': [], 'y':[]}\n", - " current['x'] = list(repoactivity[r].keys())\n", - " current['y'] = list(repoactivity[r].values())\n", - " rep = go.Bar(x=current['x'], y=current['y'], name=r)\n", - " allRepoBars.append(rep)\n", - " \n", - "print(allRepoBars)" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3644, - "status": "ok", - "timestamp": 1527668794857, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "xt9ZK1eC4C0g", - "outputId": "46ea2ab7-76c5-4022-c5df-f40d4f38baf3" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group barcharts\n", - "layout = go.Layout(barmode='group')\n", - "\n", - "# using repo activity line chart instead\n", - "fig = go.Figure(data=allRepoBars, layout=layout)\n", - "py.iplot(fig, filename='RepoActivityBarChart')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ifqxugZRONk9" - }, - "source": [ - "### Looking at types of Contribution per user" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 886, - "status": "ok", - "timestamp": 1527668795807, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "OTu68Zlj6D4E", - "outputId": "cd708e7a-f2aa-43b3-c72c-c44d53656a5d" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" - ] - } - ], - "source": [ - "userCont = {}\n", - "\n", - "for user in users.keys():\n", - " userCont[user] = {}\n", - " for i in edic:\n", - " repname = edic[i]['repo']['name'][10::]\n", - " if edic[i]['actor']['login'] == user:\n", - " if repname not in userCont[user].keys():\n", - " userCont[user][repname] = 1\n", - " else:\n", - " userCont[user][repname]+=1\n", - " #print(userCont[user])\n", - " \n", - "print(userCont)" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "ioZKlPOzH_N7" - }, - "outputs": [], - "source": [ - "import math" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "niqdz9h_pvyL" - }, - "outputs": [], - "source": [ - "userList = list(users.keys())" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 956, - "status": "ok", - "timestamp": 1527668799105, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "qgcRjWKMBq_8", - "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'fubuloubu',\n", - " 'values': [5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", - " 'name': 'pipermerriam',\n", - " 'values': [21, 1, 1, 3, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [leth],\n", - " 'name': 'halfalicious',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth],\n", - " 'name': 'codecov-io',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jakerockland',\n", - " 'values': [4]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", - " 'name': 'carver',\n", - " 'values': [4, 32, 1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'nivida',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'kclowes',\n", - " 'values': [6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist-shell],\n", - " 'name': 'evertonfraga',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth, ests],\n", - " 'name': 'winsvega',\n", - " 'values': [4, 5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'dylanjw',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'cburgdorf',\n", - " 'values': [8]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [evp2p],\n", - " 'name': 'ur5us',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'davesque',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Jeongjaegu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yethereum],\n", - " 'name': 'alexwanng',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'JustinDrake',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'kswizzlek',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-solc],\n", - " 'name': 'pryce-turner',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'humboo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'voermx',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'charles-cooper',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'sandakersmann',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'binary-adam',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'jpeletier',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'AlexeyAkhunov',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'veox',\n", - " 'values': [9]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'SabraAS',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, m],\n", - " 'name': 'hcaw',\n", - " 'values': [1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'caotic123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'zach-is-my-name',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'Arachnid',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'djrtwo',\n", - " 'values': [17]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ellowpaper],\n", - " 'name': 'EBGToo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Hilobrain',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Afzalshah38',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'nolash',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'eip-automerger',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'ifdefelse',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'perlmutterlabs',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'vngkv123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olc-js],\n", - " 'name': 'LogvinovLeon',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'stale[bot]',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'AnuragHydro',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'ryanio',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'jannikluhn',\n", - " 'values': [4, 2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity-test-bytecode, olidity],\n", - " 'name': 'chriseth',\n", - " 'values': [20, 25]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'CrystalEyes7',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'marcgarreau',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'riusricardo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ive],\n", - " 'name': 'FrankSzendzielarz',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'leonardoalt',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'hwwhww',\n", - " 'values': [1, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'rahulvickysingh008',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'rauljordan',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'christianparpart',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'gitcoinbot',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-ssz],\n", - " 'name': 'Bhargavasomu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'dilbydilby',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'haltman-at',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'SODAMFIA',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'timl206',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'terenc3t',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Snetw',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'arnetheduck',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jacqueswww',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'hamzaenaime',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'PhABC',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-pm],\n", - " 'name': 'zscole',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'lookfirst',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thash],\n", - " 'name': 'gangnamtestnet',\n", - " 'values': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "# converting userCont into format for multiple pie charts\n", - "\n", - "allUserConPies = []\n", - "numPies = len(users)\n", - "rootPie = math.ceil(math.sqrt(numPies)) # length of 2d matrix\n", - "counter = 0\n", - "\n", - "# we need a double for loop to obtain a 2d matrix of piecharts\n", - "for j in range(rootPie):\n", - " for i in range(rootPie):\n", - " current ={'labels': [], 'values': [], 'hoverinfo':'label+percent+name', 'name': '', 'domain': {'x':[], 'y':[]}, 'textinfo':''}\n", - " current['labels'] = list(userCont[userList[counter]].keys())\n", - " current['values'] = list(userCont[userList[counter]].values())\n", - " current['name'] = userList[counter]\n", - " current['domain'] = {'x': [i*(1/rootPie), (i+1)*(1/rootPie)-0.1], 'y':[j*1/rootPie, (j+1)*(1/rootPie)-0.1]}\n", - " current['textinfo'] = userList[counter]\n", - " uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'])\n", - "# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\n", - " allUserConPies.append(uCon)\n", - " counter+=1\n", - " if (counter >= len(userList)-1):\n", - " break\n", - " if(counter >= len(userList)-1):\n", - " break;\n", - " \n", - "print(allUserConPies)" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 13127, - "status": "ok", - "timestamp": 1527668812424, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "pg4HNsmA9_ww", - "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 101, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", - "\n", - "py.iplot(fig, filename='UserContributionTypesPies')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "hVAoYtABJ3N2" - }, - "source": [ - "### Looking at the time period in which Contributors are more active on GitHub" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 718, - "status": "ok", - "timestamp": 1527668813207, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "iBUVrFW8SylN", - "outputId": "b23075f1-c0c9-40ee-efc0-8fd115f1f2f3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "# reformatting workingTime into [{'x': dates, 'y': count, 'name': catName, 'type': bar}]\n", - "\n", - "workingCat = []\n", - "\n", - "for cat in workingTime:\n", - " c = {}\n", - " c['x'] = list(workingTime[cat].keys())\n", - " c['y'] = list(workingTime[cat].values())\n", - " c['name'] = cat\n", - " c['type'] = 'bar'\n", - " workingCat.append(c)\n", - " \n", - "print(workingCat)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "elOh4GdlUInJ" - }, - "source": [ - "### Stacked Bar chart to show proportion of activities in each category:\n", - "Early Bird: From 6am to before 12nn\n", - "\n", - "Midday: From 12nn to before 6pm\n", - "\n", - "Night Owl: Between 6pm and before 6am" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3654, - "status": "ok", - "timestamp": 1527668817025, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Jzdczz0XPu4s", - "outputId": "07abcfdd-e6b1-4101-8d45-274ad35ce7b8" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 103, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# x is date, y is count, name is the category\n", - "\n", - "layout = {\n", - " 'xaxis': {'title': 'Date'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Category of Activity on GitHub'\n", - "};\n", - "py.iplot({'data': workingCat, 'layout': layout}, filename='workingCategory')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "pw_HZUafU2KD" - }, - "source": [ - "### Pie Chart to show proportion of each working category" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 809, - "status": "ok", - "timestamp": 1527668817857, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "q7A_-qq8U1ZX", - "outputId": "29d7dfc5-311f-4927-b366-3b394b40b754" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" - ] - } - ], - "source": [ - "# workingPie = ['label': [all the cats], 'values': [respective values for each cat]]\n", - "workingPie = {'label': [], 'values': []}\n", - "\n", - "for cat in workingTime:\n", - " workingPie['label'].append(cat)\n", - " workingPie['values'].append(len(workingTime[cat].values()))\n", - " \n", - "print(workingPie)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 4316, - "status": "ok", - "timestamp": 1527668822306, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "-7sC2RKjVqjN", - "outputId": "a2d291cd-f81e-46b8-f1bf-efeec63487a6" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 105, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "workCatPie = go.Pie(labels=workingPie['label'], values=workingPie['values'])\n", - "\n", - "py.iplot([workCatPie], filename='WorkingCategoryPie')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "KozOOOay7oZk" - }, - "source": [ - "### Stacked barcharts to see each unique user contributing" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "JIG0UKy17tjR" - }, - "source": [ - "### To see each unique user by day" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3808, - "status": "ok", - "timestamp": 1527668826182, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SSpt2CIXEgw8", - "outputId": "477973b9-4f49-401f-b5b3-7d6743f3fdd6" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layout = {\n", - " 'xaxis': {'title': 'Date'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Unique User Activity'\n", - "};\n", - "py.iplot({'data': past14user, 'layout': layout}, filename='activepast14days')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "__1RxqkV7wlw" - }, - "source": [ - "### To see each unique user by week" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3566, - "status": "ok", - "timestamp": 1527668829836, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "aAD6xDu27nEN", - "outputId": "accbdbe4-6451-4cd5-edc4-e8218d14eaf9" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layout = {\n", - " 'xaxis': {'title': 'Week'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Weekly User Activity'\n", - "};\n", - "py.iplot({'data': weeklystacked, 'layout': layout}, filename='weeklyactiveusers')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "fS3KVNcbiwly" - }, - "source": [ - "# 4. Putting Into Firebase" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "RyquX3cOnXxm" - }, - "source": [ - "### Link to firebase: https://amis-dashboard.firebaseio.com " - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 248 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 4246, - "status": "ok", - "timestamp": 1527668834171, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "KDHEsdPcz7ZX", - "outputId": "0bbbd916-ebaa-48f3-d601-117a7f8fb1b7" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", - "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", - "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" - ] - } - ], - "source": [ - "# Install the firebase library\n", - "\n", - "!pip install python-firebase" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "ECHZXxiWOXDV" - }, - "outputs": [], - "source": [ - "from firebase import firebase\n", - "from firebase.firebase import FirebaseApplication\n", - "\n", - "yourFirebaseProjectId = 'amis-dashboard' \n", - "\n", - "# No authentication. You will need .write == true in your Firebase security rules. \n", - "# This should work after you change yourFirebaseProjectId above. \n", - "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "fO9Ld7JsOmKD" - }, - "outputs": [], - "source": [ - "# formatData function which takes data in the input data format in the form of a list of dictionaries with two keys x \n", - "# and y. It then converts it into the required format required by the charts CodeSandbox\n", - "\n", - "# Input data format [line,pie or bar charts]:\n", - "# -line: (x,y) - coordinates of points ordered in the list sequentially\n", - "# -bar: x - name of category, \n", - "# y - count of specific categories\n", - "# -pie: x - name of category\n", - "# y - count of specific category\n", - "#\n", - "# style = recharts or victory\n", - "# chartType = line, pie or bar\n", - "# title = title of chart\n", - "# yaxisLabel = y axis label of chart\n", - "# xaxisLabel = x axis label of chart\n", - "\n", - "# Note: Data edited and converted into a dictionary. Copied from jupyter notebook.\n", - "\n", - "def formatData(data,style,chartType,title,yaxisLabel,xaxisLabel):\n", - " ans = {}\n", - " ans['data']=list(data)\n", - " ans['style'] = style\n", - " ans['chartType'] = chartType\n", - " ans['title'] = title\n", - " ans['yaxisLabel'] = yaxisLabel\n", - " ans['xaxisLabel'] = xaxisLabel\n", - " \n", - " if style=='victory':\n", - " if chartType == 'line' or chartType =='pie' or chartType == 'bar':\n", - " return ans\n", - " else:\n", - " return {}\n", - "\n", - " elif style=='recharts':\n", - " if chartType == 'line':\n", - " return ans\n", - " elif chartType == 'pie':\n", - " pieData = []\n", - " for d in data:\n", - " x = d['x']\n", - " y = d['y']\n", - " pieData.append({'name':x, 'value':y})\n", - " ans['data'] = pieData\n", - " return ans\n", - " elif chartType == 'bar':\n", - " return ans\n", - " else:\n", - " return 'ERROR'" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 709, - "status": "ok", - "timestamp": 1527668836813, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "FGUejipLQJW6", - "outputId": "b7e59c8a-617d-458f-84a8-d895c9c47d4e" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" - ] - } - ], - "source": [ - "# we need the data in the form of {{'x': xvalue, 'y': yvalue} , other pairs of xy values}\n", - "# e_types is the new dataset that we are going to use\n", - "\n", - "e_types = []\n", - "temp = {}\n", - "\n", - "for key in etypes.keys():\n", - " temp['x'] = key\n", - " temp['y'] = etypes[key]\n", - " e_types.append(temp)\n", - " temp = {}\n", - " \n", - "print(e_types)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "lV7SreC7CwW4" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "default_view": {}, - "name": "Copy of ALSET GitHub Dashboard (without how to save local file)", - "provenance": [ - { - "file_id": "1CXafj_kN4V4r-YDBDQtNFxbDOVZ9JLde", - "timestamp": 1527053621420 - } - ], - "version": "0.3.2", - "views": {} - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.7" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} From fbc8c598595fb8272d61de83c1cbd30fa8796d7d Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 11:47:13 +0100 Subject: [PATCH 26/98] Add files via upload --- amis-github-ethereum-dashboard.ipynb | 4524 ++++++++++++++++++++++++++ 1 file changed, 4524 insertions(+) create mode 100644 amis-github-ethereum-dashboard.ipynb diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb new file mode 100644 index 0000000..be265e0 --- /dev/null +++ b/amis-github-ethereum-dashboard.ipynb @@ -0,0 +1,4524 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "e90rkiawp8H8" + }, + "source": [ + "\n", + "\n", + "---\n", + "\n", + "# **Content of Notebook**\n", + "\n", + "1. Retrieving data from Github org (ethereum)\n", + "\n", + "2. Cleaning and formatting data\n", + "\n", + "3. Plotting charts using Plotly\n", + "\n", + "4. Putting into Firebase\n", + "\n", + "\n", + "---\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zi9sHxwROhLo" + }, + "source": [ + "# 1. Retrieving Data" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", + "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", + "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", + "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", + "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", + "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", + "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", + "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", + "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", + "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", + "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", + "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", + "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", + "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", + "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", + "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", + "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", + "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", + "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", + "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install sklearn\n", + "!pip install matplotlib\n", + "!pip install plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 8636, + "status": "ok", + "timestamp": 1527668728606, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "M2sky6pYY9og", + "outputId": "8d13199f-8c16-4c33-a60e-9e9044546702" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" + ] + } + ], + "source": [ + "# source: https://stackoverflow.com/questions/12965203/how-to-get-json-from-webpage-into-python-script?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "\n", + "import urllib.request, json \n", + "\n", + "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", + "\n", + "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", + "# events = json.loads(url.read().decode())\n", + "# print(events)\n", + "\n", + " \n", + "# Getting data for all events\n", + "allevents = []\n", + "i = 1\n", + "while i<11:\n", + " with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=\" + str(i)) as url:\n", + " events = json.loads(url.read().decode())\n", + " allevents = allevents + events\n", + " i+=1\n", + " \n", + "print(allevents)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zmVpMYBxOnrM" + }, + "source": [ + "# 2. Formatting Data" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 687, + "status": "ok", + "timestamp": 1527668734475, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "puJKUj-8eFJC", + "outputId": "8d717d5c-a770-4951-c22f-a78796897da2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" + ] + } + ], + "source": [ + "edic = {}\n", + "\n", + "# for single page of logs\n", + "# j = 0\n", + "# for i in events:\n", + "# edic[j] = i\n", + "# j+=1\n", + " \n", + "# for all 10 pages of logs\n", + "j = 0\n", + "for i in allevents:\n", + " edic[j] = i\n", + " j+=1\n", + " \n", + "print(edic[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lJxZKxdmEvwQ" + }, + "outputs": [], + "source": [ + "# https://developer.github.com/v3/activity/events/types/\n", + "# Payload is a unique object that differs based on its event type\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 2952 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 732, + "status": "ok", + "timestamp": 1527668736229, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "4DCw4EiqE3vu", + "outputId": "cebb4b88-2c5c-4bf9-9ab2-46de875aa8cb" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idtypeactorrepopayloadpubliccreated_atorg
08751648709IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T23:05:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
18751636392PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
28751635242PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
38751612602PullRequestReviewCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:57:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
48751606764IssueCommentEvent{'id': 8655789, 'login': 'codecov-io', 'displa...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:55:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
58751592879IssueCommentEvent{'id': 8602661, 'login': 'jakerockland', 'disp...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:52:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
68751580082IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
78751579259IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
88751575653PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136135662, 'size': 1, 'distinct_s...True2018-12-13T22:48:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
98751554182IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:44:06Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
108751552656IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:43:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
118751546770PullRequestReviewCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:42:26Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
128751545833PullRequestEvent{'id': 6540608, 'login': 'kclowes', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1162, 'pull_req...True2018-12-13T22:42:15Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
138751544474PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136119495, 'size': 1, 'distinct_s...True2018-12-13T22:41:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
148751543759IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:41:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
158751531812PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136112801, 'size': 1, 'distinct_s...True2018-12-13T22:39:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
168751529594PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'opened', 'number': 22, 'pull_reque...True2018-12-13T22:38:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
178751524322CreateEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...True2018-12-13T22:37:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
188751495938PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136094228, 'size': 1, 'distinct_s...True2018-12-13T22:31:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
198751479824IssuesEvent{'id': 8933231, 'login': 'dylanjw', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'issue': {'url': 'https:/...True2018-12-13T22:28:08Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
208751479546PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:28:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
218751457988IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
228751457971IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
238751455096IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
248751455085IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
258751404945WatchEvent{'id': 453776, 'login': 'ur5us', 'display_logi...{'id': 29512034, 'name': 'ethereum/devp2p', 'u...{'action': 'started'}True2018-12-13T22:13:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
268751388340IssueCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:10:18Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
278751375542PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
288751373949PullRequestEvent{'id': 791437, 'login': 'davesque', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1160, 'pull_req...True2018-12-13T22:07:30Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
298751373741PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
...........................
2658749262323PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134949870, 'size': 1, 'distinct_s...True2018-12-13T15:59:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2668749248312IssueCommentEvent{'id': 20308948, 'login': 'zscole', 'display_l...{'id': 143768297, 'name': 'ethereum/eth2.0-pm'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:57:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2678749236050IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2688749231725IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2698749230140ForkEvent{'id': 45850645, 'login': 'Snetw', 'display_lo...{'id': 15452919, 'name': 'ethereum/go-ethereum...{'forkee': {'id': 161661585, 'node_id': 'MDEwO...True2018-12-13T15:55:10Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2708749205280IssueCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:51:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2718749204531PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134920063, 'size': 13, 'distinct_...True2018-12-13T15:51:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2728749198475IssueCommentEvent{'id': 85355, 'login': 'lookfirst', 'display_l...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:50:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2738749173576ForkEvent{'id': 45844784, 'login': 'gangnamtestnet', 'd...{'id': 30313032, 'name': 'ethereum/ethash', 'u...{'forkee': {'id': 161660600, 'node_id': 'MDEwO...True2018-12-13T15:47:11Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2748749171801PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134903228, 'size': 2, 'distinct_s...True2018-12-13T15:46:55Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2758749171067PullRequestEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'number': 5649, 'pull_req...True2018-12-13T15:46:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2768749170485IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:46:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2778749167495PullRequestReviewCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T15:46:19Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2788749161300IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:45:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2798749153672CreateEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...True2018-12-13T15:44:22Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2808749152469PushEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'push_id': 3134893359, 'size': 2, 'distinct_s...True2018-12-13T15:44:12Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2818749133571WatchEvent{'id': 34389409, 'login': 'ndc07', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'action': 'started'}True2018-12-13T15:41:28Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2828749130652PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'action': 'opened', 'number': 569, 'pull_requ...True2018-12-13T15:41:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2838749129431IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:54Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2848749128387IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2858749128034PushEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'push_id': 3134880769, 'size': 2, 'distinct_s...True2018-12-13T15:40:42Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2868749118552PushEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'push_id': 3134875732, 'size': 2, 'distinct_s...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2878749118494PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'closed', 'number': 11, 'pull_reque...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2888749114734PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'opened', 'number': 11, 'pull_reque...True2018-12-13T15:38:50Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2898749104997CreateEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...True2018-12-13T15:37:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2908749101507PushEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'push_id': 3134866869, 'size': 1, 'distinct_s...True2018-12-13T15:36:59Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2918749101342PullRequestEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'action': 'closed', 'number': 310, 'pull_requ...True2018-12-13T15:36:58Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2928749078704IssuesEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2938749078679IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2948749070596PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134850927, 'size': 1, 'distinct_s...True2018-12-13T15:32:33Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
\n", + "

295 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " id type \\\n", + "0 8751648709 IssueCommentEvent \n", + "1 8751636392 PullRequestReviewCommentEvent \n", + "2 8751635242 PullRequestReviewCommentEvent \n", + "3 8751612602 PullRequestReviewCommentEvent \n", + "4 8751606764 IssueCommentEvent \n", + "5 8751592879 IssueCommentEvent \n", + "6 8751580082 IssueCommentEvent \n", + "7 8751579259 IssueCommentEvent \n", + "8 8751575653 PushEvent \n", + "9 8751554182 IssueCommentEvent \n", + "10 8751552656 IssueCommentEvent \n", + "11 8751546770 PullRequestReviewCommentEvent \n", + "12 8751545833 PullRequestEvent \n", + "13 8751544474 PushEvent \n", + "14 8751543759 IssueCommentEvent \n", + "15 8751531812 PushEvent \n", + "16 8751529594 PullRequestEvent \n", + "17 8751524322 CreateEvent \n", + "18 8751495938 PushEvent \n", + "19 8751479824 IssuesEvent \n", + "20 8751479546 PullRequestReviewCommentEvent \n", + "21 8751457988 IssuesEvent \n", + "22 8751457971 IssueCommentEvent \n", + "23 8751455096 IssuesEvent \n", + "24 8751455085 IssueCommentEvent \n", + "25 8751404945 WatchEvent \n", + "26 8751388340 IssueCommentEvent \n", + "27 8751375542 PullRequestReviewCommentEvent \n", + "28 8751373949 PullRequestEvent \n", + "29 8751373741 PullRequestReviewCommentEvent \n", + ".. ... ... \n", + "265 8749262323 PushEvent \n", + "266 8749248312 IssueCommentEvent \n", + "267 8749236050 IssueCommentEvent \n", + "268 8749231725 IssueCommentEvent \n", + "269 8749230140 ForkEvent \n", + "270 8749205280 IssueCommentEvent \n", + "271 8749204531 PushEvent \n", + "272 8749198475 IssueCommentEvent \n", + "273 8749173576 ForkEvent \n", + "274 8749171801 PushEvent \n", + "275 8749171067 PullRequestEvent \n", + "276 8749170485 IssueCommentEvent \n", + "277 8749167495 PullRequestReviewCommentEvent \n", + "278 8749161300 IssueCommentEvent \n", + "279 8749153672 CreateEvent \n", + "280 8749152469 PushEvent \n", + "281 8749133571 WatchEvent \n", + "282 8749130652 PullRequestEvent \n", + "283 8749129431 IssueCommentEvent \n", + "284 8749128387 IssueCommentEvent \n", + "285 8749128034 PushEvent \n", + "286 8749118552 PushEvent \n", + "287 8749118494 PullRequestEvent \n", + "288 8749114734 PullRequestEvent \n", + "289 8749104997 CreateEvent \n", + "290 8749101507 PushEvent \n", + "291 8749101342 PullRequestEvent \n", + "292 8749078704 IssuesEvent \n", + "293 8749078679 IssueCommentEvent \n", + "294 8749070596 PushEvent \n", + "\n", + " actor \\\n", + "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", + "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", + "6 {'id': 205327, 'login': 'carver', 'display_log... \n", + "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "11 {'id': 205327, 'login': 'carver', 'display_log... \n", + "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", + "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", + "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "21 {'id': 205327, 'login': 'carver', 'display_log... \n", + "22 {'id': 205327, 'login': 'carver', 'display_log... \n", + "23 {'id': 205327, 'login': 'carver', 'display_log... \n", + "24 {'id': 205327, 'login': 'carver', 'display_log... \n", + "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", + "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", + "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + ".. ... \n", + "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", + "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", + "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", + "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", + "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", + "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "\n", + " repo \\\n", + "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", + "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + ".. ... \n", + "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", + "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", + "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "\n", + " payload public \\\n", + "0 {'action': 'created', 'issue': {'url': 'https:... True \n", + "1 {'action': 'created', 'comment': {'url': 'http... True \n", + "2 {'action': 'created', 'comment': {'url': 'http... True \n", + "3 {'action': 'created', 'comment': {'url': 'http... True \n", + "4 {'action': 'created', 'issue': {'url': 'https:... True \n", + "5 {'action': 'created', 'issue': {'url': 'https:... True \n", + "6 {'action': 'created', 'issue': {'url': 'https:... True \n", + "7 {'action': 'created', 'issue': {'url': 'https:... True \n", + "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", + "9 {'action': 'created', 'issue': {'url': 'https:... True \n", + "10 {'action': 'created', 'issue': {'url': 'https:... True \n", + "11 {'action': 'created', 'comment': {'url': 'http... True \n", + "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", + "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", + "14 {'action': 'created', 'issue': {'url': 'https:... True \n", + "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", + "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", + "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", + "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", + "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "20 {'action': 'created', 'comment': {'url': 'http... True \n", + "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "22 {'action': 'created', 'issue': {'url': 'https:... True \n", + "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "24 {'action': 'created', 'issue': {'url': 'https:... True \n", + "25 {'action': 'started'} True \n", + "26 {'action': 'created', 'issue': {'url': 'https:... True \n", + "27 {'action': 'created', 'comment': {'url': 'http... True \n", + "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", + "29 {'action': 'created', 'comment': {'url': 'http... True \n", + ".. ... ... \n", + "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", + "266 {'action': 'created', 'issue': {'url': 'https:... True \n", + "267 {'action': 'created', 'issue': {'url': 'https:... True \n", + "268 {'action': 'created', 'issue': {'url': 'https:... True \n", + "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", + "270 {'action': 'created', 'issue': {'url': 'https:... True \n", + "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", + "272 {'action': 'created', 'issue': {'url': 'https:... True \n", + "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", + "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", + "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", + "276 {'action': 'created', 'issue': {'url': 'https:... True \n", + "277 {'action': 'created', 'comment': {'url': 'http... True \n", + "278 {'action': 'created', 'issue': {'url': 'https:... True \n", + "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", + "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", + "281 {'action': 'started'} True \n", + "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", + "283 {'action': 'created', 'issue': {'url': 'https:... True \n", + "284 {'action': 'created', 'issue': {'url': 'https:... True \n", + "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", + "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", + "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", + "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", + "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", + "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", + "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", + "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "293 {'action': 'created', 'issue': {'url': 'https:... True \n", + "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", + "\n", + " created_at org \n", + "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + ".. ... ... \n", + "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "\n", + "[295 rows x 8 columns]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame.from_dict(edic, orient='index')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "iYuOQffkif5g" + }, + "source": [ + "### Number of each types of event // PIECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 608, + "status": "ok", + "timestamp": 1527668737059, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "llyqSEk9dNud", + "outputId": "1b8fb75f-6670-4335-e55d-b0e19f07b6b0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" + ] + } + ], + "source": [ + "etypes = {}\n", + "for i in edic:\n", + " if edic[i]['type'] not in etypes.keys():\n", + " etypes[edic[i]['type']] = 1\n", + " else:\n", + " etypes[edic[i]['type']]+=1\n", + "print(etypes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Z0KZVGt_q4XD" + }, + "source": [ + "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 887, + "status": "ok", + "timestamp": 1527668738108, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "oV5GK_4VjGz7", + "outputId": "8f72a626-5ff7-4b53-b5fd-4055a29d88af" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" + ] + } + ], + "source": [ + "users = {}\n", + "for i in edic:\n", + " if edic[i]['actor']['login'] not in users.keys():\n", + " users[edic[i]['actor']['login']] = 1\n", + " else:\n", + " users[edic[i]['actor']['login']] += 1\n", + "\n", + "print(users)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "AT89xW2DrQ5l" + }, + "source": [ + "### For the timeline chart // SCATTERPLOT" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "AFf6znSBjkLq" + }, + "outputs": [], + "source": [ + "# getting the time\n", + "\n", + "def get_date(dateString):\n", + " from dateutil.parser import parse\n", + " from datetime import datetime\n", + " theDate = parse(dateString)\n", + " #print(theDate)\n", + " \n", + " # Return a format that can be easily sorted. \n", + " return \"{:%Y-%m-%d}\".format(theDate)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "mmy4B-Eh0ARo" + }, + "outputs": [], + "source": [ + "useract = {}\n", + "userlist = {}\n", + "for user in users.keys():\n", + " userlist[user] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1331, + "status": "ok", + "timestamp": 1527668741725, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "_QABrJl7rgwo", + "outputId": "324a0837-7963-4519-e989-f3b1ed36269c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in useract.keys():\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + " else:\n", + " useract[time] = userlist.copy()\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + "\n", + "print(useract)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "FWTX0y5KyTxW" + }, + "source": [ + "### All repos and number of activities related to each + most active repo // BARCHART" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1244, + "status": "ok", + "timestamp": 1527668744200, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Tns-gU6tyTFb", + "outputId": "75a1602b-ffa5-45d3-ea06-53115c4ff2d4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" + ] + } + ], + "source": [ + "repo = {}\n", + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " if name not in repo.keys():\n", + " repo[name] = 1\n", + " else:\n", + " repo[name]+=1\n", + " \n", + "print(repo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "it1N2K4eyNdM" + }, + "source": [ + "### Repo Activity // LINECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "MpmHtjPQ0M8w" + }, + "outputs": [], + "source": [ + "repoact = {}\n", + "repos = {}\n", + "for r in repo.keys():\n", + " repos[r] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1222, + "status": "ok", + "timestamp": 1527668748252, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "8fcUs9hvvmCc", + "outputId": "624e0c09-db34-4662-fe32-528de5497710" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in repoact.keys():\n", + " repoact[time][name]+=1\n", + " else:\n", + " repoact[time] = repos.copy()\n", + " repoact[time][name]+=1\n", + " \n", + "print(repoact)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "CXFkKZKg8Rp9" + }, + "source": [ + "### Plotting events in time period (Morning/Afternoon/Night) of each day" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "j_EjZ_AB8g6Q" + }, + "outputs": [], + "source": [ + "import time\n", + "def getHour(String):\n", + " ts = time.strptime(String[:19], \"%Y-%m-%dT%H:%M:%S\")\n", + " return int(time.strftime(\"%H\", ts))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 769, + "status": "ok", + "timestamp": 1527668750876, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "epKc2kzS80Ir", + "outputId": "de29dd19-9240-4f3a-f25f-5cc941083b05" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "getHour(edic[0]['created_at'])" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "KUiaK41I8vFY" + }, + "outputs": [], + "source": [ + "def classifyTime(hour):\n", + " if hour >= 6 and hour <= 11:\n", + " return \"Early Bird\"\n", + " elif hour <= 17 and hour >= 12: # 17H is 5pm\n", + " return \"Midday\"\n", + " else:\n", + " return \"Night Owl\"" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 714, + "status": "ok", + "timestamp": 1527668754237, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Tacj2G2QAQnw", + "outputId": "aabd5c2a-e7a8-4ed1-b848-17ec973c7bb3" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'Night Owl'" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classifyTime(getHour(edic[0]['created_at']))" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 712, + "status": "ok", + "timestamp": 1527668756478, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SKtwop5RG9AU", + "outputId": "8ca17014-427b-4cad-f120-c25b8cbcaf66" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" + ] + } + ], + "source": [ + "workingTime = {'Early Bird': {}, 'Midday': {}, 'Night Owl': {}}\n", + "\n", + "for number in edic:\n", + " t = getHour(edic[number]['created_at'])\n", + " date = get_date(edic[number]['created_at'])\n", + " if classifyTime(t) == 'Early Bird':\n", + " if date not in workingTime['Early Bird'].keys():\n", + " workingTime['Early Bird'][date] = 1\n", + " else:\n", + " workingTime['Early Bird'][date] += 1\n", + " elif classifyTime(t) == 'Midday':\n", + " if date not in workingTime['Midday'].keys():\n", + " workingTime['Midday'][date] = 1\n", + " else:\n", + " workingTime['Midday'][date] += 1\n", + " else:\n", + " if date not in workingTime['Night Owl'].keys():\n", + " workingTime['Night Owl'][date] = 1\n", + " else:\n", + " workingTime['Night Owl'][date] += 1\n", + " \n", + "print(workingTime)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "QBGD6XHPJV90" + }, + "source": [ + "### Finding number of unique users contributing by DAY" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 652, + "status": "ok", + "timestamp": 1527668757324, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SF6rfO9sK80k", + "outputId": "b9c86187-e2d7-4bd4-b105-ecbef3807354" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "alldaysuser = []\n", + "everyday_user={}\n", + "\n", + "for user in users.keys():\n", + " # use useract as i want data for every day\n", + " everyday_user['x'] = list(useract.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in useract.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " everyday_user['y'] = curract\n", + " everyday_user['name'] = user\n", + " everyday_user['type'] = 'bar'\n", + " alldaysuser.append(everyday_user)\n", + " everyday_user={}\n", + " \n", + "print(alldaysuser)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 617, + "status": "ok", + "timestamp": 1527668758110, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3UMUyKTIJV99", + "outputId": "e481f7aa-b01e-4781-93a3-fa1d3a55a50b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "numActiveUser = {}\n", + "\n", + "for date in useract:\n", + " u = useract[date]\n", + " numActiveUser[date] = 0\n", + " for user in u:\n", + " if u[user] != 0:\n", + " numActiveUser[date] += 1\n", + "\n", + "print(numActiveUser)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "puwDnw_eJV-C" + }, + "source": [ + "### Sieving daily data for number of unique contributors to show only data for past 14 days" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 721, + "status": "ok", + "timestamp": 1527668758994, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3CwnWg44JV-G", + "outputId": "9bc19b14-e34b-42ae-a285-d690467cb161" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "# https://stackoverflow.com/questions/7971618/python-return-first-n-keyvalue-pairs-from-dict?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "# format for obtaining certain number of keys (sorted or random): \n", + "# first2pairs = {k: mydict[k] for k in sorted(mydict.keys())[:2]}\n", + "\n", + "############## FOR COUNT OF UNIQUE USERS #####################\n", + "\n", + "datafor14 = {k: numActiveUser[k] for k in sorted(numActiveUser.keys(), reverse=True)[:14]}\n", + "\n", + "print(datafor14)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 616, + "status": "ok", + "timestamp": 1527668759777, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "q5wcx-Rc3Yjr", + "outputId": "6950e09c-6038-4679-c293-491fe468b18a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# change useract into [{'x': dates, 'y':count, 'name': uid, 'type': bar}] FOR EACH USER\n", + "\n", + "############## TO SHOW EACH UNIQUE USER AND THEIR ACTIVITY (1 or 0) ########################\n", + "\n", + "past14user = []\n", + "a_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " a_user['x'] = list(datafor14.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in datafor14.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " a_user['y'] = curract\n", + " a_user['name'] = user\n", + " a_user['type'] = 'bar'\n", + " past14user.append(a_user)\n", + " a_user={}\n", + " \n", + "print(past14user)\n", + "\n", + "# directly use past14user as data for stacked bar chart" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Q-brJ84NJV-O" + }, + "source": [ + "### Finding number of unique users contributing by WEEK (for whole dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 139 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1527668760615, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "LU-ubfhoBNJq", + "outputId": "1aea3c21-5e2c-4cad-cb0d-b38d7cd65672" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "{'1 Week(s) Ago': 72}\n" + ] + } + ], + "source": [ + "########## FOR COUNT OF UNIQUE USERS ########################\n", + "\n", + "weekly = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "usercounter = 0\n", + "uniqueactive = []\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(len(numActiveCopy))\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " if user not in uniqueactive:\n", + " uniqueactive.append(user)\n", + " weekly[str(weekcounter) + \" Week(s) Ago\"] = len(uniqueactive)\n", + " uniqueactive = []\n", + " weekcounter += 1\n", + "\n", + "print(weekly)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 159 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 609, + "status": "ok", + "timestamp": 1527668761380, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "3Hk6iQtTBStx", + "outputId": "b13c2d27-8aa1-4b16-92ca-ae5835c588c9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", + "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "######### IN ORDER TO CHANGE FORMAT INTO STACKED BAR CHART TO IDENTIFY UNIQUE USERS #################\n", + "\n", + "weeklyunique = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "uniqueactive = {}\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(tempWeek)\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " uniqueactive[user] = 1\n", + " else:\n", + " if user not in uniqueactive.keys():\n", + " uniqueactive[user] = 0\n", + " weeklyunique[str(weekcounter) + \" Week(s) Ago\"] = uniqueactive\n", + " uniqueactive = {}\n", + " weekcounter += 1\n", + "\n", + "print(weeklyunique)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 785, + "status": "ok", + "timestamp": 1527668762337, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "NPhuQkBwFZ9h", + "outputId": "cead7cf6-3dd9-41ac-e9c5-8c4257253d6c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "############# CHANGING INTO FORMAT FOR STACKED BAR CHART FOR UNIQUE USERS #####################\n", + "\n", + "weeklystacked = []\n", + "w_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " w_user['x'] = list(weeklyunique.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for week in weeklyunique.keys():\n", + " # if got activity, record as 1, else 0\n", + " if weeklyunique[week][user] >= 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " w_user['y'] = curract\n", + " w_user['name'] = user\n", + " w_user['type'] = 'bar'\n", + " weeklystacked.append(w_user)\n", + " w_user={}\n", + " \n", + "print(weeklystacked)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "61aCZhAogY9F" + }, + "source": [ + "# 3. Plotting Charts with Plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "BEvGQGfCQrz4" + }, + "outputs": [], + "source": [ + "import plotly.plotly as py\n", + "import plotly.graph_objs as go" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "zBgeBPCmgb_c" + }, + "outputs": [], + "source": [ + "# Credentials needed for plotly\n", + "\n", + "import plotly\n", + "plotly.tools.set_credentials_file(username='amisolution', api_key='B7QUo8AV6q3Vl7juBjgm')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "nD6jUdKpfYp5" + }, + "source": [ + "### Piechart for event types" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 555, + "status": "ok", + "timestamp": 1527668769127, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "F9wV1id2foE8", + "outputId": "401c8ccb-0b3f-43ef-9cb7-18419f74e5c4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" + ] + } + ], + "source": [ + "# Recall:\n", + "# e_types is a list of [{x: xvalue, y: yvalue}]\n", + "# etypes is a dict of {x: y}\n", + "labels = list(etypes.keys())\n", + "values = list(etypes.values())\n", + "\n", + "print(labels, values)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 583 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3931, + "status": "ok", + "timestamp": 1527668773212, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "4iGinWGvTFGb", + "outputId": "4d042e23-2ea9-4d78-df6c-5e5886caf265" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~yanrong/0 or inside your plot.ly account where it is named 'eventPie'\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eventPie = go.Pie(labels=labels, values=values)\n", + "\n", + "py.iplot([eventPie], filename='eventPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "6XMmsR10h6po" + }, + "source": [ + "### Barchart for each contributor" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3944, + "status": "ok", + "timestamp": 1527668777275, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "TWRBjWZhf_Vr", + "outputId": "61cc7f10-22a8-41ed-d971-cb94ecf3d3d9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alluser = list(users.keys())\n", + "usercount = list(users.values())\n", + "user = [go.Bar(x = alluser, y=usercount)]\n", + "\n", + "py.iplot(user, filename='userBar')\n", + "#IPython.display.IFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "jdqVgUdzipME" + }, + "source": [ + "### User Activity by date (Grouped Bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 805, + "status": "ok", + "timestamp": 1527668778110, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "UHyaIQfGknzf", + "outputId": "cd5cc956-8944-4fd4-8a8c-897bfba9bc95" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" + ] + } + ], + "source": [ + "# need to reformat useract into {user: [list of days active], ...}\n", + "uact = {}\n", + "\n", + "for user in users.keys(): # all the users\n", + " for time in useract:\n", + " if user in useract[time].keys():\n", + " if user not in uact.keys():\n", + " uact[user] = [time]\n", + " else:\n", + " uact[user].append(time)\n", + " \n", + "print(uact)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 634, + "status": "ok", + "timestamp": 1527668779186, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "wqDBJK_kqe6u", + "outputId": "e57c9988-b817-46e0-d1ad-9648e7f666ab" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "useractivity = {}\n", + "\n", + "for user in users.keys():\n", + " useractivity[user] = {}\n", + " for time in useract:\n", + " useractivity[user][time] = useract[time][user]\n", + "\n", + "print(useractivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 531, + "status": "ok", + "timestamp": 1527668779886, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "_qmSc4KurbIA", + "outputId": "7b40e686-40a9-476d-bbab-15398791b1de" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# Putting into x and y for each user\n", + "\n", + "allUserBars = []\n", + "\n", + "for user in useractivity:\n", + " current = {'x': [], 'y': []}\n", + " current['x'] = list(useractivity[user].keys())\n", + " current['y'] = list(useractivity[user].values())\n", + " user = go.Scatter(x=current['x'], y=current['y'], name=user, mode='markers+lines')\n", + " allUserBars.append(user)\n", + "\n", + "print(allUserBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3701, + "status": "ok", + "timestamp": 1527668783763, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "ZZN-it6os2LH", + "outputId": "732e1f4a-072f-4f9f-f01c-b2c394264786" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "# layout = go.Layout(barmode='group')\n", + "\n", + "# making user activity line chart instead\n", + "fig = go.Figure(data=allUserBars)\n", + "py.iplot(fig, filename='UserActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "USXYLNwc0uuD" + }, + "source": [ + "### Repo Activity by date (Grouped bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 914, + "status": "ok", + "timestamp": 1527668784747, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Kojb7D0t03hg", + "outputId": "2a82eb75-ab49-4eee-a8a4-442a47d605be" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "repoactivity = {}\n", + "\n", + "for r in repo.keys():\n", + " rAct = {}\n", + " for date in repoact.keys():\n", + " rAct[date] = repoact[date][r]\n", + " repoactivity[r] = rAct\n", + " \n", + "print(repoactivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 860, + "status": "ok", + "timestamp": 1527668785776, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "qbewgrDz13aR", + "outputId": "897b7203-2988-4ef7-cb4b-a3d4e09c5fd8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoLines = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Scatter(x=current['x'], y=current['y'], name=r, mode='markers+lines')\n", + " allRepoLines.append(rep)\n", + " \n", + "print(allRepoLines)" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3731, + "status": "ok", + "timestamp": 1527668789785, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "je9_fWMo3UJw", + "outputId": "6c12181c-e5a1-4199-f634-5dec9028f9dc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group linecharts\n", + "py.iplot(allRepoLines, filename='RepoActivityLines')" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 761, + "status": "ok", + "timestamp": 1527668790647, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "lqHeTbNP6RiM", + "outputId": "8ac39a6b-3d5a-456b-fdc4-12324fa4f4e7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Bar({\n", + " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Bar({\n", + " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Bar({\n", + " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Bar({\n", + " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Bar({\n", + " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Bar({\n", + " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Bar({\n", + " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Bar({\n", + " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Bar({\n", + " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Bar({\n", + " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Bar({\n", + " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Bar({\n", + " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoBars = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Bar(x=current['x'], y=current['y'], name=r)\n", + " allRepoBars.append(rep)\n", + " \n", + "print(allRepoBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3644, + "status": "ok", + "timestamp": 1527668794857, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "xt9ZK1eC4C0g", + "outputId": "46ea2ab7-76c5-4022-c5df-f40d4f38baf3" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "layout = go.Layout(barmode='group')\n", + "\n", + "# using repo activity line chart instead\n", + "fig = go.Figure(data=allRepoBars, layout=layout)\n", + "py.iplot(fig, filename='RepoActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "ifqxugZRONk9" + }, + "source": [ + "### Looking at types of Contribution per user" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 886, + "status": "ok", + "timestamp": 1527668795807, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "OTu68Zlj6D4E", + "outputId": "cd708e7a-f2aa-43b3-c72c-c44d53656a5d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" + ] + } + ], + "source": [ + "userCont = {}\n", + "\n", + "for user in users.keys():\n", + " userCont[user] = {}\n", + " for i in edic:\n", + " repname = edic[i]['repo']['name'][10::]\n", + " if edic[i]['actor']['login'] == user:\n", + " if repname not in userCont[user].keys():\n", + " userCont[user][repname] = 1\n", + " else:\n", + " userCont[user][repname]+=1\n", + " #print(userCont[user])\n", + " \n", + "print(userCont)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ioZKlPOzH_N7" + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "niqdz9h_pvyL" + }, + "outputs": [], + "source": [ + "userList = list(users.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 956, + "status": "ok", + "timestamp": 1527668799105, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "qgcRjWKMBq_8", + "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'fubuloubu',\n", + " 'values': [5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", + " 'name': 'pipermerriam',\n", + " 'values': [21, 1, 1, 3, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [leth],\n", + " 'name': 'halfalicious',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth],\n", + " 'name': 'codecov-io',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jakerockland',\n", + " 'values': [4]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", + " 'name': 'carver',\n", + " 'values': [4, 32, 1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'nivida',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'kclowes',\n", + " 'values': [6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist-shell],\n", + " 'name': 'evertonfraga',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth, ests],\n", + " 'name': 'winsvega',\n", + " 'values': [4, 5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'dylanjw',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'cburgdorf',\n", + " 'values': [8]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [evp2p],\n", + " 'name': 'ur5us',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'davesque',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Jeongjaegu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yethereum],\n", + " 'name': 'alexwanng',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'JustinDrake',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'kswizzlek',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-solc],\n", + " 'name': 'pryce-turner',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'humboo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'voermx',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'charles-cooper',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'sandakersmann',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'binary-adam',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'jpeletier',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'AlexeyAkhunov',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'veox',\n", + " 'values': [9]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'SabraAS',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, m],\n", + " 'name': 'hcaw',\n", + " 'values': [1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'caotic123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'zach-is-my-name',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'Arachnid',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'djrtwo',\n", + " 'values': [17]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ellowpaper],\n", + " 'name': 'EBGToo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Hilobrain',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Afzalshah38',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'nolash',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'eip-automerger',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'ifdefelse',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'perlmutterlabs',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'vngkv123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olc-js],\n", + " 'name': 'LogvinovLeon',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'stale[bot]',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'AnuragHydro',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'ryanio',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'jannikluhn',\n", + " 'values': [4, 2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity-test-bytecode, olidity],\n", + " 'name': 'chriseth',\n", + " 'values': [20, 25]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'CrystalEyes7',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'marcgarreau',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'riusricardo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ive],\n", + " 'name': 'FrankSzendzielarz',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'leonardoalt',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'hwwhww',\n", + " 'values': [1, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'rahulvickysingh008',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'rauljordan',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'christianparpart',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'gitcoinbot',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-ssz],\n", + " 'name': 'Bhargavasomu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'dilbydilby',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'haltman-at',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'SODAMFIA',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'timl206',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'terenc3t',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Snetw',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'arnetheduck',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jacqueswww',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'hamzaenaime',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'PhABC',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-pm],\n", + " 'name': 'zscole',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'lookfirst',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thash],\n", + " 'name': 'gangnamtestnet',\n", + " 'values': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# converting userCont into format for multiple pie charts\n", + "\n", + "allUserConPies = []\n", + "numPies = len(users)\n", + "rootPie = math.ceil(math.sqrt(numPies)) # length of 2d matrix\n", + "counter = 0\n", + "\n", + "# we need a double for loop to obtain a 2d matrix of piecharts\n", + "for j in range(rootPie):\n", + " for i in range(rootPie):\n", + " current ={'labels': [], 'values': [], 'hoverinfo':'label+percent+name', 'name': '', 'domain': {'x':[], 'y':[]}, 'textinfo':''}\n", + " current['labels'] = list(userCont[userList[counter]].keys())\n", + " current['values'] = list(userCont[userList[counter]].values())\n", + " current['name'] = userList[counter]\n", + " current['domain'] = {'x': [i*(1/rootPie), (i+1)*(1/rootPie)-0.1], 'y':[j*1/rootPie, (j+1)*(1/rootPie)-0.1]}\n", + " current['textinfo'] = userList[counter]\n", + " uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'])\n", + "# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\n", + " allUserConPies.append(uCon)\n", + " counter+=1\n", + " if (counter >= len(userList)-1):\n", + " break\n", + " if(counter >= len(userList)-1):\n", + " break;\n", + " \n", + "print(allUserConPies)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 13127, + "status": "ok", + "timestamp": 1527668812424, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "pg4HNsmA9_ww", + "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", + "\n", + "py.iplot(fig, filename='UserContributionTypesPies')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "hVAoYtABJ3N2" + }, + "source": [ + "### Looking at the time period in which Contributors are more active on GitHub" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 718, + "status": "ok", + "timestamp": 1527668813207, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "iBUVrFW8SylN", + "outputId": "b23075f1-c0c9-40ee-efc0-8fd115f1f2f3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# reformatting workingTime into [{'x': dates, 'y': count, 'name': catName, 'type': bar}]\n", + "\n", + "workingCat = []\n", + "\n", + "for cat in workingTime:\n", + " c = {}\n", + " c['x'] = list(workingTime[cat].keys())\n", + " c['y'] = list(workingTime[cat].values())\n", + " c['name'] = cat\n", + " c['type'] = 'bar'\n", + " workingCat.append(c)\n", + " \n", + "print(workingCat)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "elOh4GdlUInJ" + }, + "source": [ + "### Stacked Bar chart to show proportion of activities in each category:\n", + "Early Bird: From 6am to before 12nn\n", + "\n", + "Midday: From 12nn to before 6pm\n", + "\n", + "Night Owl: Between 6pm and before 6am" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3654, + "status": "ok", + "timestamp": 1527668817025, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "Jzdczz0XPu4s", + "outputId": "07abcfdd-e6b1-4101-8d45-274ad35ce7b8" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# x is date, y is count, name is the category\n", + "\n", + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Category of Activity on GitHub'\n", + "};\n", + "py.iplot({'data': workingCat, 'layout': layout}, filename='workingCategory')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "pw_HZUafU2KD" + }, + "source": [ + "### Pie Chart to show proportion of each working category" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 809, + "status": "ok", + "timestamp": 1527668817857, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "q7A_-qq8U1ZX", + "outputId": "29d7dfc5-311f-4927-b366-3b394b40b754" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" + ] + } + ], + "source": [ + "# workingPie = ['label': [all the cats], 'values': [respective values for each cat]]\n", + "workingPie = {'label': [], 'values': []}\n", + "\n", + "for cat in workingTime:\n", + " workingPie['label'].append(cat)\n", + " workingPie['values'].append(len(workingTime[cat].values()))\n", + " \n", + "print(workingPie)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4316, + "status": "ok", + "timestamp": 1527668822306, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "-7sC2RKjVqjN", + "outputId": "a2d291cd-f81e-46b8-f1bf-efeec63487a6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "workCatPie = go.Pie(labels=workingPie['label'], values=workingPie['values'])\n", + "\n", + "py.iplot([workCatPie], filename='WorkingCategoryPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "KozOOOay7oZk" + }, + "source": [ + "### Stacked barcharts to see each unique user contributing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "JIG0UKy17tjR" + }, + "source": [ + "### To see each unique user by day" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3808, + "status": "ok", + "timestamp": 1527668826182, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "SSpt2CIXEgw8", + "outputId": "477973b9-4f49-401f-b5b3-7d6743f3fdd6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Unique User Activity'\n", + "};\n", + "py.iplot({'data': past14user, 'layout': layout}, filename='activepast14days')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "__1RxqkV7wlw" + }, + "source": [ + "### To see each unique user by week" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3566, + "status": "ok", + "timestamp": 1527668829836, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "aAD6xDu27nEN", + "outputId": "accbdbe4-6451-4cd5-edc4-e8218d14eaf9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Week'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Weekly User Activity'\n", + "};\n", + "py.iplot({'data': weeklystacked, 'layout': layout}, filename='weeklyactiveusers')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "fS3KVNcbiwly" + }, + "source": [ + "# 4. Putting Into Firebase" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "RyquX3cOnXxm" + }, + "source": [ + "### Link to firebase: https://amis-dashboard.firebaseio.com " + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4246, + "status": "ok", + "timestamp": 1527668834171, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "KDHEsdPcz7ZX", + "outputId": "0bbbd916-ebaa-48f3-d601-117a7f8fb1b7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", + "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" + ] + } + ], + "source": [ + "# Install the firebase library\n", + "\n", + "!pip install python-firebase" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ECHZXxiWOXDV" + }, + "outputs": [], + "source": [ + "from firebase import firebase\n", + "from firebase.firebase import FirebaseApplication\n", + "\n", + "yourFirebaseProjectId = 'amis-dashboard' \n", + "\n", + "# No authentication. You will need .write == true in your Firebase security rules. \n", + "# This should work after you change yourFirebaseProjectId above. \n", + "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "fO9Ld7JsOmKD" + }, + "outputs": [], + "source": [ + "# formatData function which takes data in the input data format in the form of a list of dictionaries with two keys x \n", + "# and y. It then converts it into the required format required by the charts CodeSandbox\n", + "\n", + "# Input data format [line,pie or bar charts]:\n", + "# -line: (x,y) - coordinates of points ordered in the list sequentially\n", + "# -bar: x - name of category, \n", + "# y - count of specific categories\n", + "# -pie: x - name of category\n", + "# y - count of specific category\n", + "#\n", + "# style = recharts or victory\n", + "# chartType = line, pie or bar\n", + "# title = title of chart\n", + "# yaxisLabel = y axis label of chart\n", + "# xaxisLabel = x axis label of chart\n", + "\n", + "# Note: Data edited and converted into a dictionary. Copied from jupyter notebook.\n", + "\n", + "def formatData(data,style,chartType,title,yaxisLabel,xaxisLabel):\n", + " ans = {}\n", + " ans['data']=list(data)\n", + " ans['style'] = style\n", + " ans['chartType'] = chartType\n", + " ans['title'] = title\n", + " ans['yaxisLabel'] = yaxisLabel\n", + " ans['xaxisLabel'] = xaxisLabel\n", + " \n", + " if style=='victory':\n", + " if chartType == 'line' or chartType =='pie' or chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return {}\n", + "\n", + " elif style=='recharts':\n", + " if chartType == 'line':\n", + " return ans\n", + " elif chartType == 'pie':\n", + " pieData = []\n", + " for d in data:\n", + " x = d['x']\n", + " y = d['y']\n", + " pieData.append({'name':x, 'value':y})\n", + " ans['data'] = pieData\n", + " return ans\n", + " elif chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return 'ERROR'" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 709, + "status": "ok", + "timestamp": 1527668836813, + "user": { + "displayName": "Yan Rong Chng", + "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", + "userId": "110884509958516044647" + }, + "user_tz": -480 + }, + "id": "FGUejipLQJW6", + "outputId": "b7e59c8a-617d-458f-84a8-d895c9c47d4e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" + ] + } + ], + "source": [ + "# we need the data in the form of {{'x': xvalue, 'y': yvalue} , other pairs of xy values}\n", + "# e_types is the new dataset that we are going to use\n", + "\n", + "e_types = []\n", + "temp = {}\n", + "\n", + "for key in etypes.keys():\n", + " temp['x'] = key\n", + " temp['y'] = etypes[key]\n", + " e_types.append(temp)\n", + " temp = {}\n", + " \n", + "print(e_types)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lV7SreC7CwW4" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "default_view": {}, + "name": "Copy of ALSET GitHub Dashboard (without how to save local file)", + "provenance": [ + { + "file_id": "1CXafj_kN4V4r-YDBDQtNFxbDOVZ9JLde", + "timestamp": 1527053621420 + } + ], + "version": "0.3.2", + "views": {} + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From 9689511f2345cf64da7fdc1112c24726576cecb7 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 12:35:09 +0100 Subject: [PATCH 27/98] Delete amis-github-ethereum-dashboard.ipynb --- amis-github-ethereum-dashboard.ipynb | 4524 -------------------------- 1 file changed, 4524 deletions(-) delete mode 100644 amis-github-ethereum-dashboard.ipynb diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb deleted file mode 100644 index be265e0..0000000 --- a/amis-github-ethereum-dashboard.ipynb +++ /dev/null @@ -1,4524 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "e90rkiawp8H8" - }, - "source": [ - "\n", - "\n", - "---\n", - "\n", - "# **Content of Notebook**\n", - "\n", - "1. Retrieving data from Github org (ethereum)\n", - "\n", - "2. Cleaning and formatting data\n", - "\n", - "3. Plotting charts using Plotly\n", - "\n", - "4. Putting into Firebase\n", - "\n", - "\n", - "---\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "zi9sHxwROhLo" - }, - "source": [ - "# 1. Retrieving Data" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", - "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", - "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", - "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", - "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", - "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", - "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", - "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", - "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", - "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", - "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", - "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", - "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", - "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", - "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", - "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", - "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", - "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", - "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", - "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", - "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", - "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", - "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", - "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", - "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" - ] - } - ], - "source": [ - "!pip install pandas\n", - "!pip install sklearn\n", - "!pip install matplotlib\n", - "!pip install plotly" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 8636, - "status": "ok", - "timestamp": 1527668728606, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "M2sky6pYY9og", - "outputId": "8d13199f-8c16-4c33-a60e-9e9044546702" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" - ] - } - ], - "source": [ - "# source: https://stackoverflow.com/questions/12965203/how-to-get-json-from-webpage-into-python-script?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", - "\n", - "import urllib.request, json \n", - "\n", - "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", - "\n", - "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", - "# events = json.loads(url.read().decode())\n", - "# print(events)\n", - "\n", - " \n", - "# Getting data for all events\n", - "allevents = []\n", - "i = 1\n", - "while i<11:\n", - " with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=\" + str(i)) as url:\n", - " events = json.loads(url.read().decode())\n", - " allevents = allevents + events\n", - " i+=1\n", - " \n", - "print(allevents)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "zmVpMYBxOnrM" - }, - "source": [ - "# 2. Formatting Data" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 687, - "status": "ok", - "timestamp": 1527668734475, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "puJKUj-8eFJC", - "outputId": "8d717d5c-a770-4951-c22f-a78796897da2" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" - ] - } - ], - "source": [ - "edic = {}\n", - "\n", - "# for single page of logs\n", - "# j = 0\n", - "# for i in events:\n", - "# edic[j] = i\n", - "# j+=1\n", - " \n", - "# for all 10 pages of logs\n", - "j = 0\n", - "for i in allevents:\n", - " edic[j] = i\n", - " j+=1\n", - " \n", - "print(edic[0])" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "lJxZKxdmEvwQ" - }, - "outputs": [], - "source": [ - "# https://developer.github.com/v3/activity/events/types/\n", - "# Payload is a unique object that differs based on its event type\n", - "\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 2952 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 732, - "status": "ok", - "timestamp": 1527668736229, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "4DCw4EiqE3vu", - "outputId": "cebb4b88-2c5c-4bf9-9ab2-46de875aa8cb" - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idtypeactorrepopayloadpubliccreated_atorg
08751648709IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T23:05:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
18751636392PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
28751635242PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
38751612602PullRequestReviewCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:57:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
48751606764IssueCommentEvent{'id': 8655789, 'login': 'codecov-io', 'displa...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:55:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
58751592879IssueCommentEvent{'id': 8602661, 'login': 'jakerockland', 'disp...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:52:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
68751580082IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
78751579259IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
88751575653PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136135662, 'size': 1, 'distinct_s...True2018-12-13T22:48:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
98751554182IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:44:06Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
108751552656IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:43:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
118751546770PullRequestReviewCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:42:26Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
128751545833PullRequestEvent{'id': 6540608, 'login': 'kclowes', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1162, 'pull_req...True2018-12-13T22:42:15Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
138751544474PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136119495, 'size': 1, 'distinct_s...True2018-12-13T22:41:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
148751543759IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:41:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
158751531812PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136112801, 'size': 1, 'distinct_s...True2018-12-13T22:39:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
168751529594PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'opened', 'number': 22, 'pull_reque...True2018-12-13T22:38:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
178751524322CreateEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...True2018-12-13T22:37:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
188751495938PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136094228, 'size': 1, 'distinct_s...True2018-12-13T22:31:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
198751479824IssuesEvent{'id': 8933231, 'login': 'dylanjw', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'issue': {'url': 'https:/...True2018-12-13T22:28:08Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
208751479546PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:28:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
218751457988IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
228751457971IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
238751455096IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
248751455085IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
258751404945WatchEvent{'id': 453776, 'login': 'ur5us', 'display_logi...{'id': 29512034, 'name': 'ethereum/devp2p', 'u...{'action': 'started'}True2018-12-13T22:13:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
268751388340IssueCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:10:18Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
278751375542PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
288751373949PullRequestEvent{'id': 791437, 'login': 'davesque', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1160, 'pull_req...True2018-12-13T22:07:30Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
298751373741PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
...........................
2658749262323PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134949870, 'size': 1, 'distinct_s...True2018-12-13T15:59:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2668749248312IssueCommentEvent{'id': 20308948, 'login': 'zscole', 'display_l...{'id': 143768297, 'name': 'ethereum/eth2.0-pm'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:57:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2678749236050IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2688749231725IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2698749230140ForkEvent{'id': 45850645, 'login': 'Snetw', 'display_lo...{'id': 15452919, 'name': 'ethereum/go-ethereum...{'forkee': {'id': 161661585, 'node_id': 'MDEwO...True2018-12-13T15:55:10Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2708749205280IssueCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:51:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2718749204531PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134920063, 'size': 13, 'distinct_...True2018-12-13T15:51:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2728749198475IssueCommentEvent{'id': 85355, 'login': 'lookfirst', 'display_l...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:50:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2738749173576ForkEvent{'id': 45844784, 'login': 'gangnamtestnet', 'd...{'id': 30313032, 'name': 'ethereum/ethash', 'u...{'forkee': {'id': 161660600, 'node_id': 'MDEwO...True2018-12-13T15:47:11Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2748749171801PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134903228, 'size': 2, 'distinct_s...True2018-12-13T15:46:55Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2758749171067PullRequestEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'number': 5649, 'pull_req...True2018-12-13T15:46:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2768749170485IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:46:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2778749167495PullRequestReviewCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T15:46:19Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2788749161300IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:45:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2798749153672CreateEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...True2018-12-13T15:44:22Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2808749152469PushEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'push_id': 3134893359, 'size': 2, 'distinct_s...True2018-12-13T15:44:12Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2818749133571WatchEvent{'id': 34389409, 'login': 'ndc07', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'action': 'started'}True2018-12-13T15:41:28Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2828749130652PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'action': 'opened', 'number': 569, 'pull_requ...True2018-12-13T15:41:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2838749129431IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:54Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2848749128387IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2858749128034PushEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'push_id': 3134880769, 'size': 2, 'distinct_s...True2018-12-13T15:40:42Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2868749118552PushEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'push_id': 3134875732, 'size': 2, 'distinct_s...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2878749118494PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'closed', 'number': 11, 'pull_reque...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2888749114734PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'opened', 'number': 11, 'pull_reque...True2018-12-13T15:38:50Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2898749104997CreateEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...True2018-12-13T15:37:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2908749101507PushEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'push_id': 3134866869, 'size': 1, 'distinct_s...True2018-12-13T15:36:59Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2918749101342PullRequestEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'action': 'closed', 'number': 310, 'pull_requ...True2018-12-13T15:36:58Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2928749078704IssuesEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2938749078679IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2948749070596PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134850927, 'size': 1, 'distinct_s...True2018-12-13T15:32:33Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
\n", - "

295 rows × 8 columns

\n", - "
" - ], - "text/plain": [ - " id type \\\n", - "0 8751648709 IssueCommentEvent \n", - "1 8751636392 PullRequestReviewCommentEvent \n", - "2 8751635242 PullRequestReviewCommentEvent \n", - "3 8751612602 PullRequestReviewCommentEvent \n", - "4 8751606764 IssueCommentEvent \n", - "5 8751592879 IssueCommentEvent \n", - "6 8751580082 IssueCommentEvent \n", - "7 8751579259 IssueCommentEvent \n", - "8 8751575653 PushEvent \n", - "9 8751554182 IssueCommentEvent \n", - "10 8751552656 IssueCommentEvent \n", - "11 8751546770 PullRequestReviewCommentEvent \n", - "12 8751545833 PullRequestEvent \n", - "13 8751544474 PushEvent \n", - "14 8751543759 IssueCommentEvent \n", - "15 8751531812 PushEvent \n", - "16 8751529594 PullRequestEvent \n", - "17 8751524322 CreateEvent \n", - "18 8751495938 PushEvent \n", - "19 8751479824 IssuesEvent \n", - "20 8751479546 PullRequestReviewCommentEvent \n", - "21 8751457988 IssuesEvent \n", - "22 8751457971 IssueCommentEvent \n", - "23 8751455096 IssuesEvent \n", - "24 8751455085 IssueCommentEvent \n", - "25 8751404945 WatchEvent \n", - "26 8751388340 IssueCommentEvent \n", - "27 8751375542 PullRequestReviewCommentEvent \n", - "28 8751373949 PullRequestEvent \n", - "29 8751373741 PullRequestReviewCommentEvent \n", - ".. ... ... \n", - "265 8749262323 PushEvent \n", - "266 8749248312 IssueCommentEvent \n", - "267 8749236050 IssueCommentEvent \n", - "268 8749231725 IssueCommentEvent \n", - "269 8749230140 ForkEvent \n", - "270 8749205280 IssueCommentEvent \n", - "271 8749204531 PushEvent \n", - "272 8749198475 IssueCommentEvent \n", - "273 8749173576 ForkEvent \n", - "274 8749171801 PushEvent \n", - "275 8749171067 PullRequestEvent \n", - "276 8749170485 IssueCommentEvent \n", - "277 8749167495 PullRequestReviewCommentEvent \n", - "278 8749161300 IssueCommentEvent \n", - "279 8749153672 CreateEvent \n", - "280 8749152469 PushEvent \n", - "281 8749133571 WatchEvent \n", - "282 8749130652 PullRequestEvent \n", - "283 8749129431 IssueCommentEvent \n", - "284 8749128387 IssueCommentEvent \n", - "285 8749128034 PushEvent \n", - "286 8749118552 PushEvent \n", - "287 8749118494 PullRequestEvent \n", - "288 8749114734 PullRequestEvent \n", - "289 8749104997 CreateEvent \n", - "290 8749101507 PushEvent \n", - "291 8749101342 PullRequestEvent \n", - "292 8749078704 IssuesEvent \n", - "293 8749078679 IssueCommentEvent \n", - "294 8749070596 PushEvent \n", - "\n", - " actor \\\n", - "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", - "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", - "6 {'id': 205327, 'login': 'carver', 'display_log... \n", - "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "11 {'id': 205327, 'login': 'carver', 'display_log... \n", - "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", - "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", - "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "21 {'id': 205327, 'login': 'carver', 'display_log... \n", - "22 {'id': 205327, 'login': 'carver', 'display_log... \n", - "23 {'id': 205327, 'login': 'carver', 'display_log... \n", - "24 {'id': 205327, 'login': 'carver', 'display_log... \n", - "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", - "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", - "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - ".. ... \n", - "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", - "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", - "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", - "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", - "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", - "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "\n", - " repo \\\n", - "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", - "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - ".. ... \n", - "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", - "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", - "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "\n", - " payload public \\\n", - "0 {'action': 'created', 'issue': {'url': 'https:... True \n", - "1 {'action': 'created', 'comment': {'url': 'http... True \n", - "2 {'action': 'created', 'comment': {'url': 'http... True \n", - "3 {'action': 'created', 'comment': {'url': 'http... True \n", - "4 {'action': 'created', 'issue': {'url': 'https:... True \n", - "5 {'action': 'created', 'issue': {'url': 'https:... True \n", - "6 {'action': 'created', 'issue': {'url': 'https:... True \n", - "7 {'action': 'created', 'issue': {'url': 'https:... True \n", - "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", - "9 {'action': 'created', 'issue': {'url': 'https:... True \n", - "10 {'action': 'created', 'issue': {'url': 'https:... True \n", - "11 {'action': 'created', 'comment': {'url': 'http... True \n", - "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", - "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", - "14 {'action': 'created', 'issue': {'url': 'https:... True \n", - "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", - "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", - "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", - "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", - "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", - "20 {'action': 'created', 'comment': {'url': 'http... True \n", - "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "22 {'action': 'created', 'issue': {'url': 'https:... True \n", - "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "24 {'action': 'created', 'issue': {'url': 'https:... True \n", - "25 {'action': 'started'} True \n", - "26 {'action': 'created', 'issue': {'url': 'https:... True \n", - "27 {'action': 'created', 'comment': {'url': 'http... True \n", - "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", - "29 {'action': 'created', 'comment': {'url': 'http... True \n", - ".. ... ... \n", - "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", - "266 {'action': 'created', 'issue': {'url': 'https:... True \n", - "267 {'action': 'created', 'issue': {'url': 'https:... True \n", - "268 {'action': 'created', 'issue': {'url': 'https:... True \n", - "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", - "270 {'action': 'created', 'issue': {'url': 'https:... True \n", - "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", - "272 {'action': 'created', 'issue': {'url': 'https:... True \n", - "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", - "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", - "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", - "276 {'action': 'created', 'issue': {'url': 'https:... True \n", - "277 {'action': 'created', 'comment': {'url': 'http... True \n", - "278 {'action': 'created', 'issue': {'url': 'https:... True \n", - "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", - "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", - "281 {'action': 'started'} True \n", - "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", - "283 {'action': 'created', 'issue': {'url': 'https:... True \n", - "284 {'action': 'created', 'issue': {'url': 'https:... True \n", - "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", - "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", - "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", - "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", - "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", - "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", - "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", - "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "293 {'action': 'created', 'issue': {'url': 'https:... True \n", - "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", - "\n", - " created_at org \n", - "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - ".. ... ... \n", - "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "\n", - "[295 rows x 8 columns]" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.DataFrame.from_dict(edic, orient='index')\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "iYuOQffkif5g" - }, - "source": [ - "### Number of each types of event // PIECHART" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 608, - "status": "ok", - "timestamp": 1527668737059, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "llyqSEk9dNud", - "outputId": "1b8fb75f-6670-4335-e55d-b0e19f07b6b0" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" - ] - } - ], - "source": [ - "etypes = {}\n", - "for i in edic:\n", - " if edic[i]['type'] not in etypes.keys():\n", - " etypes[edic[i]['type']] = 1\n", - " else:\n", - " etypes[edic[i]['type']]+=1\n", - "print(etypes)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Z0KZVGt_q4XD" - }, - "source": [ - "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 887, - "status": "ok", - "timestamp": 1527668738108, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "oV5GK_4VjGz7", - "outputId": "8f72a626-5ff7-4b53-b5fd-4055a29d88af" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" - ] - } - ], - "source": [ - "users = {}\n", - "for i in edic:\n", - " if edic[i]['actor']['login'] not in users.keys():\n", - " users[edic[i]['actor']['login']] = 1\n", - " else:\n", - " users[edic[i]['actor']['login']] += 1\n", - "\n", - "print(users)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "AT89xW2DrQ5l" - }, - "source": [ - "### For the timeline chart // SCATTERPLOT" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "AFf6znSBjkLq" - }, - "outputs": [], - "source": [ - "# getting the time\n", - "\n", - "def get_date(dateString):\n", - " from dateutil.parser import parse\n", - " from datetime import datetime\n", - " theDate = parse(dateString)\n", - " #print(theDate)\n", - " \n", - " # Return a format that can be easily sorted. \n", - " return \"{:%Y-%m-%d}\".format(theDate)" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "mmy4B-Eh0ARo" - }, - "outputs": [], - "source": [ - "useract = {}\n", - "userlist = {}\n", - "for user in users.keys():\n", - " userlist[user] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1331, - "status": "ok", - "timestamp": 1527668741725, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "_QABrJl7rgwo", - "outputId": "324a0837-7963-4519-e989-f3b1ed36269c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" - ] - } - ], - "source": [ - "for i in edic:\n", - " time = get_date(edic[i]['created_at'])\n", - " if time in useract.keys():\n", - " useract[time][edic[i]['actor']['login']]+=1\n", - " else:\n", - " useract[time] = userlist.copy()\n", - " useract[time][edic[i]['actor']['login']]+=1\n", - "\n", - "print(useract)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "FWTX0y5KyTxW" - }, - "source": [ - "### All repos and number of activities related to each + most active repo // BARCHART" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1244, - "status": "ok", - "timestamp": 1527668744200, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Tns-gU6tyTFb", - "outputId": "75a1602b-ffa5-45d3-ea06-53115c4ff2d4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" - ] - } - ], - "source": [ - "repo = {}\n", - "for i in edic:\n", - " name = edic[i]['repo']['name'][10::]\n", - " if name not in repo.keys():\n", - " repo[name] = 1\n", - " else:\n", - " repo[name]+=1\n", - " \n", - "print(repo)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "it1N2K4eyNdM" - }, - "source": [ - "### Repo Activity // LINECHART" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "MpmHtjPQ0M8w" - }, - "outputs": [], - "source": [ - "repoact = {}\n", - "repos = {}\n", - "for r in repo.keys():\n", - " repos[r] = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 1222, - "status": "ok", - "timestamp": 1527668748252, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "8fcUs9hvvmCc", - "outputId": "624e0c09-db34-4662-fe32-528de5497710" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" - ] - } - ], - "source": [ - "for i in edic:\n", - " name = edic[i]['repo']['name'][10::]\n", - " time = get_date(edic[i]['created_at'])\n", - " if time in repoact.keys():\n", - " repoact[time][name]+=1\n", - " else:\n", - " repoact[time] = repos.copy()\n", - " repoact[time][name]+=1\n", - " \n", - "print(repoact)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "CXFkKZKg8Rp9" - }, - "source": [ - "### Plotting events in time period (Morning/Afternoon/Night) of each day" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "j_EjZ_AB8g6Q" - }, - "outputs": [], - "source": [ - "import time\n", - "def getHour(String):\n", - " ts = time.strptime(String[:19], \"%Y-%m-%dT%H:%M:%S\")\n", - " return int(time.strftime(\"%H\", ts))\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 769, - "status": "ok", - "timestamp": 1527668750876, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "epKc2kzS80Ir", - "outputId": "de29dd19-9240-4f3a-f25f-5cc941083b05" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "23" - ] - }, - "execution_count": 72, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "getHour(edic[0]['created_at'])" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "KUiaK41I8vFY" - }, - "outputs": [], - "source": [ - "def classifyTime(hour):\n", - " if hour >= 6 and hour <= 11:\n", - " return \"Early Bird\"\n", - " elif hour <= 17 and hour >= 12: # 17H is 5pm\n", - " return \"Midday\"\n", - " else:\n", - " return \"Night Owl\"" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 714, - "status": "ok", - "timestamp": 1527668754237, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Tacj2G2QAQnw", - "outputId": "aabd5c2a-e7a8-4ed1-b848-17ec973c7bb3" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'Night Owl'" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "classifyTime(getHour(edic[0]['created_at']))" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 712, - "status": "ok", - "timestamp": 1527668756478, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SKtwop5RG9AU", - "outputId": "8ca17014-427b-4cad-f120-c25b8cbcaf66" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" - ] - } - ], - "source": [ - "workingTime = {'Early Bird': {}, 'Midday': {}, 'Night Owl': {}}\n", - "\n", - "for number in edic:\n", - " t = getHour(edic[number]['created_at'])\n", - " date = get_date(edic[number]['created_at'])\n", - " if classifyTime(t) == 'Early Bird':\n", - " if date not in workingTime['Early Bird'].keys():\n", - " workingTime['Early Bird'][date] = 1\n", - " else:\n", - " workingTime['Early Bird'][date] += 1\n", - " elif classifyTime(t) == 'Midday':\n", - " if date not in workingTime['Midday'].keys():\n", - " workingTime['Midday'][date] = 1\n", - " else:\n", - " workingTime['Midday'][date] += 1\n", - " else:\n", - " if date not in workingTime['Night Owl'].keys():\n", - " workingTime['Night Owl'][date] = 1\n", - " else:\n", - " workingTime['Night Owl'][date] += 1\n", - " \n", - "print(workingTime)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "QBGD6XHPJV90" - }, - "source": [ - "### Finding number of unique users contributing by DAY" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 652, - "status": "ok", - "timestamp": 1527668757324, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SF6rfO9sK80k", - "outputId": "b9c86187-e2d7-4bd4-b105-ecbef3807354" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "alldaysuser = []\n", - "everyday_user={}\n", - "\n", - "for user in users.keys():\n", - " # use useract as i want data for every day\n", - " everyday_user['x'] = list(useract.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for date in useract.keys():\n", - " # if got activity, record as 1, else 0\n", - " if useract[date][user] > 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " everyday_user['y'] = curract\n", - " everyday_user['name'] = user\n", - " everyday_user['type'] = 'bar'\n", - " alldaysuser.append(everyday_user)\n", - " everyday_user={}\n", - " \n", - "print(alldaysuser)" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 617, - "status": "ok", - "timestamp": 1527668758110, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3UMUyKTIJV99", - "outputId": "e481f7aa-b01e-4781-93a3-fa1d3a55a50b" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': 72}\n" - ] - } - ], - "source": [ - "numActiveUser = {}\n", - "\n", - "for date in useract:\n", - " u = useract[date]\n", - " numActiveUser[date] = 0\n", - " for user in u:\n", - " if u[user] != 0:\n", - " numActiveUser[date] += 1\n", - "\n", - "print(numActiveUser)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "puwDnw_eJV-C" - }, - "source": [ - "### Sieving daily data for number of unique contributors to show only data for past 14 days" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 721, - "status": "ok", - "timestamp": 1527668758994, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3CwnWg44JV-G", - "outputId": "9bc19b14-e34b-42ae-a285-d690467cb161" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': 72}\n" - ] - } - ], - "source": [ - "# https://stackoverflow.com/questions/7971618/python-return-first-n-keyvalue-pairs-from-dict?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", - "# format for obtaining certain number of keys (sorted or random): \n", - "# first2pairs = {k: mydict[k] for k in sorted(mydict.keys())[:2]}\n", - "\n", - "############## FOR COUNT OF UNIQUE USERS #####################\n", - "\n", - "datafor14 = {k: numActiveUser[k] for k in sorted(numActiveUser.keys(), reverse=True)[:14]}\n", - "\n", - "print(datafor14)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 616, - "status": "ok", - "timestamp": 1527668759777, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "q5wcx-Rc3Yjr", - "outputId": "6950e09c-6038-4679-c293-491fe468b18a" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "# change useract into [{'x': dates, 'y':count, 'name': uid, 'type': bar}] FOR EACH USER\n", - "\n", - "############## TO SHOW EACH UNIQUE USER AND THEIR ACTIVITY (1 or 0) ########################\n", - "\n", - "past14user = []\n", - "a_user={}\n", - "\n", - "for user in users.keys():\n", - " # use datafor14 as i only want the past 14 days\n", - " a_user['x'] = list(datafor14.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for date in datafor14.keys():\n", - " # if got activity, record as 1, else 0\n", - " if useract[date][user] > 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " a_user['y'] = curract\n", - " a_user['name'] = user\n", - " a_user['type'] = 'bar'\n", - " past14user.append(a_user)\n", - " a_user={}\n", - " \n", - "print(past14user)\n", - "\n", - "# directly use past14user as data for stacked bar chart" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "Q-brJ84NJV-O" - }, - "source": [ - "### Finding number of unique users contributing by WEEK (for whole dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 139 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 678, - "status": "ok", - "timestamp": 1527668760615, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "LU-ubfhoBNJq", - "outputId": "1aea3c21-5e2c-4cad-cb0d-b38d7cd65672" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "{'1 Week(s) Ago': 72}\n" - ] - } - ], - "source": [ - "########## FOR COUNT OF UNIQUE USERS ########################\n", - "\n", - "weekly = {}\n", - "numActiveCopy = useract.copy()\n", - "weekcounter = 1\n", - "usercounter = 0\n", - "uniqueactive = []\n", - "\n", - "while len(numActiveCopy) > 0:\n", - " if (len(numActiveCopy) < 7):\n", - " tempWeek = numActiveCopy\n", - " else:\n", - " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", - " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", - " print(len(numActiveCopy))\n", - " for day in tempWeek:\n", - " for user in tempWeek[day]:\n", - " if tempWeek[day][user] > 0:\n", - " if user not in uniqueactive:\n", - " uniqueactive.append(user)\n", - " weekly[str(weekcounter) + \" Week(s) Ago\"] = len(uniqueactive)\n", - " uniqueactive = []\n", - " weekcounter += 1\n", - "\n", - "print(weekly)" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 159 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 609, - "status": "ok", - "timestamp": 1527668761380, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "3Hk6iQtTBStx", - "outputId": "b13c2d27-8aa1-4b16-92ca-ae5835c588c9" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", - "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" - ] - } - ], - "source": [ - "######### IN ORDER TO CHANGE FORMAT INTO STACKED BAR CHART TO IDENTIFY UNIQUE USERS #################\n", - "\n", - "weeklyunique = {}\n", - "numActiveCopy = useract.copy()\n", - "weekcounter = 1\n", - "uniqueactive = {}\n", - "\n", - "while len(numActiveCopy) > 0:\n", - " if (len(numActiveCopy) < 7):\n", - " tempWeek = numActiveCopy\n", - " else:\n", - " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", - " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", - " print(tempWeek)\n", - " for day in tempWeek:\n", - " for user in tempWeek[day]:\n", - " if tempWeek[day][user] > 0:\n", - " uniqueactive[user] = 1\n", - " else:\n", - " if user not in uniqueactive.keys():\n", - " uniqueactive[user] = 0\n", - " weeklyunique[str(weekcounter) + \" Week(s) Ago\"] = uniqueactive\n", - " uniqueactive = {}\n", - " weekcounter += 1\n", - "\n", - "print(weeklyunique)" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 785, - "status": "ok", - "timestamp": 1527668762337, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "NPhuQkBwFZ9h", - "outputId": "cead7cf6-3dd9-41ac-e9c5-8c4257253d6c" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "############# CHANGING INTO FORMAT FOR STACKED BAR CHART FOR UNIQUE USERS #####################\n", - "\n", - "weeklystacked = []\n", - "w_user={}\n", - "\n", - "for user in users.keys():\n", - " # use datafor14 as i only want the past 14 days\n", - " w_user['x'] = list(weeklyunique.keys())\n", - " # finding the amount of activity of this particular user\n", - " curract = []\n", - " for week in weeklyunique.keys():\n", - " # if got activity, record as 1, else 0\n", - " if weeklyunique[week][user] >= 1:\n", - " curract.append(1)\n", - " else:\n", - " curract.append(0)\n", - " w_user['y'] = curract\n", - " w_user['name'] = user\n", - " w_user['type'] = 'bar'\n", - " weeklystacked.append(w_user)\n", - " w_user={}\n", - " \n", - "print(weeklystacked)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "61aCZhAogY9F" - }, - "source": [ - "# 3. Plotting Charts with Plotly" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "BEvGQGfCQrz4" - }, - "outputs": [], - "source": [ - "import plotly.plotly as py\n", - "import plotly.graph_objs as go" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "zBgeBPCmgb_c" - }, - "outputs": [], - "source": [ - "# Credentials needed for plotly\n", - "\n", - "import plotly\n", - "plotly.tools.set_credentials_file(username='amisolution', api_key='B7QUo8AV6q3Vl7juBjgm')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "nD6jUdKpfYp5" - }, - "source": [ - "### Piechart for event types" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 555, - "status": "ok", - "timestamp": 1527668769127, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "F9wV1id2foE8", - "outputId": "401c8ccb-0b3f-43ef-9cb7-18419f74e5c4" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" - ] - } - ], - "source": [ - "# Recall:\n", - "# e_types is a list of [{x: xvalue, y: yvalue}]\n", - "# etypes is a dict of {x: y}\n", - "labels = list(etypes.keys())\n", - "values = list(etypes.values())\n", - "\n", - "print(labels, values)" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 583 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3931, - "status": "ok", - "timestamp": 1527668773212, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "4iGinWGvTFGb", - "outputId": "4d042e23-2ea9-4d78-df6c-5e5886caf265" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~yanrong/0 or inside your plot.ly account where it is named 'eventPie'\n" - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "eventPie = go.Pie(labels=labels, values=values)\n", - "\n", - "py.iplot([eventPie], filename='eventPie')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "6XMmsR10h6po" - }, - "source": [ - "### Barchart for each contributor" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3944, - "status": "ok", - "timestamp": 1527668777275, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "TWRBjWZhf_Vr", - "outputId": "61cc7f10-22a8-41ed-d971-cb94ecf3d3d9" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 87, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "alluser = list(users.keys())\n", - "usercount = list(users.values())\n", - "user = [go.Bar(x = alluser, y=usercount)]\n", - "\n", - "py.iplot(user, filename='userBar')\n", - "#IPython.display.IFrame" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "jdqVgUdzipME" - }, - "source": [ - "### User Activity by date (Grouped Bar chart)" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 805, - "status": "ok", - "timestamp": 1527668778110, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "UHyaIQfGknzf", - "outputId": "cd5cc956-8944-4fd4-8a8c-897bfba9bc95" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" - ] - } - ], - "source": [ - "# need to reformat useract into {user: [list of days active], ...}\n", - "uact = {}\n", - "\n", - "for user in users.keys(): # all the users\n", - " for time in useract:\n", - " if user in useract[time].keys():\n", - " if user not in uact.keys():\n", - " uact[user] = [time]\n", - " else:\n", - " uact[user].append(time)\n", - " \n", - "print(uact)" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 634, - "status": "ok", - "timestamp": 1527668779186, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "wqDBJK_kqe6u", - "outputId": "e57c9988-b817-46e0-d1ad-9648e7f666ab" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" - ] - } - ], - "source": [ - "useractivity = {}\n", - "\n", - "for user in users.keys():\n", - " useractivity[user] = {}\n", - " for time in useract:\n", - " useractivity[user][time] = useract[time][user]\n", - "\n", - "print(useractivity)" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 531, - "status": "ok", - "timestamp": 1527668779886, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "_qmSc4KurbIA", - "outputId": "7b40e686-40a9-476d-bbab-15398791b1de" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "# Putting into x and y for each user\n", - "\n", - "allUserBars = []\n", - "\n", - "for user in useractivity:\n", - " current = {'x': [], 'y': []}\n", - " current['x'] = list(useractivity[user].keys())\n", - " current['y'] = list(useractivity[user].values())\n", - " user = go.Scatter(x=current['x'], y=current['y'], name=user, mode='markers+lines')\n", - " allUserBars.append(user)\n", - "\n", - "print(allUserBars)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3701, - "status": "ok", - "timestamp": 1527668783763, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "ZZN-it6os2LH", - "outputId": "732e1f4a-072f-4f9f-f01c-b2c394264786" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group barcharts\n", - "# layout = go.Layout(barmode='group')\n", - "\n", - "# making user activity line chart instead\n", - "fig = go.Figure(data=allUserBars)\n", - "py.iplot(fig, filename='UserActivityBarChart')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "USXYLNwc0uuD" - }, - "source": [ - "### Repo Activity by date (Grouped bar chart)" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 914, - "status": "ok", - "timestamp": 1527668784747, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Kojb7D0t03hg", - "outputId": "2a82eb75-ab49-4eee-a8a4-442a47d605be" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" - ] - } - ], - "source": [ - "repoactivity = {}\n", - "\n", - "for r in repo.keys():\n", - " rAct = {}\n", - " for date in repoact.keys():\n", - " rAct[date] = repoact[date][r]\n", - " repoactivity[r] = rAct\n", - " \n", - "print(repoactivity)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 860, - "status": "ok", - "timestamp": 1527668785776, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "qbewgrDz13aR", - "outputId": "897b7203-2988-4ef7-cb4b-a3d4e09c5fd8" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "allRepoLines = []\n", - "\n", - "for r in repoactivity.keys():\n", - " # make dictionary of empty list to sort data into x and y\n", - " current = {'x': [], 'y':[]}\n", - " current['x'] = list(repoactivity[r].keys())\n", - " current['y'] = list(repoactivity[r].values())\n", - " rep = go.Scatter(x=current['x'], y=current['y'], name=r, mode='markers+lines')\n", - " allRepoLines.append(rep)\n", - " \n", - "print(allRepoLines)" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3731, - "status": "ok", - "timestamp": 1527668789785, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "je9_fWMo3UJw", - "outputId": "6c12181c-e5a1-4199-f634-5dec9028f9dc" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group linecharts\n", - "py.iplot(allRepoLines, filename='RepoActivityLines')" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 761, - "status": "ok", - "timestamp": 1527668790647, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "lqHeTbNP6RiM", - "outputId": "8ac39a6b-3d5a-456b-fdc4-12324fa4f4e7" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Bar({\n", - " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", - "}), Bar({\n", - " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", - "}), Bar({\n", - " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Bar({\n", - " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Bar({\n", - " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Bar({\n", - " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", - "}), Bar({\n", - " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", - "}), Bar({\n", - " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", - "}), Bar({\n", - " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", - "}), Bar({\n", - " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", - "}), Bar({\n", - " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", - "}), Bar({\n", - " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", - "}), Bar({\n", - " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", - "}), Bar({\n", - " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", - "}), Bar({\n", - " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", - "}), Bar({\n", - " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", - "}), Bar({\n", - " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", - "}), Bar({\n", - " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", - "}), Bar({\n", - " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", - "}), Bar({\n", - " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "allRepoBars = []\n", - "\n", - "for r in repoactivity.keys():\n", - " # make dictionary of empty list to sort data into x and y\n", - " current = {'x': [], 'y':[]}\n", - " current['x'] = list(repoactivity[r].keys())\n", - " current['y'] = list(repoactivity[r].values())\n", - " rep = go.Bar(x=current['x'], y=current['y'], name=r)\n", - " allRepoBars.append(rep)\n", - " \n", - "print(allRepoBars)" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3644, - "status": "ok", - "timestamp": 1527668794857, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "xt9ZK1eC4C0g", - "outputId": "46ea2ab7-76c5-4022-c5df-f40d4f38baf3" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# plotting the group barcharts\n", - "layout = go.Layout(barmode='group')\n", - "\n", - "# using repo activity line chart instead\n", - "fig = go.Figure(data=allRepoBars, layout=layout)\n", - "py.iplot(fig, filename='RepoActivityBarChart')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "ifqxugZRONk9" - }, - "source": [ - "### Looking at types of Contribution per user" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 886, - "status": "ok", - "timestamp": 1527668795807, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "OTu68Zlj6D4E", - "outputId": "cd708e7a-f2aa-43b3-c72c-c44d53656a5d" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" - ] - } - ], - "source": [ - "userCont = {}\n", - "\n", - "for user in users.keys():\n", - " userCont[user] = {}\n", - " for i in edic:\n", - " repname = edic[i]['repo']['name'][10::]\n", - " if edic[i]['actor']['login'] == user:\n", - " if repname not in userCont[user].keys():\n", - " userCont[user][repname] = 1\n", - " else:\n", - " userCont[user][repname]+=1\n", - " #print(userCont[user])\n", - " \n", - "print(userCont)" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "ioZKlPOzH_N7" - }, - "outputs": [], - "source": [ - "import math" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "niqdz9h_pvyL" - }, - "outputs": [], - "source": [ - "userList = list(users.keys())" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 956, - "status": "ok", - "timestamp": 1527668799105, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "qgcRjWKMBq_8", - "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'fubuloubu',\n", - " 'values': [5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", - " 'name': 'pipermerriam',\n", - " 'values': [21, 1, 1, 3, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [leth],\n", - " 'name': 'halfalicious',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth],\n", - " 'name': 'codecov-io',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jakerockland',\n", - " 'values': [4]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", - " 'name': 'carver',\n", - " 'values': [4, 32, 1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'nivida',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'kclowes',\n", - " 'values': [6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist-shell],\n", - " 'name': 'evertonfraga',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth, ests],\n", - " 'name': 'winsvega',\n", - " 'values': [4, 5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'dylanjw',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'cburgdorf',\n", - " 'values': [8]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [evp2p],\n", - " 'name': 'ur5us',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'davesque',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Jeongjaegu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yethereum],\n", - " 'name': 'alexwanng',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'JustinDrake',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'kswizzlek',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-solc],\n", - " 'name': 'pryce-turner',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'humboo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'voermx',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'charles-cooper',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'sandakersmann',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'binary-adam',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'jpeletier',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'AlexeyAkhunov',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'veox',\n", - " 'values': [9]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'SabraAS',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, m],\n", - " 'name': 'hcaw',\n", - " 'values': [1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'caotic123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'zach-is-my-name',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'Arachnid',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'djrtwo',\n", - " 'values': [17]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ellowpaper],\n", - " 'name': 'EBGToo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Hilobrain',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Afzalshah38',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'nolash',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'eip-automerger',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'ifdefelse',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'perlmutterlabs',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'vngkv123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olc-js],\n", - " 'name': 'LogvinovLeon',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'stale[bot]',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'AnuragHydro',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'ryanio',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'jannikluhn',\n", - " 'values': [4, 2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity-test-bytecode, olidity],\n", - " 'name': 'chriseth',\n", - " 'values': [20, 25]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'CrystalEyes7',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'marcgarreau',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'riusricardo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ive],\n", - " 'name': 'FrankSzendzielarz',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'leonardoalt',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'hwwhww',\n", - " 'values': [1, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'rahulvickysingh008',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'rauljordan',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'christianparpart',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'gitcoinbot',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-ssz],\n", - " 'name': 'Bhargavasomu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'dilbydilby',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'haltman-at',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'SODAMFIA',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'timl206',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'terenc3t',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Snetw',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'arnetheduck',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jacqueswww',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'hamzaenaime',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'PhABC',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-pm],\n", - " 'name': 'zscole',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'lookfirst',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thash],\n", - " 'name': 'gangnamtestnet',\n", - " 'values': [1]\n", - "})]\n" - ] - } - ], - "source": [ - "# converting userCont into format for multiple pie charts\n", - "\n", - "allUserConPies = []\n", - "numPies = len(users)\n", - "rootPie = math.ceil(math.sqrt(numPies)) # length of 2d matrix\n", - "counter = 0\n", - "\n", - "# we need a double for loop to obtain a 2d matrix of piecharts\n", - "for j in range(rootPie):\n", - " for i in range(rootPie):\n", - " current ={'labels': [], 'values': [], 'hoverinfo':'label+percent+name', 'name': '', 'domain': {'x':[], 'y':[]}, 'textinfo':''}\n", - " current['labels'] = list(userCont[userList[counter]].keys())\n", - " current['values'] = list(userCont[userList[counter]].values())\n", - " current['name'] = userList[counter]\n", - " current['domain'] = {'x': [i*(1/rootPie), (i+1)*(1/rootPie)-0.1], 'y':[j*1/rootPie, (j+1)*(1/rootPie)-0.1]}\n", - " current['textinfo'] = userList[counter]\n", - " uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'])\n", - "# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\n", - " allUserConPies.append(uCon)\n", - " counter+=1\n", - " if (counter >= len(userList)-1):\n", - " break\n", - " if(counter >= len(userList)-1):\n", - " break;\n", - " \n", - "print(allUserConPies)" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 13127, - "status": "ok", - "timestamp": 1527668812424, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "pg4HNsmA9_ww", - "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 101, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", - "\n", - "py.iplot(fig, filename='UserContributionTypesPies')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "hVAoYtABJ3N2" - }, - "source": [ - "### Looking at the time period in which Contributors are more active on GitHub" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 718, - "status": "ok", - "timestamp": 1527668813207, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "iBUVrFW8SylN", - "outputId": "b23075f1-c0c9-40ee-efc0-8fd115f1f2f3" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" - ] - } - ], - "source": [ - "# reformatting workingTime into [{'x': dates, 'y': count, 'name': catName, 'type': bar}]\n", - "\n", - "workingCat = []\n", - "\n", - "for cat in workingTime:\n", - " c = {}\n", - " c['x'] = list(workingTime[cat].keys())\n", - " c['y'] = list(workingTime[cat].values())\n", - " c['name'] = cat\n", - " c['type'] = 'bar'\n", - " workingCat.append(c)\n", - " \n", - "print(workingCat)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "elOh4GdlUInJ" - }, - "source": [ - "### Stacked Bar chart to show proportion of activities in each category:\n", - "Early Bird: From 6am to before 12nn\n", - "\n", - "Midday: From 12nn to before 6pm\n", - "\n", - "Night Owl: Between 6pm and before 6am" - ] - }, - { - "cell_type": "code", - "execution_count": 103, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3654, - "status": "ok", - "timestamp": 1527668817025, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "Jzdczz0XPu4s", - "outputId": "07abcfdd-e6b1-4101-8d45-274ad35ce7b8" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 103, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# x is date, y is count, name is the category\n", - "\n", - "layout = {\n", - " 'xaxis': {'title': 'Date'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Category of Activity on GitHub'\n", - "};\n", - "py.iplot({'data': workingCat, 'layout': layout}, filename='workingCategory')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "pw_HZUafU2KD" - }, - "source": [ - "### Pie Chart to show proportion of each working category" - ] - }, - { - "cell_type": "code", - "execution_count": 104, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 35 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 809, - "status": "ok", - "timestamp": 1527668817857, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "q7A_-qq8U1ZX", - "outputId": "29d7dfc5-311f-4927-b366-3b394b40b754" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" - ] - } - ], - "source": [ - "# workingPie = ['label': [all the cats], 'values': [respective values for each cat]]\n", - "workingPie = {'label': [], 'values': []}\n", - "\n", - "for cat in workingTime:\n", - " workingPie['label'].append(cat)\n", - " workingPie['values'].append(len(workingTime[cat].values()))\n", - " \n", - "print(workingPie)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 4316, - "status": "ok", - "timestamp": 1527668822306, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "-7sC2RKjVqjN", - "outputId": "a2d291cd-f81e-46b8-f1bf-efeec63487a6" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 105, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "workCatPie = go.Pie(labels=workingPie['label'], values=workingPie['values'])\n", - "\n", - "py.iplot([workCatPie], filename='WorkingCategoryPie')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "KozOOOay7oZk" - }, - "source": [ - "### Stacked barcharts to see each unique user contributing" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "JIG0UKy17tjR" - }, - "source": [ - "### To see each unique user by day" - ] - }, - { - "cell_type": "code", - "execution_count": 106, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3808, - "status": "ok", - "timestamp": 1527668826182, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "SSpt2CIXEgw8", - "outputId": "477973b9-4f49-401f-b5b3-7d6743f3fdd6" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layout = {\n", - " 'xaxis': {'title': 'Date'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Unique User Activity'\n", - "};\n", - "py.iplot({'data': past14user, 'layout': layout}, filename='activepast14days')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "__1RxqkV7wlw" - }, - "source": [ - "### To see each unique user by week" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 546 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 3566, - "status": "ok", - "timestamp": 1527668829836, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "aAD6xDu27nEN", - "outputId": "accbdbe4-6451-4cd5-edc4-e8218d14eaf9" - }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layout = {\n", - " 'xaxis': {'title': 'Week'},\n", - " 'yaxis': {'title': 'Count'},\n", - " 'barmode': 'relative',\n", - " 'title': 'Weekly User Activity'\n", - "};\n", - "py.iplot({'data': weeklystacked, 'layout': layout}, filename='weeklyactiveusers')" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "fS3KVNcbiwly" - }, - "source": [ - "# 4. Putting Into Firebase" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "colab_type": "text", - "id": "RyquX3cOnXxm" - }, - "source": [ - "### Link to firebase: https://amis-dashboard.firebaseio.com " - ] - }, - { - "cell_type": "code", - "execution_count": 108, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 248 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 4246, - "status": "ok", - "timestamp": 1527668834171, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "KDHEsdPcz7ZX", - "outputId": "0bbbd916-ebaa-48f3-d601-117a7f8fb1b7" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", - "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", - "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" - ] - } - ], - "source": [ - "# Install the firebase library\n", - "\n", - "!pip install python-firebase" - ] - }, - { - "cell_type": "code", - "execution_count": 109, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "ECHZXxiWOXDV" - }, - "outputs": [], - "source": [ - "from firebase import firebase\n", - "from firebase.firebase import FirebaseApplication\n", - "\n", - "yourFirebaseProjectId = 'amis-dashboard' \n", - "\n", - "# No authentication. You will need .write == true in your Firebase security rules. \n", - "# This should work after you change yourFirebaseProjectId above. \n", - "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" - ] - }, - { - "cell_type": "code", - "execution_count": 110, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "fO9Ld7JsOmKD" - }, - "outputs": [], - "source": [ - "# formatData function which takes data in the input data format in the form of a list of dictionaries with two keys x \n", - "# and y. It then converts it into the required format required by the charts CodeSandbox\n", - "\n", - "# Input data format [line,pie or bar charts]:\n", - "# -line: (x,y) - coordinates of points ordered in the list sequentially\n", - "# -bar: x - name of category, \n", - "# y - count of specific categories\n", - "# -pie: x - name of category\n", - "# y - count of specific category\n", - "#\n", - "# style = recharts or victory\n", - "# chartType = line, pie or bar\n", - "# title = title of chart\n", - "# yaxisLabel = y axis label of chart\n", - "# xaxisLabel = x axis label of chart\n", - "\n", - "# Note: Data edited and converted into a dictionary. Copied from jupyter notebook.\n", - "\n", - "def formatData(data,style,chartType,title,yaxisLabel,xaxisLabel):\n", - " ans = {}\n", - " ans['data']=list(data)\n", - " ans['style'] = style\n", - " ans['chartType'] = chartType\n", - " ans['title'] = title\n", - " ans['yaxisLabel'] = yaxisLabel\n", - " ans['xaxisLabel'] = xaxisLabel\n", - " \n", - " if style=='victory':\n", - " if chartType == 'line' or chartType =='pie' or chartType == 'bar':\n", - " return ans\n", - " else:\n", - " return {}\n", - "\n", - " elif style=='recharts':\n", - " if chartType == 'line':\n", - " return ans\n", - " elif chartType == 'pie':\n", - " pieData = []\n", - " for d in data:\n", - " x = d['x']\n", - " y = d['y']\n", - " pieData.append({'name':x, 'value':y})\n", - " ans['data'] = pieData\n", - " return ans\n", - " elif chartType == 'bar':\n", - " return ans\n", - " else:\n", - " return 'ERROR'" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - }, - "base_uri": "https://localhost:8080/", - "height": 55 - }, - "colab_type": "code", - "executionInfo": { - "elapsed": 709, - "status": "ok", - "timestamp": 1527668836813, - "user": { - "displayName": "Yan Rong Chng", - "photoUrl": "https://lh3.googleusercontent.com/a/default-user=s128", - "userId": "110884509958516044647" - }, - "user_tz": -480 - }, - "id": "FGUejipLQJW6", - "outputId": "b7e59c8a-617d-458f-84a8-d895c9c47d4e" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" - ] - } - ], - "source": [ - "# we need the data in the form of {{'x': xvalue, 'y': yvalue} , other pairs of xy values}\n", - "# e_types is the new dataset that we are going to use\n", - "\n", - "e_types = []\n", - "temp = {}\n", - "\n", - "for key in etypes.keys():\n", - " temp['x'] = key\n", - " temp['y'] = etypes[key]\n", - " e_types.append(temp)\n", - " temp = {}\n", - " \n", - "print(e_types)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "autoexec": { - "startup": false, - "wait_interval": 0 - } - }, - "colab_type": "code", - "id": "lV7SreC7CwW4" - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "default_view": {}, - "name": "Copy of ALSET GitHub Dashboard (without how to save local file)", - "provenance": [ - { - "file_id": "1CXafj_kN4V4r-YDBDQtNFxbDOVZ9JLde", - "timestamp": 1527053621420 - } - ], - "version": "0.3.2", - "views": {} - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.7" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} From d06645668bb1ff0a40dd3099eb8415db7a34c8ac Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 12:37:32 +0100 Subject: [PATCH 28/98] Create amis-github-ethereum-dashboard.ipynb --- amis-github-ethereum-dashboard.ipynb | 4524 ++++++++++++++++++++++++++ 1 file changed, 4524 insertions(+) create mode 100644 amis-github-ethereum-dashboard.ipynb diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb new file mode 100644 index 0000000..738221e --- /dev/null +++ b/amis-github-ethereum-dashboard.ipynb @@ -0,0 +1,4524 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "view-in-github" + }, + "source": [ + "\n", + "\n", + "---\n", + "\n", + "# **Content of Notebook**\n", + "\n", + "1. Retrieving data from Github org (ethereum)\n", + "\n", + "2. Cleaning and formatting data\n", + "\n", + "3. Plotting charts using Plotly\n", + "\n", + "4. Putting into Firebase\n", + "\n", + "\n", + "---\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "view-in-github" + }, + "source": [ + "# 1. Retrieving Data" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", + "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", + "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", + "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", + "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", + "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", + "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", + "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", + "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", + "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", + "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", + "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", + "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", + "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", + "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", + "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", + "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", + "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", + "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", + "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", + "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", + "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install sklearn\n", + "!pip install matplotlib\n", + "!pip install plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 8636, + "status": "ok", + "timestamp": 1527668728606, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000880000000000000000" + }, + "user_tz": -480 + }, + "id": "M2sky6pYY9og", + "outputId": "8d13199f-8c16-4c33-a60e-9e9044546702" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" + ] + } + ], + "source": [ + "# source: https://stackoverflow.com/questions/12965203/how-to-get-json-from-webpage-into-python-script?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "\n", + "import urllib.request, json \n", + "\n", + "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", + "\n", + "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", + "# events = json.loads(url.read().decode())\n", + "# print(events)\n", + "\n", + " \n", + "# Getting data for all events\n", + "allevents = []\n", + "i = 1\n", + "while i<11:\n", + " with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=\" + str(i)) as url:\n", + " events = json.loads(url.read().decode())\n", + " allevents = allevents + events\n", + " i+=1\n", + " \n", + "print(allevents)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "zmVpMYBxOnrM" + }, + "source": [ + "# 2. Formatting Data" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 687, + "status": "ok", + "timestamp": 1527668734475, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "puJKUj-8eFJC", + "outputId": "8d717d5c-a770-4951-c22f-a78796897da2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" + ] + } + ], + "source": [ + "edic = {}\n", + "\n", + "# for single page of logs\n", + "# j = 0\n", + "# for i in events:\n", + "# edic[j] = i\n", + "# j+=1\n", + " \n", + "# for all 10 pages of logs\n", + "j = 0\n", + "for i in allevents:\n", + " edic[j] = i\n", + " j+=1\n", + " \n", + "print(edic[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lJxZKxdmEvwQ" + }, + "outputs": [], + "source": [ + "# https://developer.github.com/v3/activity/events/types/\n", + "# Payload is a unique object that differs based on its event type\n", + "\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 2952 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 732, + "status": "ok", + "timestamp": 1527668736229, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "4DCw4EiqE3vu", + "outputId": "cebb4b88-2c5c-4bf9-9ab2-46de875aa8cb" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idtypeactorrepopayloadpubliccreated_atorg
08751648709IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T23:05:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
18751636392PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
28751635242PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T23:02:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
38751612602PullRequestReviewCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:57:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
48751606764IssueCommentEvent{'id': 8655789, 'login': 'codecov-io', 'displa...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:55:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
58751592879IssueCommentEvent{'id': 8602661, 'login': 'jakerockland', 'disp...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:52:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
68751580082IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
78751579259IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:49:38Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
88751575653PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136135662, 'size': 1, 'distinct_s...True2018-12-13T22:48:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
98751554182IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:44:06Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
108751552656IssueCommentEvent{'id': 3859395, 'login': 'fubuloubu', 'display...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:43:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
118751546770PullRequestReviewCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:42:26Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
128751545833PullRequestEvent{'id': 6540608, 'login': 'kclowes', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1162, 'pull_req...True2018-12-13T22:42:15Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
138751544474PushEvent{'id': 1699173, 'login': 'nivida', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'push_id': 3136119495, 'size': 1, 'distinct_s...True2018-12-13T22:41:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
148751543759IssueCommentEvent{'id': 15605026, 'login': 'halfalicious', 'dis...{'id': 15460666, 'name': 'ethereum/aleth', 'ur...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:41:47Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
158751531812PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136112801, 'size': 1, 'distinct_s...True2018-12-13T22:39:13Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
168751529594PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'action': 'opened', 'number': 22, 'pull_reque...True2018-12-13T22:38:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
178751524322CreateEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 122337656, 'name': 'ethereum/retesteth'...{'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...True2018-12-13T22:37:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
188751495938PushEvent{'id': 47108, 'login': 'evertonfraga', 'displa...{'id': 152745337, 'name': 'ethereum/mist-shell...{'push_id': 3136094228, 'size': 1, 'distinct_s...True2018-12-13T22:31:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
198751479824IssuesEvent{'id': 8933231, 'login': 'dylanjw', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'issue': {'url': 'https:/...True2018-12-13T22:28:08Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
208751479546PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:28:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
218751457988IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
228751457971IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
238751455096IssuesEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
248751455085IssueCommentEvent{'id': 205327, 'login': 'carver', 'display_log...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:23:14Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
258751404945WatchEvent{'id': 453776, 'login': 'ur5us', 'display_logi...{'id': 29512034, 'name': 'ethereum/devp2p', 'u...{'action': 'started'}True2018-12-13T22:13:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
268751388340IssueCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T22:10:18Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
278751375542PullRequestReviewCommentEvent{'id': 521109, 'login': 'cburgdorf', 'display_...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:48Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
288751373949PullRequestEvent{'id': 791437, 'login': 'davesque', 'display_l...{'id': 56251096, 'name': 'ethereum/web3.py', '...{'action': 'opened', 'number': 1160, 'pull_req...True2018-12-13T22:07:30Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
298751373741PullRequestReviewCommentEvent{'id': 824194, 'login': 'pipermerriam', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T22:07:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
...........................
2658749262323PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134949870, 'size': 1, 'distinct_s...True2018-12-13T15:59:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2668749248312IssueCommentEvent{'id': 20308948, 'login': 'zscole', 'display_l...{'id': 143768297, 'name': 'ethereum/eth2.0-pm'...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:57:36Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2678749236050IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:57Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2688749231725IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:55:21Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2698749230140ForkEvent{'id': 45850645, 'login': 'Snetw', 'display_lo...{'id': 15452919, 'name': 'ethereum/go-ethereum...{'forkee': {'id': 161661585, 'node_id': 'MDEwO...True2018-12-13T15:55:10Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2708749205280IssueCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:51:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2718749204531PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134920063, 'size': 13, 'distinct_...True2018-12-13T15:51:34Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2728749198475IssueCommentEvent{'id': 85355, 'login': 'lookfirst', 'display_l...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:50:41Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2738749173576ForkEvent{'id': 45844784, 'login': 'gangnamtestnet', 'd...{'id': 30313032, 'name': 'ethereum/ethash', 'u...{'forkee': {'id': 161660600, 'node_id': 'MDEwO...True2018-12-13T15:47:11Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2748749171801PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'push_id': 3134903228, 'size': 2, 'distinct_s...True2018-12-13T15:46:55Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2758749171067PullRequestEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'number': 5649, 'pull_req...True2018-12-13T15:46:49Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2768749170485IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:46:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2778749167495PullRequestReviewCommentEvent{'id': 29854669, 'login': 'jannikluhn', 'displ...{'id': 77478378, 'name': 'ethereum/py-evm', 'u...{'action': 'created', 'comment': {'url': 'http...True2018-12-13T15:46:19Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2788749161300IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:45:27Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2798749153672CreateEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...True2018-12-13T15:44:22Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2808749152469PushEvent{'id': 6917456, 'login': 'jacqueswww', 'displa...{'id': 73461676, 'name': 'ethereum/vyper', 'ur...{'push_id': 3134893359, 'size': 2, 'distinct_s...True2018-12-13T15:44:12Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2818749133571WatchEvent{'id': 34389409, 'login': 'ndc07', 'display_lo...{'id': 24655114, 'name': 'ethereum/web3.js', '...{'action': 'started'}True2018-12-13T15:41:28Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2828749130652PullRequestEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'action': 'opened', 'number': 569, 'pull_requ...True2018-12-13T15:41:05Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2838749129431IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:54Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2848749128387IssueCommentEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:40:44Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2858749128034PushEvent{'id': 4492341, 'login': 'winsvega', 'display_...{'id': 15540967, 'name': 'ethereum/tests', 'ur...{'push_id': 3134880769, 'size': 2, 'distinct_s...True2018-12-13T15:40:42Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2868749118552PushEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'push_id': 3134875732, 'size': 2, 'distinct_s...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2878749118494PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'closed', 'number': 11, 'pull_reque...True2018-12-13T15:39:24Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2888749114734PullRequestEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'action': 'opened', 'number': 11, 'pull_reque...True2018-12-13T15:38:50Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2898749104997CreateEvent{'id': 9263930, 'login': 'hwwhww', 'display_lo...{'id': 153663395, 'name': 'ethereum/py-ssz', '...{'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...True2018-12-13T15:37:29Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2908749101507PushEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'push_id': 3134866869, 'size': 1, 'distinct_s...True2018-12-13T15:36:59Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2918749101342PullRequestEvent{'id': 731743, 'login': 'JustinDrake', 'displa...{'id': 149554797, 'name': 'ethereum/eth2.0-spe...{'action': 'closed', 'number': 310, 'pull_requ...True2018-12-13T15:36:58Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2928749078704IssuesEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'closed', 'issue': {'url': 'https:/...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2938749078679IssueCommentEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 40892817, 'name': 'ethereum/solidity', ...{'action': 'created', 'issue': {'url': 'https:...True2018-12-13T15:33:45Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
2948749070596PushEvent{'id': 9073706, 'login': 'chriseth', 'display_...{'id': 85063629, 'name': 'ethereum/solidity-te...{'push_id': 3134850927, 'size': 1, 'distinct_s...True2018-12-13T15:32:33Z{'id': 6250754, 'login': 'ethereum', 'gravatar...
\n", + "

295 rows × 8 columns

\n", + "
" + ], + "text/plain": [ + " id type \\\n", + "0 8751648709 IssueCommentEvent \n", + "1 8751636392 PullRequestReviewCommentEvent \n", + "2 8751635242 PullRequestReviewCommentEvent \n", + "3 8751612602 PullRequestReviewCommentEvent \n", + "4 8751606764 IssueCommentEvent \n", + "5 8751592879 IssueCommentEvent \n", + "6 8751580082 IssueCommentEvent \n", + "7 8751579259 IssueCommentEvent \n", + "8 8751575653 PushEvent \n", + "9 8751554182 IssueCommentEvent \n", + "10 8751552656 IssueCommentEvent \n", + "11 8751546770 PullRequestReviewCommentEvent \n", + "12 8751545833 PullRequestEvent \n", + "13 8751544474 PushEvent \n", + "14 8751543759 IssueCommentEvent \n", + "15 8751531812 PushEvent \n", + "16 8751529594 PullRequestEvent \n", + "17 8751524322 CreateEvent \n", + "18 8751495938 PushEvent \n", + "19 8751479824 IssuesEvent \n", + "20 8751479546 PullRequestReviewCommentEvent \n", + "21 8751457988 IssuesEvent \n", + "22 8751457971 IssueCommentEvent \n", + "23 8751455096 IssuesEvent \n", + "24 8751455085 IssueCommentEvent \n", + "25 8751404945 WatchEvent \n", + "26 8751388340 IssueCommentEvent \n", + "27 8751375542 PullRequestReviewCommentEvent \n", + "28 8751373949 PullRequestEvent \n", + "29 8751373741 PullRequestReviewCommentEvent \n", + ".. ... ... \n", + "265 8749262323 PushEvent \n", + "266 8749248312 IssueCommentEvent \n", + "267 8749236050 IssueCommentEvent \n", + "268 8749231725 IssueCommentEvent \n", + "269 8749230140 ForkEvent \n", + "270 8749205280 IssueCommentEvent \n", + "271 8749204531 PushEvent \n", + "272 8749198475 IssueCommentEvent \n", + "273 8749173576 ForkEvent \n", + "274 8749171801 PushEvent \n", + "275 8749171067 PullRequestEvent \n", + "276 8749170485 IssueCommentEvent \n", + "277 8749167495 PullRequestReviewCommentEvent \n", + "278 8749161300 IssueCommentEvent \n", + "279 8749153672 CreateEvent \n", + "280 8749152469 PushEvent \n", + "281 8749133571 WatchEvent \n", + "282 8749130652 PullRequestEvent \n", + "283 8749129431 IssueCommentEvent \n", + "284 8749128387 IssueCommentEvent \n", + "285 8749128034 PushEvent \n", + "286 8749118552 PushEvent \n", + "287 8749118494 PullRequestEvent \n", + "288 8749114734 PullRequestEvent \n", + "289 8749104997 CreateEvent \n", + "290 8749101507 PushEvent \n", + "291 8749101342 PullRequestEvent \n", + "292 8749078704 IssuesEvent \n", + "293 8749078679 IssueCommentEvent \n", + "294 8749070596 PushEvent \n", + "\n", + " actor \\\n", + "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", + "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", + "6 {'id': 205327, 'login': 'carver', 'display_log... \n", + "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "11 {'id': 205327, 'login': 'carver', 'display_log... \n", + "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", + "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", + "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", + "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "21 {'id': 205327, 'login': 'carver', 'display_log... \n", + "22 {'id': 205327, 'login': 'carver', 'display_log... \n", + "23 {'id': 205327, 'login': 'carver', 'display_log... \n", + "24 {'id': 205327, 'login': 'carver', 'display_log... \n", + "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", + "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", + "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + ".. ... \n", + "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", + "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", + "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", + "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", + "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", + "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", + "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", + "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", + "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "\n", + " repo \\\n", + "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", + "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", + "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + ".. ... \n", + "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", + "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", + "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", + "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "\n", + " payload public \\\n", + "0 {'action': 'created', 'issue': {'url': 'https:... True \n", + "1 {'action': 'created', 'comment': {'url': 'http... True \n", + "2 {'action': 'created', 'comment': {'url': 'http... True \n", + "3 {'action': 'created', 'comment': {'url': 'http... True \n", + "4 {'action': 'created', 'issue': {'url': 'https:... True \n", + "5 {'action': 'created', 'issue': {'url': 'https:... True \n", + "6 {'action': 'created', 'issue': {'url': 'https:... True \n", + "7 {'action': 'created', 'issue': {'url': 'https:... True \n", + "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", + "9 {'action': 'created', 'issue': {'url': 'https:... True \n", + "10 {'action': 'created', 'issue': {'url': 'https:... True \n", + "11 {'action': 'created', 'comment': {'url': 'http... True \n", + "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", + "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", + "14 {'action': 'created', 'issue': {'url': 'https:... True \n", + "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", + "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", + "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", + "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", + "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "20 {'action': 'created', 'comment': {'url': 'http... True \n", + "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "22 {'action': 'created', 'issue': {'url': 'https:... True \n", + "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "24 {'action': 'created', 'issue': {'url': 'https:... True \n", + "25 {'action': 'started'} True \n", + "26 {'action': 'created', 'issue': {'url': 'https:... True \n", + "27 {'action': 'created', 'comment': {'url': 'http... True \n", + "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", + "29 {'action': 'created', 'comment': {'url': 'http... True \n", + ".. ... ... \n", + "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", + "266 {'action': 'created', 'issue': {'url': 'https:... True \n", + "267 {'action': 'created', 'issue': {'url': 'https:... True \n", + "268 {'action': 'created', 'issue': {'url': 'https:... True \n", + "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", + "270 {'action': 'created', 'issue': {'url': 'https:... True \n", + "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", + "272 {'action': 'created', 'issue': {'url': 'https:... True \n", + "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", + "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", + "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", + "276 {'action': 'created', 'issue': {'url': 'https:... True \n", + "277 {'action': 'created', 'comment': {'url': 'http... True \n", + "278 {'action': 'created', 'issue': {'url': 'https:... True \n", + "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", + "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", + "281 {'action': 'started'} True \n", + "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", + "283 {'action': 'created', 'issue': {'url': 'https:... True \n", + "284 {'action': 'created', 'issue': {'url': 'https:... True \n", + "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", + "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", + "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", + "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", + "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", + "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", + "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", + "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "293 {'action': 'created', 'issue': {'url': 'https:... True \n", + "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", + "\n", + " created_at org \n", + "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + ".. ... ... \n", + "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "\n", + "[295 rows x 8 columns]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.DataFrame.from_dict(edic, orient='index')\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "iYuOQffkif5g" + }, + "source": [ + "### Number of each types of event // PIECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 608, + "status": "ok", + "timestamp": 1527668737059, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "llyqSEk9dNud", + "outputId": "1b8fb75f-6670-4335-e55d-b0e19f07b6b0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" + ] + } + ], + "source": [ + "etypes = {}\n", + "for i in edic:\n", + " if edic[i]['type'] not in etypes.keys():\n", + " etypes[edic[i]['type']] = 1\n", + " else:\n", + " etypes[edic[i]['type']]+=1\n", + "print(etypes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Z0KZVGt_q4XD" + }, + "source": [ + "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 887, + "status": "ok", + "timestamp": 1527668738108, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "oV5GK_4VjGz7", + "outputId": "8f72a626-5ff7-4b53-b5fd-4055a29d88af" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" + ] + } + ], + "source": [ + "users = {}\n", + "for i in edic:\n", + " if edic[i]['actor']['login'] not in users.keys():\n", + " users[edic[i]['actor']['login']] = 1\n", + " else:\n", + " users[edic[i]['actor']['login']] += 1\n", + "\n", + "print(users)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "AT89xW2DrQ5l" + }, + "source": [ + "### For the timeline chart // SCATTERPLOT" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "AFf6znSBjkLq" + }, + "outputs": [], + "source": [ + "# getting the time\n", + "\n", + "def get_date(dateString):\n", + " from dateutil.parser import parse\n", + " from datetime import datetime\n", + " theDate = parse(dateString)\n", + " #print(theDate)\n", + " \n", + " # Return a format that can be easily sorted. \n", + " return \"{:%Y-%m-%d}\".format(theDate)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "mmy4B-Eh0ARo" + }, + "outputs": [], + "source": [ + "useract = {}\n", + "userlist = {}\n", + "for user in users.keys():\n", + " userlist[user] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1331, + "status": "ok", + "timestamp": 1527668741725, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "_QABrJl7rgwo", + "outputId": "324a0837-7963-4519-e989-f3b1ed36269c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in useract.keys():\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + " else:\n", + " useract[time] = userlist.copy()\n", + " useract[time][edic[i]['actor']['login']]+=1\n", + "\n", + "print(useract)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "FWTX0y5KyTxW" + }, + "source": [ + "### All repos and number of activities related to each + most active repo // BARCHART" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1244, + "status": "ok", + "timestamp": 1527668744200, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "Tns-gU6tyTFb", + "outputId": "75a1602b-ffa5-45d3-ea06-53115c4ff2d4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" + ] + } + ], + "source": [ + "repo = {}\n", + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " if name not in repo.keys():\n", + " repo[name] = 1\n", + " else:\n", + " repo[name]+=1\n", + " \n", + "print(repo)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "it1N2K4eyNdM" + }, + "source": [ + "### Repo Activity // LINECHART" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "MpmHtjPQ0M8w" + }, + "outputs": [], + "source": [ + "repoact = {}\n", + "repos = {}\n", + "for r in repo.keys():\n", + " repos[r] = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 1222, + "status": "ok", + "timestamp": 1527668748252, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "8fcUs9hvvmCc", + "outputId": "624e0c09-db34-4662-fe32-528de5497710" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" + ] + } + ], + "source": [ + "for i in edic:\n", + " name = edic[i]['repo']['name'][10::]\n", + " time = get_date(edic[i]['created_at'])\n", + " if time in repoact.keys():\n", + " repoact[time][name]+=1\n", + " else:\n", + " repoact[time] = repos.copy()\n", + " repoact[time][name]+=1\n", + " \n", + "print(repoact)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "CXFkKZKg8Rp9" + }, + "source": [ + "### Plotting events in time period (Morning/Afternoon/Night) of each day" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "j_EjZ_AB8g6Q" + }, + "outputs": [], + "source": [ + "import time\n", + "def getHour(String):\n", + " ts = time.strptime(String[:19], \"%Y-%m-%dT%H:%M:%S\")\n", + " return int(time.strftime(\"%H\", ts))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 769, + "status": "ok", + "timestamp": 1527668750876, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "epKc2kzS80Ir", + "outputId": "de29dd19-9240-4f3a-f25f-5cc941083b05" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "getHour(edic[0]['created_at'])" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "KUiaK41I8vFY" + }, + "outputs": [], + "source": [ + "def classifyTime(hour):\n", + " if hour >= 6 and hour <= 11:\n", + " return \"Early Bird\"\n", + " elif hour <= 17 and hour >= 12: # 17H is 5pm\n", + " return \"Midday\"\n", + " else:\n", + " return \"Night Owl\"" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 714, + "status": "ok", + "timestamp": 1527668754237, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "Tacj2G2QAQnw", + "outputId": "aabd5c2a-e7a8-4ed1-b848-17ec973c7bb3" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'Night Owl'" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "classifyTime(getHour(edic[0]['created_at']))" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 712, + "status": "ok", + "timestamp": 1527668756478, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "SKtwop5RG9AU", + "outputId": "8ca17014-427b-4cad-f120-c25b8cbcaf66" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" + ] + } + ], + "source": [ + "workingTime = {'Early Bird': {}, 'Midday': {}, 'Night Owl': {}}\n", + "\n", + "for number in edic:\n", + " t = getHour(edic[number]['created_at'])\n", + " date = get_date(edic[number]['created_at'])\n", + " if classifyTime(t) == 'Early Bird':\n", + " if date not in workingTime['Early Bird'].keys():\n", + " workingTime['Early Bird'][date] = 1\n", + " else:\n", + " workingTime['Early Bird'][date] += 1\n", + " elif classifyTime(t) == 'Midday':\n", + " if date not in workingTime['Midday'].keys():\n", + " workingTime['Midday'][date] = 1\n", + " else:\n", + " workingTime['Midday'][date] += 1\n", + " else:\n", + " if date not in workingTime['Night Owl'].keys():\n", + " workingTime['Night Owl'][date] = 1\n", + " else:\n", + " workingTime['Night Owl'][date] += 1\n", + " \n", + "print(workingTime)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "QBGD6XHPJV90" + }, + "source": [ + "### Finding number of unique users contributing by DAY" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 652, + "status": "ok", + "timestamp": 1527668757324, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "SF6rfO9sK80k", + "outputId": "b9c86187-e2d7-4bd4-b105-ecbef3807354" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "alldaysuser = []\n", + "everyday_user={}\n", + "\n", + "for user in users.keys():\n", + " # use useract as i want data for every day\n", + " everyday_user['x'] = list(useract.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in useract.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " everyday_user['y'] = curract\n", + " everyday_user['name'] = user\n", + " everyday_user['type'] = 'bar'\n", + " alldaysuser.append(everyday_user)\n", + " everyday_user={}\n", + " \n", + "print(alldaysuser)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 617, + "status": "ok", + "timestamp": 1527668758110, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "3UMUyKTIJV99", + "outputId": "e481f7aa-b01e-4781-93a3-fa1d3a55a50b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "numActiveUser = {}\n", + "\n", + "for date in useract:\n", + " u = useract[date]\n", + " numActiveUser[date] = 0\n", + " for user in u:\n", + " if u[user] != 0:\n", + " numActiveUser[date] += 1\n", + "\n", + "print(numActiveUser)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "puwDnw_eJV-C" + }, + "source": [ + "### Sieving daily data for number of unique contributors to show only data for past 14 days" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 721, + "status": "ok", + "timestamp": 1527668758994, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "3CwnWg44JV-G", + "outputId": "9bc19b14-e34b-42ae-a285-d690467cb161" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': 72}\n" + ] + } + ], + "source": [ + "# https://stackoverflow.com/questions/7971618/python-return-first-n-keyvalue-pairs-from-dict?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n", + "# format for obtaining certain number of keys (sorted or random): \n", + "# first2pairs = {k: mydict[k] for k in sorted(mydict.keys())[:2]}\n", + "\n", + "############## FOR COUNT OF UNIQUE USERS #####################\n", + "\n", + "datafor14 = {k: numActiveUser[k] for k in sorted(numActiveUser.keys(), reverse=True)[:14]}\n", + "\n", + "print(datafor14)" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 616, + "status": "ok", + "timestamp": 1527668759777, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "q5wcx-Rc3Yjr", + "outputId": "6950e09c-6038-4679-c293-491fe468b18a" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# change useract into [{'x': dates, 'y':count, 'name': uid, 'type': bar}] FOR EACH USER\n", + "\n", + "############## TO SHOW EACH UNIQUE USER AND THEIR ACTIVITY (1 or 0) ########################\n", + "\n", + "past14user = []\n", + "a_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " a_user['x'] = list(datafor14.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for date in datafor14.keys():\n", + " # if got activity, record as 1, else 0\n", + " if useract[date][user] > 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " a_user['y'] = curract\n", + " a_user['name'] = user\n", + " a_user['type'] = 'bar'\n", + " past14user.append(a_user)\n", + " a_user={}\n", + " \n", + "print(past14user)\n", + "\n", + "# directly use past14user as data for stacked bar chart" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Q-brJ84NJV-O" + }, + "source": [ + "### Finding number of unique users contributing by WEEK (for whole dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 139 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 678, + "status": "ok", + "timestamp": 1527668760615, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "LU-ubfhoBNJq", + "outputId": "1aea3c21-5e2c-4cad-cb0d-b38d7cd65672" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "{'1 Week(s) Ago': 72}\n" + ] + } + ], + "source": [ + "########## FOR COUNT OF UNIQUE USERS ########################\n", + "\n", + "weekly = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "usercounter = 0\n", + "uniqueactive = []\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(len(numActiveCopy))\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " if user not in uniqueactive:\n", + " uniqueactive.append(user)\n", + " weekly[str(weekcounter) + \" Week(s) Ago\"] = len(uniqueactive)\n", + " uniqueactive = []\n", + " weekcounter += 1\n", + "\n", + "print(weekly)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 159 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 609, + "status": "ok", + "timestamp": 1527668761380, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "3Hk6iQtTBStx", + "outputId": "b13c2d27-8aa1-4b16-92ca-ae5835c588c9" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", + "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + ] + } + ], + "source": [ + "######### IN ORDER TO CHANGE FORMAT INTO STACKED BAR CHART TO IDENTIFY UNIQUE USERS #################\n", + "\n", + "weeklyunique = {}\n", + "numActiveCopy = useract.copy()\n", + "weekcounter = 1\n", + "uniqueactive = {}\n", + "\n", + "while len(numActiveCopy) > 0:\n", + " if (len(numActiveCopy) < 7):\n", + " tempWeek = numActiveCopy\n", + " else:\n", + " tempWeek = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[:7]}\n", + " numActiveCopy = {k: numActiveCopy[k] for k in sorted(numActiveCopy.keys(), reverse=True)[7:]}\n", + " print(tempWeek)\n", + " for day in tempWeek:\n", + " for user in tempWeek[day]:\n", + " if tempWeek[day][user] > 0:\n", + " uniqueactive[user] = 1\n", + " else:\n", + " if user not in uniqueactive.keys():\n", + " uniqueactive[user] = 0\n", + " weeklyunique[str(weekcounter) + \" Week(s) Ago\"] = uniqueactive\n", + " uniqueactive = {}\n", + " weekcounter += 1\n", + "\n", + "print(weeklyunique)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 785, + "status": "ok", + "timestamp": 1527668762337, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "NPhuQkBwFZ9h", + "outputId": "cead7cf6-3dd9-41ac-e9c5-8c4257253d6c" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "############# CHANGING INTO FORMAT FOR STACKED BAR CHART FOR UNIQUE USERS #####################\n", + "\n", + "weeklystacked = []\n", + "w_user={}\n", + "\n", + "for user in users.keys():\n", + " # use datafor14 as i only want the past 14 days\n", + " w_user['x'] = list(weeklyunique.keys())\n", + " # finding the amount of activity of this particular user\n", + " curract = []\n", + " for week in weeklyunique.keys():\n", + " # if got activity, record as 1, else 0\n", + " if weeklyunique[week][user] >= 1:\n", + " curract.append(1)\n", + " else:\n", + " curract.append(0)\n", + " w_user['y'] = curract\n", + " w_user['name'] = user\n", + " w_user['type'] = 'bar'\n", + " weeklystacked.append(w_user)\n", + " w_user={}\n", + " \n", + "print(weeklystacked)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "61aCZhAogY9F" + }, + "source": [ + "# 3. Plotting Charts with Plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "BEvGQGfCQrz4" + }, + "outputs": [], + "source": [ + "import plotly.plotly as py\n", + "import plotly.graph_objs as go" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "zBgeBPCmgb_c" + }, + "outputs": [], + "source": [ + "# Credentials needed for plotly\n", + "\n", + "import plotly\n", + "plotly.tools.set_credentials_file(username='amisolution', api_key='B7QUo8AV6q3Vl7juBjgm')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "nD6jUdKpfYp5" + }, + "source": [ + "### Piechart for event types" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 555, + "status": "ok", + "timestamp": 1527668769127, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "F9wV1id2foE8", + "outputId": "401c8ccb-0b3f-43ef-9cb7-18419f74e5c4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" + ] + } + ], + "source": [ + "# Recall:\n", + "# e_types is a list of [{x: xvalue, y: yvalue}]\n", + "# etypes is a dict of {x: y}\n", + "labels = list(etypes.keys())\n", + "values = list(etypes.values())\n", + "\n", + "print(labels, values)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 583 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3931, + "status": "ok", + "timestamp": 1527668773212, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "4iGinWGvTFGb", + "outputId": "4d042e23-2ea9-4d78-df6c-5e5886caf265" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~amisolution/0 or inside your plot.ly account where it is named 'eventPie'\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eventPie = go.Pie(labels=labels, values=values)\n", + "\n", + "py.iplot([eventPie], filename='eventPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "6XMmsR10h6po" + }, + "source": [ + "### Barchart for each contributor" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3944, + "status": "ok", + "timestamp": 1527668777275, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "TWRBjWZhf_Vr", + "outputId": "61cc7f10-22a8-41ed-d971-cb94ecf3d3d9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "alluser = list(users.keys())\n", + "usercount = list(users.values())\n", + "user = [go.Bar(x = alluser, y=usercount)]\n", + "\n", + "py.iplot(user, filename='userBar')\n", + "#IPython.display.IFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "jdqVgUdzipME" + }, + "source": [ + "### User Activity by date (Grouped Bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 805, + "status": "ok", + "timestamp": 1527668778110, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "UHyaIQfGknzf", + "outputId": "cd5cc956-8944-4fd4-8a8c-897bfba9bc95" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" + ] + } + ], + "source": [ + "# need to reformat useract into {user: [list of days active], ...}\n", + "uact = {}\n", + "\n", + "for user in users.keys(): # all the users\n", + " for time in useract:\n", + " if user in useract[time].keys():\n", + " if user not in uact.keys():\n", + " uact[user] = [time]\n", + " else:\n", + " uact[user].append(time)\n", + " \n", + "print(uact)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 634, + "status": "ok", + "timestamp": 1527668779186, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "wqDBJK_kqe6u", + "outputId": "e57c9988-b817-46e0-d1ad-9648e7f666ab" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "useractivity = {}\n", + "\n", + "for user in users.keys():\n", + " useractivity[user] = {}\n", + " for time in useract:\n", + " useractivity[user][time] = useract[time][user]\n", + "\n", + "print(useractivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 531, + "status": "ok", + "timestamp": 1527668779886, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "_qmSc4KurbIA", + "outputId": "7b40e686-40a9-476d-bbab-15398791b1de" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# Putting into x and y for each user\n", + "\n", + "allUserBars = []\n", + "\n", + "for user in useractivity:\n", + " current = {'x': [], 'y': []}\n", + " current['x'] = list(useractivity[user].keys())\n", + " current['y'] = list(useractivity[user].values())\n", + " user = go.Scatter(x=current['x'], y=current['y'], name=user, mode='markers+lines')\n", + " allUserBars.append(user)\n", + "\n", + "print(allUserBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3701, + "status": "ok", + "timestamp": 1527668783763, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "ZZN-it6os2LH", + "outputId": "732e1f4a-072f-4f9f-f01c-b2c394264786" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "# layout = go.Layout(barmode='group')\n", + "\n", + "# making user activity line chart instead\n", + "fig = go.Figure(data=allUserBars)\n", + "py.iplot(fig, filename='UserActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "USXYLNwc0uuD" + }, + "source": [ + "### Repo Activity by date (Grouped bar chart)" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 914, + "status": "ok", + "timestamp": 1527668784747, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "Kojb7D0t03hg", + "outputId": "2a82eb75-ab49-4eee-a8a4-442a47d605be" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" + ] + } + ], + "source": [ + "repoactivity = {}\n", + "\n", + "for r in repo.keys():\n", + " rAct = {}\n", + " for date in repoact.keys():\n", + " rAct[date] = repoact[date][r]\n", + " repoactivity[r] = rAct\n", + " \n", + "print(repoactivity)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 860, + "status": "ok", + "timestamp": 1527668785776, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "qbewgrDz13aR", + "outputId": "897b7203-2988-4ef7-cb4b-a3d4e09c5fd8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoLines = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Scatter(x=current['x'], y=current['y'], name=r, mode='markers+lines')\n", + " allRepoLines.append(rep)\n", + " \n", + "print(allRepoLines)" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3731, + "status": "ok", + "timestamp": 1527668789785, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "je9_fWMo3UJw", + "outputId": "6c12181c-e5a1-4199-f634-5dec9028f9dc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group linecharts\n", + "py.iplot(allRepoLines, filename='RepoActivityLines')" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 761, + "status": "ok", + "timestamp": 1527668790647, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "lqHeTbNP6RiM", + "outputId": "8ac39a6b-3d5a-456b-fdc4-12324fa4f4e7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Bar({\n", + " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + "}), Bar({\n", + " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + "}), Bar({\n", + " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + "}), Bar({\n", + " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + "}), Bar({\n", + " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + "}), Bar({\n", + " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + "}), Bar({\n", + " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + "}), Bar({\n", + " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + "}), Bar({\n", + " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + "}), Bar({\n", + " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + "}), Bar({\n", + " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + "}), Bar({\n", + " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + "}), Bar({\n", + " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + "}), Bar({\n", + " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + "}), Bar({\n", + " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + "}), Bar({\n", + " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + "}), Bar({\n", + " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "allRepoBars = []\n", + "\n", + "for r in repoactivity.keys():\n", + " # make dictionary of empty list to sort data into x and y\n", + " current = {'x': [], 'y':[]}\n", + " current['x'] = list(repoactivity[r].keys())\n", + " current['y'] = list(repoactivity[r].values())\n", + " rep = go.Bar(x=current['x'], y=current['y'], name=r)\n", + " allRepoBars.append(rep)\n", + " \n", + "print(allRepoBars)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3644, + "status": "ok", + "timestamp": 1527668794857, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "xt9ZK1eC4C0g", + "outputId": "46ea2ab7-76c5-4022-c5df-f40d4f38baf3" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# plotting the group barcharts\n", + "layout = go.Layout(barmode='group')\n", + "\n", + "# using repo activity line chart instead\n", + "fig = go.Figure(data=allRepoBars, layout=layout)\n", + "py.iplot(fig, filename='RepoActivityBarChart')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "ifqxugZRONk9" + }, + "source": [ + "### Looking at types of Contribution per user" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 886, + "status": "ok", + "timestamp": 1527668795807, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "OTu68Zlj6D4E", + "outputId": "cd708e7a-f2aa-43b3-c72c-c44d53656a5d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" + ] + } + ], + "source": [ + "userCont = {}\n", + "\n", + "for user in users.keys():\n", + " userCont[user] = {}\n", + " for i in edic:\n", + " repname = edic[i]['repo']['name'][10::]\n", + " if edic[i]['actor']['login'] == user:\n", + " if repname not in userCont[user].keys():\n", + " userCont[user][repname] = 1\n", + " else:\n", + " userCont[user][repname]+=1\n", + " #print(userCont[user])\n", + " \n", + "print(userCont)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ioZKlPOzH_N7" + }, + "outputs": [], + "source": [ + "import math" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "niqdz9h_pvyL" + }, + "outputs": [], + "source": [ + "userList = list(users.keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 956, + "status": "ok", + "timestamp": 1527668799105, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "qgcRjWKMBq_8", + "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'fubuloubu',\n", + " 'values': [5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", + " 'name': 'pipermerriam',\n", + " 'values': [21, 1, 1, 3, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [leth],\n", + " 'name': 'halfalicious',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth],\n", + " 'name': 'codecov-io',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jakerockland',\n", + " 'values': [4]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", + " 'name': 'carver',\n", + " 'values': [4, 32, 1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'nivida',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'kclowes',\n", + " 'values': [6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist-shell],\n", + " 'name': 'evertonfraga',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [etesteth, ests],\n", + " 'name': 'winsvega',\n", + " 'values': [4, 5]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'dylanjw',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'cburgdorf',\n", + " 'values': [8]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [evp2p],\n", + " 'name': 'ur5us',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.py],\n", + " 'name': 'davesque',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Jeongjaegu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yethereum],\n", + " 'name': 'alexwanng',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'JustinDrake',\n", + " 'values': [11]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'kswizzlek',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-solc],\n", + " 'name': 'pryce-turner',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'humboo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'voermx',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'charles-cooper',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'sandakersmann',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'binary-adam',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'jpeletier',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'AlexeyAkhunov',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'veox',\n", + " 'values': [9]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'SabraAS',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, m],\n", + " 'name': 'hcaw',\n", + " 'values': [1, 1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'caotic123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'zach-is-my-name',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'Arachnid',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'djrtwo',\n", + " 'values': [17]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ellowpaper],\n", + " 'name': 'EBGToo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Hilobrain',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [eb3.js],\n", + " 'name': 'Afzalshah38',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'nolash',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'eip-automerger',\n", + " 'values': [2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'ifdefelse',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'perlmutterlabs',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'vngkv123',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olc-js],\n", + " 'name': 'LogvinovLeon',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'stale[bot]',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'AnuragHydro',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'ryanio',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'jannikluhn',\n", + " 'values': [4, 2]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity-test-bytecode, olidity],\n", + " 'name': 'chriseth',\n", + " 'values': [20, 25]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'CrystalEyes7',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thereum-react-components],\n", + " 'name': 'marcgarreau',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'riusricardo',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ive],\n", + " 'name': 'FrankSzendzielarz',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'leonardoalt',\n", + " 'values': [7]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm, y-ssz],\n", + " 'name': 'hwwhww',\n", + " 'values': [1, 6]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'rahulvickysingh008',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'rauljordan',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'christianparpart',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [warm-dapps],\n", + " 'name': 'gitcoinbot',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-ssz],\n", + " 'name': 'Bhargavasomu',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'dilbydilby',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'haltman-at',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [y-evm],\n", + " 'name': 'SODAMFIA',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'timl206',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'terenc3t',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [o-ethereum],\n", + " 'name': 'Snetw',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-specs],\n", + " 'name': 'arnetheduck',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [yper],\n", + " 'name': 'jacqueswww',\n", + " 'values': [3]\n", + "}), Pie({\n", + " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [ist],\n", + " 'name': 'hamzaenaime',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [IPs],\n", + " 'name': 'PhABC',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [th2.0-pm],\n", + " 'name': 'zscole',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [olidity],\n", + " 'name': 'lookfirst',\n", + " 'values': [1]\n", + "}), Pie({\n", + " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", + " 'hoverinfo': 'label+percent+name',\n", + " 'labels': [thash],\n", + " 'name': 'gangnamtestnet',\n", + " 'values': [1]\n", + "})]\n" + ] + } + ], + "source": [ + "# converting userCont into format for multiple pie charts\n", + "\n", + "allUserConPies = []\n", + "numPies = len(users)\n", + "rootPie = math.ceil(math.sqrt(numPies)) # length of 2d matrix\n", + "counter = 0\n", + "\n", + "# we need a double for loop to obtain a 2d matrix of piecharts\n", + "for j in range(rootPie):\n", + " for i in range(rootPie):\n", + " current ={'labels': [], 'values': [], 'hoverinfo':'label+percent+name', 'name': '', 'domain': {'x':[], 'y':[]}, 'textinfo':''}\n", + " current['labels'] = list(userCont[userList[counter]].keys())\n", + " current['values'] = list(userCont[userList[counter]].values())\n", + " current['name'] = userList[counter]\n", + " current['domain'] = {'x': [i*(1/rootPie), (i+1)*(1/rootPie)-0.1], 'y':[j*1/rootPie, (j+1)*(1/rootPie)-0.1]}\n", + " current['textinfo'] = userList[counter]\n", + " uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'])\n", + "# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\n", + " allUserConPies.append(uCon)\n", + " counter+=1\n", + " if (counter >= len(userList)-1):\n", + " break\n", + " if(counter >= len(userList)-1):\n", + " break;\n", + " \n", + "print(allUserConPies)" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 13127, + "status": "ok", + "timestamp": 1527668812424, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "pg4HNsmA9_ww", + "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", + "\n", + "py.iplot(fig, filename='UserContributionTypesPies')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "hVAoYtABJ3N2" + }, + "source": [ + "### Looking at the time period in which Contributors are more active on GitHub" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 718, + "status": "ok", + "timestamp": 1527668813207, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "iBUVrFW8SylN", + "outputId": "b23075f1-c0c9-40ee-efc0-8fd115f1f2f3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" + ] + } + ], + "source": [ + "# reformatting workingTime into [{'x': dates, 'y': count, 'name': catName, 'type': bar}]\n", + "\n", + "workingCat = []\n", + "\n", + "for cat in workingTime:\n", + " c = {}\n", + " c['x'] = list(workingTime[cat].keys())\n", + " c['y'] = list(workingTime[cat].values())\n", + " c['name'] = cat\n", + " c['type'] = 'bar'\n", + " workingCat.append(c)\n", + " \n", + "print(workingCat)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "elOh4GdlUInJ" + }, + "source": [ + "### Stacked Bar chart to show proportion of activities in each category:\n", + "Early Bird: From 6am to before 12nn\n", + "\n", + "Midday: From 12nn to before 6pm\n", + "\n", + "Night Owl: Between 6pm and before 6am" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3654, + "status": "ok", + "timestamp": 1527668817025, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "Jzdczz0XPu4s", + "outputId": "07abcfdd-e6b1-4101-8d45-274ad35ce7b8" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# x is date, y is count, name is the category\n", + "\n", + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Category of Activity on GitHub'\n", + "};\n", + "py.iplot({'data': workingCat, 'layout': layout}, filename='workingCategory')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "pw_HZUafU2KD" + }, + "source": [ + "### Pie Chart to show proportion of each working category" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 809, + "status": "ok", + "timestamp": 1527668817857, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "q7A_-qq8U1ZX", + "outputId": "29d7dfc5-311f-4927-b366-3b394b40b754" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" + ] + } + ], + "source": [ + "# workingPie = ['label': [all the cats], 'values': [respective values for each cat]]\n", + "workingPie = {'label': [], 'values': []}\n", + "\n", + "for cat in workingTime:\n", + " workingPie['label'].append(cat)\n", + " workingPie['values'].append(len(workingTime[cat].values()))\n", + " \n", + "print(workingPie)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4316, + "status": "ok", + "timestamp": 1527668822306, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "-7sC2RKjVqjN", + "outputId": "a2d291cd-f81e-46b8-f1bf-efeec63487a6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "workCatPie = go.Pie(labels=workingPie['label'], values=workingPie['values'])\n", + "\n", + "py.iplot([workCatPie], filename='WorkingCategoryPie')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "KozOOOay7oZk" + }, + "source": [ + "### Stacked barcharts to see each unique user contributing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "JIG0UKy17tjR" + }, + "source": [ + "### To see each unique user by day" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3808, + "status": "ok", + "timestamp": 1527668826182, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "SSpt2CIXEgw8", + "outputId": "477973b9-4f49-401f-b5b3-7d6743f3fdd6" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Date'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Unique User Activity'\n", + "};\n", + "py.iplot({'data': past14user, 'layout': layout}, filename='activepast14days')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "__1RxqkV7wlw" + }, + "source": [ + "### To see each unique user by week" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 546 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 3566, + "status": "ok", + "timestamp": 1527668829836, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "aAD6xDu27nEN", + "outputId": "accbdbe4-6451-4cd5-edc4-e8218d14eaf9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "layout = {\n", + " 'xaxis': {'title': 'Week'},\n", + " 'yaxis': {'title': 'Count'},\n", + " 'barmode': 'relative',\n", + " 'title': 'Weekly User Activity'\n", + "};\n", + "py.iplot({'data': weeklystacked, 'layout': layout}, filename='weeklyactiveusers')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "fS3KVNcbiwly" + }, + "source": [ + "# 4. Putting Into Firebase" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "RyquX3cOnXxm" + }, + "source": [ + "### Link to firebase: https://amis-dashboard.firebaseio.com " + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 4246, + "status": "ok", + "timestamp": 1527668834171, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "KDHEsdPcz7ZX", + "outputId": "0bbbd916-ebaa-48f3-d601-117a7f8fb1b7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", + "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" + ] + } + ], + "source": [ + "# Install the firebase library\n", + "\n", + "!pip install python-firebase" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "ECHZXxiWOXDV" + }, + "outputs": [], + "source": [ + "from firebase import firebase\n", + "from firebase.firebase import FirebaseApplication\n", + "\n", + "yourFirebaseProjectId = 'amis-dashboard' \n", + "\n", + "# No authentication. You will need .write == true in your Firebase security rules. \n", + "# This should work after you change yourFirebaseProjectId above. \n", + "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "fO9Ld7JsOmKD" + }, + "outputs": [], + "source": [ + "# formatData function which takes data in the input data format in the form of a list of dictionaries with two keys x \n", + "# and y. It then converts it into the required format required by the charts CodeSandbox\n", + "\n", + "# Input data format [line,pie or bar charts]:\n", + "# -line: (x,y) - coordinates of points ordered in the list sequentially\n", + "# -bar: x - name of category, \n", + "# y - count of specific categories\n", + "# -pie: x - name of category\n", + "# y - count of specific category\n", + "#\n", + "# style = recharts or victory\n", + "# chartType = line, pie or bar\n", + "# title = title of chart\n", + "# yaxisLabel = y axis label of chart\n", + "# xaxisLabel = x axis label of chart\n", + "\n", + "# Note: Data edited and converted into a dictionary. Copied from jupyter notebook.\n", + "\n", + "def formatData(data,style,chartType,title,yaxisLabel,xaxisLabel):\n", + " ans = {}\n", + " ans['data']=list(data)\n", + " ans['style'] = style\n", + " ans['chartType'] = chartType\n", + " ans['title'] = title\n", + " ans['yaxisLabel'] = yaxisLabel\n", + " ans['xaxisLabel'] = xaxisLabel\n", + " \n", + " if style=='victory':\n", + " if chartType == 'line' or chartType =='pie' or chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return {}\n", + "\n", + " elif style=='recharts':\n", + " if chartType == 'line':\n", + " return ans\n", + " elif chartType == 'pie':\n", + " pieData = []\n", + " for d in data:\n", + " x = d['x']\n", + " y = d['y']\n", + " pieData.append({'name':x, 'value':y})\n", + " ans['data'] = pieData\n", + " return ans\n", + " elif chartType == 'bar':\n", + " return ans\n", + " else:\n", + " return 'ERROR'" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + }, + "base_uri": "https://localhost:8080/", + "height": 55 + }, + "colab_type": "code", + "executionInfo": { + "elapsed": 709, + "status": "ok", + "timestamp": 1527668836813, + "user": { + "displayName": "Amisolution", + "photoUrl": "https://avatars2.githubusercontent.com/u/25143883?v=4", + "userId": "000000000000000000000" + }, + "user_tz": -480 + }, + "id": "FGUejipLQJW6", + "outputId": "b7e59c8a-617d-458f-84a8-d895c9c47d4e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" + ] + } + ], + "source": [ + "# we need the data in the form of {{'x': xvalue, 'y': yvalue} , other pairs of xy values}\n", + "# e_types is the new dataset that we are going to use\n", + "\n", + "e_types = []\n", + "temp = {}\n", + "\n", + "for key in etypes.keys():\n", + " temp['x'] = key\n", + " temp['y'] = etypes[key]\n", + " e_types.append(temp)\n", + " temp = {}\n", + " \n", + "print(e_types)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "autoexec": { + "startup": false, + "wait_interval": 0 + } + }, + "colab_type": "code", + "id": "lV7SreC7CwW4" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "default_view": {}, + "name": "amis-github-ethereum-dashboard", + "provenance": [ + { + "file_id": "1CXafj_kN4V4r-YDBDQtNFxbDOVZ9JLde", + "timestamp": 1527053621420 + } + ], + "version": "0.3.2", + "views": {} + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.7" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} From e573c0d779447a0422f3abe8b61ae8cc2b9bfd03 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 12:56:12 +0100 Subject: [PATCH 29/98] Add files via upload --- amis-github-ethereum-dashboard.ipynb | 2394 +++++++++++--------------- 1 file changed, 1014 insertions(+), 1380 deletions(-) diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb index 738221e..48f741c 100644 --- a/amis-github-ethereum-dashboard.ipynb +++ b/amis-github-ethereum-dashboard.ipynb @@ -19,7 +19,7 @@ "\n", "3. Plotting charts using Plotly\n", "\n", - "4. Putting into Firebase\n", + "4. Putting result into Firebase\n", "\n", "\n", "---\n", @@ -38,50 +38,9 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pandas in /srv/conda/lib/python3.6/site-packages (0.23.4)\n", - "Requirement already satisfied: numpy>=1.9.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (1.15.4)\n", - "Requirement already satisfied: pytz>=2011k in /srv/conda/lib/python3.6/site-packages (from pandas) (2018.7)\n", - "Requirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", - "Requirement already satisfied: sklearn in /srv/conda/lib/python3.6/site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in /srv/conda/lib/python3.6/site-packages (from sklearn) (0.20.1)\n", - "Requirement already satisfied: scipy>=0.13.3 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.1.0)\n", - "Requirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", - "Requirement already satisfied: matplotlib in /srv/conda/lib/python3.6/site-packages (3.0.2)\n", - "Requirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", - "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.3.0)\n", - "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.0.1)\n", - "Requirement already satisfied: cycler>=0.10 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (0.10.0)\n", - "Requirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0)\n", - "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", - "Requirement already satisfied: plotly in /srv/conda/lib/python3.6/site-packages (3.4.2)\n", - "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", - "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", - "Requirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", - "Requirement already satisfied: retrying>=1.3.3 in /srv/conda/lib/python3.6/site-packages (from plotly) (1.3.3)\n", - "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", - "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", - "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", - "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", - "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", - "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", - "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", - "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", - "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n" - ] - } - ], + "outputs": [], "source": [ "!pip install pandas\n", "!pip install sklearn\n", @@ -91,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 2, "metadata": { "colab": { "autoexec": { @@ -121,7 +80,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038353', 'type': 'CreateEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'ref': 'v5.0.0-alpha.1', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:02:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751038019', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135861899, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '7266346034139e946bb07191bae6ef5542b8d4bd', 'before': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'commits': [{'sha': '7266346034139e946bb07191bae6ef5542b8d4bd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Bump version: 4.7.1 → 5.0.0-alpha.1', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7266346034139e946bb07191bae6ef5542b8d4bd'}]}, 'public': True, 'created_at': '2018-12-13T21:02:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751009572', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T20:57:09Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447118021', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447118021', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447118021, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzExODAyMQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:57:09Z', 'updated_at': '2018-12-13T20:57:09Z', 'author_association': 'CONTRIBUTOR', 'body': '>Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root.\\r\\n\\r\\nAm I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\n>I almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\\r\\n\\r\\nSounds very exciting! :+1: \\r\\n\\r\\nBut, since this would be a totally new syncing scheme, there are no nodes to seed this. \\r\\nWhere my initial intend was to create a state sync that can benefit from the existing parity nodes that provide warp sync chunks, this would be something entirely new that needs to be adopted (or am I misinterpreting this?)\\r\\n\\r\\nBut if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)'}}, 'public': True, 'created_at': '2018-12-13T20:57:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005854', 'type': 'GollumEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'pages': [{'page_name': 'Constantinople-Progress-Tracker', 'title': 'Constantinople Progress Tracker', 'summary': None, 'action': 'edited', 'sha': '156706e4717a0b44e7045e69b4e7ef10561436c3', 'html_url': 'https://github.com/ethereum/pm/wiki/Constantinople-Progress-Tracker'}]}, 'public': True, 'created_at': '2018-12-13T20:56:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751005527', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135846224, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'before': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'commits': [{'sha': '6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'v5.0.0-alpha.1 release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/6e86bd48a431b44de3b68b5830a0ce5b1fd9a7fa'}]}, 'public': True, 'created_at': '2018-12-13T20:56:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750940444', 'type': 'WatchEvent', 'actor': {'id': 23662997, 'login': 'SabraAS', 'display_login': 'SabraAS', 'gravatar_id': '', 'url': 'https://api.github.com/users/SabraAS', 'avatar_url': 'https://avatars.githubusercontent.com/u/23662997?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:44:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750933538', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135809966, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'before': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'commits': [{'sha': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'Dependency handling of BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/1ed1030c3496f6a0c0699037929d9c316a9915f4'}]}, 'public': True, 'created_at': '2018-12-13T20:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750926036', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.20', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:41:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750925816', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135806263, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0af9c7458d13a08c887546137bf7ab5773675020', 'before': '68026a4524108f8840aa3602f6205355055a9e4a', 'commits': [{'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.20', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0af9c7458d13a08c887546137bf7ab5773675020'}]}, 'public': True, 'created_at': '2018-12-13T20:41:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750917244', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135801765, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/ethereumProvider', 'head': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'before': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'commits': [{'sha': 'a23f1525b38ed729566f288852fb61fa92a37bfc', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'EthereumProviderAdapter implemented and BatchRequest fixed', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/a23f1525b38ed729566f288852fb61fa92a37bfc'}, {'sha': 'b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProvidersModuleFactory and ProviderAdapterResolver updated because of the EthereumProvider', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/b6b7f44fdd27af508b2ad099233fd6ebfbe11a0e'}]}, 'public': True, 'created_at': '2018-12-13T20:40:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750907320', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:38:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750904178', 'type': 'WatchEvent', 'actor': {'id': 22268516, 'login': 'caotic123', 'display_login': 'caotic123', 'gravatar_id': '', 'url': 'https://api.github.com/users/caotic123', 'avatar_url': 'https://avatars.githubusercontent.com/u/22268516?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:37:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750886479', 'type': 'WatchEvent', 'actor': {'id': 4981781, 'login': 'hcaw', 'display_login': 'hcaw', 'gravatar_id': '', 'url': 'https://api.github.com/users/hcaw', 'avatar_url': 'https://avatars.githubusercontent.com/u/4981781?'}, 'repo': {'id': 69717712, 'name': 'ethereum/pm', 'url': 'https://api.github.com/repos/ethereum/pm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750884335', 'type': 'WatchEvent', 'actor': {'id': 16063092, 'login': 'zach-is-my-name', 'display_login': 'zach-is-my-name', 'gravatar_id': '', 'url': 'https://api.github.com/users/zach-is-my-name', 'avatar_url': 'https://avatars.githubusercontent.com/u/16063092?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T20:34:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750861019', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.37', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:29:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750860851', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135772889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68026a4524108f8840aa3602f6205355055a9e4a', 'before': '4060160698f8a6738280a1adcd606b7c72ebe325', 'commits': [{'sha': '68026a4524108f8840aa3602f6205355055a9e4a', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.36 → 0.2.0-alpha.37', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/68026a4524108f8840aa3602f6205355055a9e4a'}]}, 'public': True, 'created_at': '2018-12-13T20:29:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750846301', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T20:26:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447109149', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447109149', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447109149, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwOTE0OQ==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:26:35Z', 'updated_at': '2018-12-13T20:26:35Z', 'author_association': 'CONTRIBUTOR', 'body': \"@fubuloubu What do you mean by you have default args already? What I was suggesting was a bit different than the language just supporting default args, the idea was a built-in function that allows you to easily extend an array of length A to length B.\\r\\n\\r\\nHere's a bit of example code to clarify:\\r\\n\\r\\n```python\\r\\n@private\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(4):\\r\\n if bar[i] > m:\\r\\n m = bar[i]\\r\\n return m\\r\\n\\r\\n@public\\r\\ndef foobar() -> uint256:\\r\\n a: uint256[2] = [1, 2]\\r\\n b: uint256[4] = extend(a, 2)\\r\\n m: uint256 = self.foo(b)\\r\\n return m\\r\\n```\\r\\n\\r\\nHowever, given the use case you just described, I'm not sure how optimal my proposal is.\"}}, 'public': True, 'created_at': '2018-12-13T20:26:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823629', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.36', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:22:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750823352', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135753655, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '4060160698f8a6738280a1adcd606b7c72ebe325', 'before': '30779883444ff508c7975c5dbd5e52221f7876ec', 'commits': [{'sha': '07a5db5f63ad3cd589ce90b979e1f3330730125d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Note the busted versions in the release notes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/07a5db5f63ad3cd589ce90b979e1f3330730125d'}, {'sha': '4060160698f8a6738280a1adcd606b7c72ebe325', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.35 → 0.2.0-alpha.36', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4060160698f8a6738280a1adcd606b7c72ebe325'}]}, 'public': True, 'created_at': '2018-12-13T20:22:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806678', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714', 'pull_request_review_id': 184849388, 'id': 241547714, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzcxNA==', 'diff_hunk': '@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, \\'serialize\\') and hasattr(obj, \\'deserialize\\')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\\n+ return uint32_list\\n+ else:\\n+ try:\\n+ element_sedes = infer_sedes(first_element)\\n+ except TypeError:\\n+ raise TypeError(\\n+ \"Could not infer sedes for list elements\",\\n+ obj\\n+ )\\n+ else:\\n+ return List(element_sedes)\\n+\\n+\\n def infer_sedes(obj):\\n \"\"\"\\n Try to find a sedes objects suitable for a given Python object.\\n \"\"\"\\n if isinstance(obj, bool):\\n return boolean\\n elif isinstance(obj, int):\\n- raise SerializationError(\\n+ raise TypeError(\\n \\'uint sedes object or uint string needs to be specified for ints\\',\\n obj\\n )\\n+ elif isinstance(obj, Iterable):', 'path': 'ssz/utils.py', 'position': 53, 'original_position': 53, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'another place for `Sequence` over `Iterable`', 'created_at': '2018-12-13T20:18:24Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547714'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547714'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806675', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632', 'pull_request_review_id': 184849388, 'id': 241547632, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0NzYzMg==', 'diff_hunk': \"@@ -15,17 +22,38 @@ def is_sedes(obj):\\n return hasattr(obj, 'serialize') and hasattr(obj, 'deserialize')\\n \\n \\n+def infer_list_sedes(obj):\\n+ try:\\n+ first_element, iterator = peek(obj)\\n+ except StopIteration:\\n+ # For empty lists we can use any element sedes.\\n+ # Using uint32_list here as the default\", 'path': 'ssz/utils.py', 'position': 27, 'original_position': 27, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Since this is arbitrary, what do you think about having a special case sedes which *cannot* actually be used to prevent accidental mistakes/weirdness. Something like `EmptyListSedes` which just always returns an empty list....', 'created_at': '2018-12-13T20:18:07Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241547632'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241547632'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:18:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750806671', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881', 'pull_request_review_id': 184849388, 'id': 241546881, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU0Njg4MQ==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'If you change this to use `collections.abc.Sequence` then it will disallow non-ordered iterable types like `set` or `dict`. In addition, you should potentially disallow all of `bytes,bytearray,str` since they will be *interpreted* as an iterable of their individual characters which is almost definitely not the desired/expected behavior.', 'created_at': '2018-12-13T20:15:28Z', 'updated_at': '2018-12-13T20:19:03Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241546881'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241546881'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T20:19:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T20:15:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792456', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'push_id': 3135737927, 'size': 11, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'before': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'commits': [{'sha': 'a48bf1163d4937a190f74a44d7bfea3130cc8ed3', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/a48bf1163d4937a190f74a44d7bfea3130cc8ed3'}, {'sha': 'efb69a5e6ecbc724bd92732693c475048b01802f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/efb69a5e6ecbc724bd92732693c475048b01802f'}, {'sha': 'eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'TCP socket + libcurl', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/eb95f5ea6caf08dcfe1fc87fd68c13b7476f621c'}, {'sha': 'd1e869ed9965119db87259d4cfc71feadf0ff983', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'rpc tests WIP', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d1e869ed9965119db87259d4cfc71feadf0ff983'}, {'sha': '70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'some more RPC format tests', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/70fcb5b0e8662ecb596b8d3869fdc6ff01677b3b'}, {'sha': 'f1d21a91b884d384d21d56deab4abfbdf812c199', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'fix error output', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/f1d21a91b884d384d21d56deab4abfbdf812c199'}, {'sha': 'd264aefcc9d1f489c6016083e97dafa2a84d5847', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on different clients wip\\nproof of concept of running tests on different clients\\nthat configured in the test folder', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/d264aefcc9d1f489c6016083e97dafa2a84d5847'}, {'sha': '7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'run tests on multiple client configs', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/7c8c4fb2f6a2c1209021cab4d23fe7b7124f2c54'}, {'sha': '093810d5af5b10ffd11262b98138c4583674960c', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'support new test hash calculation', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/093810d5af5b10ffd11262b98138c4583674960c'}, {'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'update retesteth to work on latest aleth', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}, {'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #21 from ethereum/prototype\\n\\nPrototype', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/retesteth/commits/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1'}]}, 'public': True, 'created_at': '2018-12-13T20:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750792321', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'closed', 'number': 21, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21', 'id': 200942186, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjAwOTQyMTg2', 'html_url': 'https://github.com/ethereum/retesteth/pull/21', 'diff_url': 'https://github.com/ethereum/retesteth/pull/21.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/21.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21', 'number': 21, 'state': 'closed', 'locked': False, 'title': 'Prototype', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'goals:\\r\\n - make RPC commands tests\\r\\n - support HTTP RPC socket\\r\\n - move client options to configuration files\\r\\n', 'created_at': '2018-07-12T09:36:06Z', 'updated_at': '2018-12-13T20:16:23Z', 'closed_at': '2018-12-13T20:16:23Z', 'merged_at': '2018-12-13T20:16:23Z', 'merge_commit_sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'head': {'label': 'ethereum:prototype', 'ref': 'prototype', 'sha': 'dbffe73144d1c255c7fc5c12f16e7db7562fdd88', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '83f98e0c1eecd30f5084d067277649ba5d782be6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-11-22T06:24:27Z', 'pushed_at': '2018-12-13T20:16:23Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 280, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 13, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 13, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/21'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/21/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/21/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/dbffe73144d1c255c7fc5c12f16e7db7562fdd88'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 10, 'additions': 1151, 'deletions': 420, 'changed_files': 23}}, 'public': True, 'created_at': '2018-12-13T20:16:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750785256', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135734183, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '30779883444ff508c7975c5dbd5e52221f7876ec', 'before': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'commits': [{'sha': '30779883444ff508c7975c5dbd5e52221f7876ec', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fix recursive folder manifest include', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/30779883444ff508c7975c5dbd5e52221f7876ec'}]}, 'public': True, 'created_at': '2018-12-13T20:15:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750771752', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587', 'id': 390465330, 'node_id': 'MDU6SXNzdWUzOTA0NjUzMzA=', 'number': 1587, 'title': 'Improve the release (notes) process', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T00:19:49Z', 'updated_at': '2018-12-13T20:12:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Right now, generating the release notes is pretty manual and painful, especially with all the different merge styles we're using (merge commit, squash merge, rebase merge).\\r\\n\\r\\nCome up with a better system, which may involve some or all of:\\r\\n- changing our standards for merging PRs\\r\\n- changing how we writing commits\\r\\n- changing how we title PRs\\r\\n- hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447104976', 'html_url': 'https://github.com/ethereum/py-evm/issues/1587#issuecomment-447104976', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1587', 'id': 447104976, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwNDk3Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:12:34Z', 'updated_at': '2018-12-13T20:12:34Z', 'author_association': 'CONTRIBUTOR', 'body': '> * hacking up some scripts to hit github and generate (a draft of) release notes based on the merged PRs since the last release\\r\\n\\r\\nI vaguely remember some project that had a bot to check the first comment (preamble) of a PR for a specifically-titled section with a one-line message, to be included in the change log (similar to how I\\'ve done here: https://github.com/ethereum/web3.py/pull/1139). The project maintainer would then run a script to extract them from GitHub.\\r\\n\\r\\nThat\\'s a bit NIH, I don\\'t remember what project it was, so can\\'t find out whether it still works for them, and how well.\\r\\n\\r\\n-----\\r\\n\\r\\n> * changing how we writing commits\\r\\n\\r\\nYou probably know of the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) initiative; among other things, it has:\\r\\n\\r\\n> Using commit log diffs as changelogs is a bad idea: they\\'re full of noise. Things like merge commits, commits with obscure titles, documentation changes, etc.\\r\\n> \\r\\n> The purpose of a commit is to document a step in the evolution of the source code. Some projects clean up commits, some don\\'t.\\r\\n> \\r\\n> The purpose of a changelog entry is to document the noteworthy difference, often across multiple commits, to communicate them clearly to end users.\\r\\n\\r\\nI find this true; and projects that take the \"dump commits\" approach to have unusable change logs - that help no one but the developers to mark off a check box on their \"socially responsible coding\" check list. (It\\'s easy to `git log`; for those who can\\'t, there\\'s the \"Commits\" github tab.)\\r\\n\\r\\nPersonally, I\\'ve [tried to follow KaCL in `krakenex`](https://github.com/veox/python3-krakenex/blob/master/CHANGELOG.rst). It\\'s a tiny package, and yet still it\\'s a lot of work (but maybe I let OCD run amok). I\\'m also likely biased; but I think that it serves as part of documentation, and hope that\\'s one of the reasons I\\'ve _never_ gotten requests of the \"how do I upgrade?..\" variety.\\r\\n\\r\\n-----\\r\\n\\r\\nEditing a file like KaCL suggests works well for low-PR-count projects, but otherwise it likely to produce too many merge conflicts.\\r\\n\\r\\nFor this reason, [GitLab generates their change log from contributor-provided snippets](https://docs.gitlab.com/ce/development/changelog.html). The [reasoning section](https://docs.gitlab.com/ce/development/changelog.html#history-and-reasoning) is at the very end, but highlights a few rakes, so not worth skipping.'}}, 'public': True, 'created_at': '2018-12-13T20:12:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750755912', 'type': 'PushEvent', 'actor': {'id': 17865, 'login': 'Arachnid', 'display_login': 'Arachnid', 'gravatar_id': '', 'url': 'https://api.github.com/users/Arachnid', 'avatar_url': 'https://avatars.githubusercontent.com/u/17865?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135718732, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'before': '49358eb32ad371114eebe53b2622657016cca276', 'commits': [{'sha': '8a7a942c66d29083cd9afc25ea14add10fb81d23', 'author': {'email': 'arachnid@notdot.net', 'name': 'Nick Johnson'}, 'message': 'Update eip-1577.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/8a7a942c66d29083cd9afc25ea14add10fb81d23'}]}, 'public': True, 'created_at': '2018-12-13T20:09:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750747379', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'id': 390839014, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'number': 315, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:07:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch'}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447103506', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#issuecomment-447103506', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'id': 447103506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEwMzUwNg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T20:07:59Z', 'updated_at': '2018-12-13T20:07:59Z', 'author_association': 'CONTRIBUTOR', 'body': \"wasn't quite sure how I wanted to do the custody bit. putting this up for review and will do the custody bit in another PR\"}}, 'public': True, 'created_at': '2018-12-13T20:07:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745683', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.19', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T20:07:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750745470', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135713330, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'before': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'commits': [{'sha': '8d902b4f3b56b903a788a82548a77a4537ab46f2', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'add missing json genesis files to release', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8d902b4f3b56b903a788a82548a77a4537ab46f2'}, {'sha': '150ca02546af76f8c9d7f3c929f08b1a00b40361', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Update release notes to alpha 19', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/150ca02546af76f8c9d7f3c929f08b1a00b40361'}]}, 'public': True, 'created_at': '2018-12-13T20:07:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750739839', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 315, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T20:06:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:03:41Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 41, 'deletions': 10, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T20:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750724289', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135702277, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/more-ssz-objects', 'head': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'before': 'f30d40485610c13c0589ae9202fff9bc401b9a78', 'commits': [{'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add proofofpossessiondata ssz object', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}]}, 'public': True, 'created_at': '2018-12-13T20:03:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750698774', 'type': 'IssuesEvent', 'actor': {'id': 673875, 'login': 'EBGToo', 'display_login': 'EBGToo', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'avatar_url': 'https://avatars.githubusercontent.com/u/673875?'}, 'repo': {'id': 18354202, 'name': 'ethereum/yellowpaper', 'url': 'https://api.github.com/repos/ethereum/yellowpaper'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723', 'repository_url': 'https://api.github.com/repos/ethereum/yellowpaper', 'labels_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/comments', 'events_url': 'https://api.github.com/repos/ethereum/yellowpaper/issues/723/events', 'html_url': 'https://github.com/ethereum/yellowpaper/issues/723', 'id': 390836200, 'node_id': 'MDU6SXNzdWUzOTA4MzYyMDA=', 'number': 723, 'title': 'Inconsistent Description of PoW Function', 'user': {'login': 'EBGToo', 'id': 673875, 'node_id': 'MDQ6VXNlcjY3Mzg3NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/673875?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/EBGToo', 'html_url': 'https://github.com/EBGToo', 'followers_url': 'https://api.github.com/users/EBGToo/followers', 'following_url': 'https://api.github.com/users/EBGToo/following{/other_user}', 'gists_url': 'https://api.github.com/users/EBGToo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/EBGToo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/EBGToo/subscriptions', 'organizations_url': 'https://api.github.com/users/EBGToo/orgs', 'repos_url': 'https://api.github.com/users/EBGToo/repos', 'events_url': 'https://api.github.com/users/EBGToo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/EBGToo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:59:13Z', 'updated_at': '2018-12-13T19:59:13Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'In section 4.3.4 at equation 49 the PoW function is described as: \"The nonce, Hn, must satisfy the relations: (...) (n, m) = PoW(Hn, Hn, d). Where Hn is the new block’s header H, but without the nonce and mix-hash components\"\\r\\n\\r\\nIn section 11.5 at equation 175 we have \"More formally, the proof-of-work function takes the form of PoW: (...) (m,n) = PoW(Hn, Hn, d).\\r\\n\\r\\n**Is it (m,n) or (n,m)?**\\r\\n\\r\\nIn Appendix J near equation 319 \"With Hn being the hash of the header without the nonce\".\\r\\n\\r\\n**Does Hn have the mix-hash components removed or not? Is it a block header or the hash of a block header?**\\r\\n\\r\\nAnd, perhaps not a documentation error but also near equation 319: \"The PoW-function returns an array with the compressed mix as its first item and the Keccak-256 hash of the concatenation of the compressed mix with the seed hash as the second item\"\\r\\n\\r\\n**Which one of these two terms is a number \\'n\\' such that (n <= 2^256/Hd)?**\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:59:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677580', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'trinity-v0.1.0-alpha.18', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750677389', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135678131, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'before': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'commits': [{'sha': 'efce4981ff095b0d9d6249974093fb63a421c39e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Fixing up some local requirements for releasing', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/efce4981ff095b0d9d6249974093fb63a421c39e'}, {'sha': 'a52e5446d85461e751ac0a83b3def77a95132c2b', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'trinity bump: 0.1.0-alpha.17 -> 0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/a52e5446d85461e751ac0a83b3def77a95132c2b'}]}, 'public': True, 'created_at': '2018-12-13T19:55:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750652563', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'more-ssz-objects', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:51:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750632079', 'type': 'WatchEvent', 'actor': {'id': 30834921, 'login': 'Hilobrain', 'display_login': 'Hilobrain', 'gravatar_id': '', 'url': 'https://api.github.com/users/Hilobrain', 'avatar_url': 'https://avatars.githubusercontent.com/u/30834921?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750624296', 'type': 'WatchEvent', 'actor': {'id': 40624294, 'login': 'Afzalshah38', 'display_login': 'Afzalshah38', 'gravatar_id': '', 'url': 'https://api.github.com/users/Afzalshah38', 'avatar_url': 'https://avatars.githubusercontent.com/u/40624294?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:46:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618357', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135647744, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9e74043a1737b1a792e259ef93c995e0634df086', 'before': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'commits': [{'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'move ejectiosn to per-epoch. fix a couple bugs in validator status change functions (#314)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9e74043a1737b1a792e259ef93c995e0634df086'}]}, 'public': True, 'created_at': '2018-12-13T19:45:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750618236', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'closed', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T19:45:09Z', 'closed_at': '2018-12-13T19:45:09Z', 'merged_at': '2018-12-13T19:45:09Z', 'merge_commit_sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T19:45:09Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1012, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:45:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750610106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046', 'pull_request_review_id': 184836665, 'id': 241537046, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzNzA0Ng==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Yes, we don't have to address this now. I guess it would be nice to address this at least before any release that declares stable beacon support though.\", 'created_at': '2018-12-13T19:43:43Z', 'updated_at': '2018-12-13T19:43:43Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241537046'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241537046'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T19:43:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79c55eb0e61e61f33864a948fc1c892e1fc969dc', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:34:32Z', 'pushed_at': '2018-12-13T19:34:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6597, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:43:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750608670', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135642721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'before': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'commits': [{'sha': 'c10aa2e7a4327c96a6d8f593ad492bad4d56964d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'footer cleanup', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/c10aa2e7a4327c96a6d8f593ad492bad4d56964d'}]}, 'public': True, 'created_at': '2018-12-13T19:43:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750596275', 'type': 'DeleteEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:41:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595682', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'push_id': 3135636099, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'before': '8fc776e186deacb96855d6e623563f1e70e8688c', 'commits': [{'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Clean up default text and stuff', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}, {'sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'author': {'email': 'piper@pipermerriam.com', 'name': 'Piper Merriam'}, 'message': 'Merge pull request #5 from ethereum/piper/update-main-site\\n\\nClean up default text and stuff', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits/97eec06feff5f42393587ad7a0ca79ce5572d376'}]}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750595619', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'closed', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'closed', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:41:14Z', 'closed_at': '2018-12-13T19:41:14Z', 'merged_at': '2018-12-13T19:41:14Z', 'merge_commit_sha': '97eec06feff5f42393587ad7a0ca79ce5572d376', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:41:14Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 4, 'license': None, 'forks': 0, 'open_issues': 4, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:41:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750593762', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'action': 'opened', 'number': 5, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5', 'id': 238507926, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTA3OTI2', 'html_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5', 'diff_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-blog/pull/5.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5', 'number': 5, 'state': 'open', 'locked': False, 'title': 'Clean up default text and stuff', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Cleans up a bunch of default text.', 'created_at': '2018-12-13T19:40:56Z', 'updated_at': '2018-12-13T19:40:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d', 'head': {'label': 'ethereum:piper/update-main-site', 'ref': 'piper/update-main-site', 'sha': 'd7f662ac3a7db96a4614ce5da4bf390979f8377d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '8fc776e186deacb96855d6e623563f1e70e8688c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 158259123, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTgyNTkxMjM=', 'name': 'snake-charmers-blog', 'full_name': 'ethereum/snake-charmers-blog', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-blog', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-blog/deployments', 'created_at': '2018-11-19T16:44:52Z', 'updated_at': '2018-11-29T06:41:40Z', 'pushed_at': '2018-12-13T19:40:43Z', 'git_url': 'git://github.com/ethereum/snake-charmers-blog.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-blog.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-blog.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-blog', 'homepage': None, 'size': 1084, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'CSS', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': None, 'forks': 0, 'open_issues': 5, 'watchers': 3, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-blog/pull/5'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/issues/5/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/pulls/5/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-blog/statuses/d7f662ac3a7db96a4614ce5da4bf390979f8377d'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 18, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-13T19:40:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750592416', 'type': 'CreateEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 158259123, 'name': 'ethereum/snake-charmers-blog', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-blog'}, 'payload': {'ref': 'piper/update-main-site', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:40:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750581100', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:38:44Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447094051', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447094051', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447094051, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5NDA1MQ==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:38:44Z', 'updated_at': '2018-12-13T19:38:44Z', 'author_association': 'CONTRIBUTOR', 'body': ':+1: on the Constantinople connection.'}}, 'public': True, 'created_at': '2018-12-13T19:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750568880', 'type': 'IssueCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T19:36:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447093329', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447093329', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447093329, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MzMyOQ==', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:36:29Z', 'updated_at': '2018-12-13T19:36:29Z', 'author_association': 'CONTRIBUTOR', 'body': \"You are particularly here thinking about the `ResetWithLength` I presume? @zelig do I remember wrongly, or didn't you say earlier that you wanted to get rid of that? I tend to agree, or at least that a mere `Reset()` is exposed.\\r\\n\\r\\nAs far as the other parts of the interface are concerned, I'd also like to hear why they should stay if they are not in use.\"}}, 'public': True, 'created_at': '2018-12-13T19:36:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557578', 'type': 'CreateEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'ref': 'v0.2.0-alpha.35', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750557544', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135617202, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'before': '55845dd318b1198a2889df0fb80b2195d5348d93', 'commits': [{'sha': '170bfc3ef65c19367dc009ac87ad6471814bf5c7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Trinity release notes for v0.1.0-alpha.18', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/170bfc3ef65c19367dc009ac87ad6471814bf5c7'}, {'sha': '1ac4b7f93fafffa252dbebea6c08975228e19dd7', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': \"On linux: display built doc path, don't open it\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ac4b7f93fafffa252dbebea6c08975228e19dd7'}, {'sha': '81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Bump version: 0.2.0-alpha.34 → 0.2.0-alpha.35', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/81f89bc5e8cae6c1a75b5a480fe114d32a4b98d1'}]}, 'public': True, 'created_at': '2018-12-13T19:34:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750555358', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:34:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092504', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092504', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092504, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjUwNA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:34:07Z', 'updated_at': '2018-12-13T19:34:07Z', 'author_association': 'MEMBER', 'body': 'or Elpis Kesaratsian from https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T19:34:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750550181', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:33:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447092176', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447092176', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447092176, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MjE3Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:33:11Z', 'updated_at': '2018-12-13T19:33:11Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd suggest https://en.wikipedia.org/wiki/Malala_Yousafzai :)\"}}, 'public': True, 'created_at': '2018-12-13T19:33:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750548465', 'type': 'PushEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'push_id': 3135612511, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49358eb32ad371114eebe53b2622657016cca276', 'before': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'commits': [{'sha': '49358eb32ad371114eebe53b2622657016cca276', 'author': {'email': 'ifdefelse@protonmail.com', 'name': 'ifdefelse'}, 'message': \"Automatically merged updates to draft EIP(s) 1057\\n\\n\\nHi, I'm a bot! This change was automatically merged because:\\n\\n - It only modifies existing Draft or Last Call EIP(s)\\n - The PR was approved or written by at least one author of each modified EIP\\n - The build is passing\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/EIPs/commits/49358eb32ad371114eebe53b2622657016cca276'}]}, 'public': True, 'created_at': '2018-12-13T19:32:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750547113', 'type': 'PullRequestEvent', 'actor': {'id': 38047446, 'login': 'eip-automerger', 'display_login': 'eip-automerger', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'avatar_url': 'https://avatars.githubusercontent.com/u/38047446?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'closed', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'closed', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:32:38Z', 'closed_at': '2018-12-13T19:32:38Z', 'merged_at': '2018-12-13T19:32:38Z', 'merge_commit_sha': '49358eb32ad371114eebe53b2622657016cca276', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T19:32:38Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 423, 'license': None, 'forks': 1267, 'open_issues': 423, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'eip-automerger', 'id': 38047446, 'node_id': 'MDQ6VXNlcjM4MDQ3NDQ2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/38047446?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/eip-automerger', 'html_url': 'https://github.com/eip-automerger', 'followers_url': 'https://api.github.com/users/eip-automerger/followers', 'following_url': 'https://api.github.com/users/eip-automerger/following{/other_user}', 'gists_url': 'https://api.github.com/users/eip-automerger/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/eip-automerger/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/eip-automerger/subscriptions', 'organizations_url': 'https://api.github.com/users/eip-automerger/orgs', 'repos_url': 'https://api.github.com/users/eip-automerger/repos', 'events_url': 'https://api.github.com/users/eip-automerger/events{/privacy}', 'received_events_url': 'https://api.github.com/users/eip-automerger/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:32:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750539697', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985', 'pull_request_review_id': 184831302, 'id': 241532985, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUzMjk4NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This was an oversight. It shouldn't have been there - oops.\", 'created_at': '2018-12-13T19:31:17Z', 'updated_at': '2018-12-13T19:31:18Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241532985'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241532985'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:31:18Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:15:19Z', 'pushed_at': '2018-12-13T19:15:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:31:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750531472', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T19:29:53Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447091056', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447091056', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447091056, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA5MTA1Ng==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:29:53Z', 'updated_at': '2018-12-13T19:29:53Z', 'author_association': 'CONTRIBUTOR', 'body': '@carver Heh, yeah, I thought that \"bad\" is not exactly \"badass\". q:D\\r\\n\\r\\nI know of no one else off the top of my head. I\\'ll take a look, but let that not stop you from proceeding as planned.'}}, 'public': True, 'created_at': '2018-12-13T19:29:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750479866', 'type': 'PullRequestEvent', 'actor': {'id': 38484532, 'login': 'ifdefelse', 'display_login': 'ifdefelse', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'avatar_url': 'https://avatars.githubusercontent.com/u/38484532?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'opened', 'number': 1657, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657', 'id': 238502371, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTAyMzcx', 'html_url': 'https://github.com/ethereum/EIPs/pull/1657', 'diff_url': 'https://github.com/ethereum/EIPs/pull/1657.diff', 'patch_url': 'https://github.com/ethereum/EIPs/pull/1657.patch', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657', 'number': 1657, 'state': 'open', 'locked': False, 'title': 'Update EIP-1057 to v0.9.2 spec', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Update EIP to match latest version of the spec', 'created_at': '2018-12-13T19:20:44Z', 'updated_at': '2018-12-13T19:20:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'head': {'label': 'ifdefelse:master', 'ref': 'master', 'sha': 'b7e35f70807e411a6e69bd98cd7c5ed28c40c96f', 'user': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 132054891, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzIwNTQ4OTE=', 'name': 'EIPs', 'full_name': 'ifdefelse/EIPs', 'private': False, 'owner': {'login': 'ifdefelse', 'id': 38484532, 'node_id': 'MDQ6VXNlcjM4NDg0NTMy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/38484532?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ifdefelse', 'html_url': 'https://github.com/ifdefelse', 'followers_url': 'https://api.github.com/users/ifdefelse/followers', 'following_url': 'https://api.github.com/users/ifdefelse/following{/other_user}', 'gists_url': 'https://api.github.com/users/ifdefelse/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ifdefelse/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ifdefelse/subscriptions', 'organizations_url': 'https://api.github.com/users/ifdefelse/orgs', 'repos_url': 'https://api.github.com/users/ifdefelse/repos', 'events_url': 'https://api.github.com/users/ifdefelse/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ifdefelse/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ifdefelse/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/ifdefelse/EIPs', 'forks_url': 'https://api.github.com/repos/ifdefelse/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ifdefelse/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ifdefelse/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ifdefelse/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ifdefelse/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ifdefelse/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ifdefelse/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ifdefelse/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ifdefelse/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ifdefelse/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ifdefelse/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ifdefelse/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ifdefelse/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ifdefelse/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ifdefelse/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ifdefelse/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ifdefelse/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ifdefelse/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ifdefelse/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ifdefelse/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ifdefelse/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ifdefelse/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ifdefelse/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ifdefelse/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ifdefelse/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ifdefelse/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ifdefelse/EIPs/deployments', 'created_at': '2018-05-03T22:10:53Z', 'updated_at': '2018-12-13T19:19:57Z', 'pushed_at': '2018-12-13T19:19:55Z', 'git_url': 'git://github.com/ifdefelse/EIPs.git', 'ssh_url': 'git@github.com:ifdefelse/EIPs.git', 'clone_url': 'https://github.com/ifdefelse/EIPs.git', 'svn_url': 'https://github.com/ifdefelse/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2821, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'HTML', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'fa9655ce3d6ea784048aabc286382e4158ab1709', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 44971752, 'node_id': 'MDEwOlJlcG9zaXRvcnk0NDk3MTc1Mg==', 'name': 'EIPs', 'full_name': 'ethereum/EIPs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/EIPs', 'forks_url': 'https://api.github.com/repos/ethereum/EIPs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/EIPs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/EIPs/deployments', 'created_at': '2015-10-26T13:57:23Z', 'updated_at': '2018-12-13T09:50:23Z', 'pushed_at': '2018-12-13T09:50:09Z', 'git_url': 'git://github.com/ethereum/EIPs.git', 'ssh_url': 'git@github.com:ethereum/EIPs.git', 'clone_url': 'https://github.com/ethereum/EIPs.git', 'svn_url': 'https://github.com/ethereum/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2900, 'stargazers_count': 4125, 'watchers_count': 4125, 'language': 'HTML', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': True, 'forks_count': 1267, 'mirror_url': None, 'archived': False, 'open_issues_count': 424, 'license': None, 'forks': 1267, 'open_issues': 424, 'watchers': 4125, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657'}, 'html': {'href': 'https://github.com/ethereum/EIPs/pull/1657'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/issues/1657/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/EIPs/pulls/1657/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/EIPs/statuses/b7e35f70807e411a6e69bd98cd7c5ed28c40c96f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 4, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:20:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750473189', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/14/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/14', 'id': 390821991, 'node_id': 'MDU6SXNzdWUzOTA4MjE5OTE=', 'number': 14, 'title': 'Migrate `mist-shell` build script to CircleCI', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T19:19:30Z', 'updated_at': '2018-12-13T19:19:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '- [ ] build Linux\\r\\n- [ ] build Windows\\r\\n- [ ] build Mac\\r\\n- [ ] code sign Windows\\r\\n- [ ] code sign Mac'}}, 'public': True, 'created_at': '2018-12-13T19:19:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750455299', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T19:16:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447086633', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447086633', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447086633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NjYzMw==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:16:21Z', 'updated_at': '2018-12-13T19:16:21Z', 'author_association': 'MEMBER', 'body': '@jakerockland we have default args already, which is what I think you\\'re suggesting. It works pretty well.\\r\\n\\r\\nMy issue is that I might have a function that batches an operation (say, letting me mint up to 64 NFTs at once), but I have to give it something that is exactly the size required or the operation will fail.\\r\\n\\r\\nThis is more of an ABI thing to be honest, we need a way to specify the difference between something that has to be length `N` and something that could be up to length `N` but might be less (e.g. \"max length\" is |N`). Especially important given ABIv2 and people writing EIPs that use dynamically sized arrays for their function arguments.'}}, 'public': True, 'created_at': '2018-12-13T19:16:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750452390', 'type': 'WatchEvent', 'actor': {'id': 6537735, 'login': 'perlmutterlabs', 'display_login': 'perlmutterlabs', 'gravatar_id': '', 'url': 'https://api.github.com/users/perlmutterlabs', 'avatar_url': 'https://avatars.githubusercontent.com/u/6537735?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:15:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449491', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135561803, 'size': 9, 'distinct_size': 9, 'ref': 'refs/heads/master', 'head': '55845dd318b1198a2889df0fb80b2195d5348d93', 'before': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'commits': [{'sha': 'b49489a8d69c542d358c46d835cc2858ff283d4e', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Upgrade tests to v6.0.0-beta.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/b49489a8d69c542d358c46d835cc2858ff283d4e'}, {'sha': 'c9f03ece055068681ecc86b79e309d092d54a640', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: Enable Constantinople transaction tests.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/c9f03ece055068681ecc86b79e309d092d54a640'}, {'sha': '8c8304d667df755acb7211fbbc8c7455b48f363b', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: include missing Constantinople tests.\\n\\n2 COMMITS SQUASHED:\\n\\nfixtures: include missing Constantinople in helpers.\\n\\nDebugging CREATE2 using the full \"Blockchain\" tests in `fixtures`\\n(they are disabled in `py-evm`, because they\\'re slow and a duplication\\nof \"State\" tests).\\n\\nA few definitions are missing - so add them.\\n\\ntests/conftest: fix VM-tracing log-to-file helper.\\n\\nAlso move `import`s out of the helper, so they\\'re not encountered\\nby the interpreter on every invocation of the helper.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8c8304d667df755acb7211fbbc8c7455b48f363b'}, {'sha': '55b2a06fb784b4e745594ed560453579dccfa7d9', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'circleci: revive/rework enabling Constantinople runs on CI.\\n\\nThis used to be a commit by @cburgdorf, but it got eaten in the\\nrebase (as it had most of the conflicts).', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55b2a06fb784b4e745594ed560453579dccfa7d9'}, {'sha': '189d347d3f89907e1235b9104dca460372743ac0', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Fix some failing tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/189d347d3f89907e1235b9104dca460372743ac0'}, {'sha': '067308baa1330ccca97fe47333c52702099facf0', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'eth/vm: fix accidental override of ensure_no_static() in Constantinople.\\n\\nThis made the EVM no longer care that SSTORE within a STATICCALL is\\nforbidden.\\n\\nhttps://github.com/ethereum/py-evm/pull/1579#issuecomment-446617448', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/067308baa1330ccca97fe47333c52702099facf0'}, {'sha': '2b0106821850896a6db3d24f89aa4d2b925f3aa7', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests: add more tests to INCORRECT_UPSTREAM_TESTS.\\n\\nOne is existing `RevertInCreateInInit`, but now for Constantinople,\\nnot just Byzantium.\\n\\nThe other is `RevertInCreateInInitCreate2`, which contains the same\\n\"synthhetic\" state which can\\'t be arrived at by regular means in the\\nEVM. It\\'s likely a copy-paste atavism.\\n\\nThe rest are variants testing specifically for what happens on\\ncollisions with a state like above. It has already been estabilished\\nthat there are two schools of thought: one with `geth` and `aleth`\\n(and `testeth` that generates the tests); the other with `py-evm` and\\n`parity`.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b0106821850896a6db3d24f89aa4d2b925f3aa7'}, {'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'tests/fixtures/blockchain: repopulate SLOWEST_TESTS.\\n\\nSQUASHED:\\n\\ntests/fixtures/blockchain: sort SLOWEST_TESTS alphabetically.\\n\\n... to reduce line count diff/churn: some are just being moved around needlessly.\\n\\ntests/fixtures/blockchain: add bcForkStressTest to class-disabled.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/fd537be45bafb2041c45a92f3d5240db2bc7f517'}, {'sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1579 from veox/update-fixtures-to-v6.0.0-beta.2\\n\\nUpdate ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/55845dd318b1198a2889df0fb80b2195d5348d93'}]}, 'public': True, 'created_at': '2018-12-13T19:15:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449108', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1579, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 14, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 8, 'additions': 162, 'deletions': 78, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750449085', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1181, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181', 'id': 208286750, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjA4Mjg2NzUw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1181', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1181.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1181.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181', 'number': 1181, 'state': 'closed', 'locked': False, 'title': 'Enable state tests for Constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nWe need to run the global state tests from `ethereum/test` for the upcoming constantinople fork\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- updated `fixtures` against https://github.com/ethereum/tests/commit/10ab37c095bb87d2e781bcf112b6104912fccb44 which is a WIP branch containing some of the new constantinople tests. We'll most likely have to update this to a different version prior to merge\\r\\n- configured `test_state.py` to handle Constantinople tests\\r\\n\\r\\nWe need to keep this PR open and continue to rebase it until we get all tests passing. Also notice that there are some tests failing for other forks as well which either means, we have some evm bugs or just need to adjust the test setup somehow.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n\", 'created_at': '2018-08-14T13:44:59Z', 'updated_at': '2018-12-13T19:15:14Z', 'closed_at': '2018-12-13T19:15:13Z', 'merged_at': None, 'merge_commit_sha': '0853013610a7accecec427fb9fcbca1626fb957f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246', 'head': {'label': 'cburgdorf:christoph/tests/constantinople', 'ref': 'christoph/tests/constantinople', 'sha': '84b2ca71334896c19cf1ad1b8359c7e98c562246', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7d085bd3742cc0185c92ce25cd21d9d633f505dc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:15:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1181'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1181/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1181/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/84b2ca71334896c19cf1ad1b8359c7e98c562246'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 35, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 6, 'additions': 84, 'deletions': 16, 'changed_files': 10}}, 'public': True, 'created_at': '2018-12-13T19:15:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750447830', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445', 'pull_request_review_id': 184824121, 'id': 241527445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTUyNzQ0NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"We can do it in a follow-up. I don't want to do it myself in case I misread the comment.\", 'created_at': '2018-12-13T19:14:59Z', 'updated_at': '2018-12-13T19:15:00Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241527445'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241527445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T19:15:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '087d1194f8b481cad01fc4915337aba287220fea', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T19:07:27Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 750, 'watchers_count': 750, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 750, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T19:14:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750438625', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135556324, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'before': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'commits': [{'sha': 'd077fafae2ac81f7948de10bcaa181ad834fd3bc', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': \"CI: Runs separate yarn commands\\n\\nAs electron-builder docker image provides an old yarn version, i'm expanding the `yarn release` in two commands.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d077fafae2ac81f7948de10bcaa181ad834fd3bc'}]}, 'public': True, 'created_at': '2018-12-13T19:13:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750432601', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T19:12:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447085360', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447085360', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447085360, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4NTM2MA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T19:12:14Z', 'updated_at': '2018-12-13T19:12:14Z', 'author_association': 'MEMBER', 'body': 'Benchmarks for option 1\\r\\n\\r\\n```\\r\\nTook 0.011 to compute 192 headers: 17680.44 headers/sec\\r\\nTook 0.056 to compute 1024 headers: 18379.57 headers/sec\\r\\nTook 0.107 to compute 2048 headers: 19213.09 headers/sec\\r\\nTook 0.215 to compute 4096 headers: 19019.00 headers/sec\\r\\nTook 3.488 to compute 65536 headers: 18790.67 headers/sec\\r\\nTook 14.456 to compute 262144 headers: 18134.48 headers/sec\\r\\nTook 62.747 to compute 1048576 headers: 16711.22 headers/sec\\r\\nTook 251.843 to compute 4194304 headers: 16654.43 headers/sec\\r\\nTook 511.379 to compute 8388608 headers: 16403.91 headers/sec\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T19:12:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750405849', 'type': 'WatchEvent', 'actor': {'id': 15422891, 'login': 'vngkv123', 'display_login': 'vngkv123', 'gravatar_id': '', 'url': 'https://api.github.com/users/vngkv123', 'avatar_url': 'https://avatars.githubusercontent.com/u/15422891?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T19:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382701', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135527766, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'before': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'commits': [{'sha': '90ad28a4a4d37c26711aacbdacc0463e31b98063', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use slightly faster datastructures for CodeStream internally.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/90ad28a4a4d37c26711aacbdacc0463e31b98063'}, {'sha': '993bc85c72aafb512015e12c9ee52746a255f87a', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Rename CodeStream cache variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/993bc85c72aafb512015e12c9ee52746a255f87a'}, {'sha': '505760b624261b5158d55878de383984813ebfdb', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Use self._length_cache instead of len() call.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/505760b624261b5158d55878de383984813ebfdb'}, {'sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1590 from jacqueswww/minor-speed-ups\\n\\nJust for fun: Minor speedup on CodeStream.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f111c8b7d8a4f47729dfc81179b5b439b1589078'}]}, 'public': True, 'created_at': '2018-12-13T19:03:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750382230', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1590, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590', 'id': 238229141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjI5MTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1590', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1590.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1590.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590', 'number': 1590, 'state': 'closed', 'locked': False, 'title': 'Just for fun: Minor speedup on CodeStream.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nNothing really, I actually was curious what numba @jit would do in terms of VM speed on all the function of `arithmetic.py` - it had no effect. Then ended up finding this, and seems to be faster, Interested to find if this is just a margin of error (I gave it x3 runs each) ?\\r\\n\\r\\nBefore:\\r\\n```\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 389.244 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.990 | 160 | 32.124 | 116 | 23.153 | 29,972,121 | 6,006,064.601 |\\r\\n================================================================================================================================================\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\nAfter:\\r\\n```\\r\\n\\r\\n------------------------------------------------------------------------------------------------------------------------------------------------\\r\\n| Total | 366.143 | 12504 | - | 9012 | - | 2,337,825,400 | - |\\r\\n| Avg | 4.694 | 160 | 34.151 | 116 | 24.613 | 29,972,121 | 6,385,013.504 |\\r\\n================================================================================================================================================\\r\\n\\r\\n```\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nBasically caching len & value[x] instead of getvalue[i].\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![](https://static.boredpanda.com/blog/wp-content/uploads/2016/05/cute-baby-foxes-cubs-17-574436be67482__880.jpg)\\r\\n', 'created_at': '2018-12-13T00:36:30Z', 'updated_at': '2018-12-13T19:03:12Z', 'closed_at': '2018-12-13T19:03:12Z', 'merged_at': '2018-12-13T19:03:12Z', 'merge_commit_sha': 'f111c8b7d8a4f47729dfc81179b5b439b1589078', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb', 'head': {'label': 'jacqueswww:minor-speed-ups', 'ref': 'minor-speed-ups', 'sha': '505760b624261b5158d55878de383984813ebfdb', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161561920, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1NjE5MjA=', 'name': 'py-evm', 'full_name': 'jacqueswww/py-evm', 'private': False, 'owner': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jacqueswww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jacqueswww/py-evm', 'forks_url': 'https://api.github.com/repos/jacqueswww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jacqueswww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jacqueswww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jacqueswww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jacqueswww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jacqueswww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jacqueswww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jacqueswww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jacqueswww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jacqueswww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jacqueswww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jacqueswww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jacqueswww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jacqueswww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jacqueswww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jacqueswww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jacqueswww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jacqueswww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jacqueswww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jacqueswww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jacqueswww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jacqueswww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jacqueswww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jacqueswww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jacqueswww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jacqueswww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jacqueswww/py-evm/deployments', 'created_at': '2018-12-13T00:29:24Z', 'updated_at': '2018-12-13T00:29:28Z', 'pushed_at': '2018-12-13T12:13:35Z', 'git_url': 'git://github.com/jacqueswww/py-evm.git', 'ssh_url': 'git@github.com:jacqueswww/py-evm.git', 'clone_url': 'https://github.com/jacqueswww/py-evm.git', 'svn_url': 'https://github.com/jacqueswww/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6541, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be5cb8c98de2839b97ce1bfcc157ce54e2750589', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T18:31:43Z', 'pushed_at': '2018-12-13T19:03:13Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1590'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1590/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1590/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/505760b624261b5158d55878de383984813ebfdb'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 2, 'maintainer_can_modify': False, 'commits': 3, 'additions': 7, 'deletions': 3, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T19:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750360494', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T18:59:24Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447081078', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447081078', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447081078, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA4MTA3OA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:59:24Z', 'updated_at': '2018-12-13T18:59:24Z', 'author_association': 'CONTRIBUTOR', 'body': 'Hah, well I like the Constantinople connection, and would love to use a suggestion from veox, since he contributed so much to the release. But... I am not keen to honor someone who committed heinous war crimes. Any other suggestions, @veox ?'}}, 'public': True, 'created_at': '2018-12-13T18:59:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750355984', 'type': 'IssuesEvent', 'actor': {'id': 6204356, 'login': 'LogvinovLeon', 'display_login': 'LogvinovLeon', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'avatar_url': 'https://avatars.githubusercontent.com/u/6204356?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/321', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/321/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/321', 'id': 390814360, 'node_id': 'MDU6SXNzdWUzOTA4MTQzNjA=', 'number': 321, 'title': 'NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional', 'user': {'login': 'LogvinovLeon', 'id': 6204356, 'node_id': 'MDQ6VXNlcjYyMDQzNTY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6204356?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/LogvinovLeon', 'html_url': 'https://github.com/LogvinovLeon', 'followers_url': 'https://api.github.com/users/LogvinovLeon/followers', 'following_url': 'https://api.github.com/users/LogvinovLeon/following{/other_user}', 'gists_url': 'https://api.github.com/users/LogvinovLeon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/LogvinovLeon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/LogvinovLeon/subscriptions', 'organizations_url': 'https://api.github.com/users/LogvinovLeon/orgs', 'repos_url': 'https://api.github.com/users/LogvinovLeon/repos', 'events_url': 'https://api.github.com/users/LogvinovLeon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/LogvinovLeon/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T18:58:33Z', 'updated_at': '2018-12-13T18:58:33Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi. I\\'m using `solcjs` to compile solidity project and it was working fine with all the ^0.4.0 versions. Now I want to try solidity 0.5.0 versions and I\\'m getting this error message:\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\n```\\r\\nI\\'ve looked through the issues but wasn\\'t able to figure it out. Do you have any idea how to fix it? Seems emscripten related.\\r\\n```\\r\\nNO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\\r\\nabort(\"NO_DYNAMIC_EXECUTION was set, cannot eval - ccall/cwrap are not functional\") at Error\\r\\n at jsStackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19656)\\r\\n at stackTrace (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:19839)\\r\\n at abort (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:20:13296)\\r\\n at getCFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:7278)\\r\\n at ccallFunc (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8028)\\r\\n at /Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/solc_bin/soljson-v0.5.0+commit.1d4f565a.js:1:8564\\r\\n at Object.compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/node_modules/solc/wrapper.js:77:16)\\r\\n at Compiler._compile (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:423:26)\\r\\n at Compiler. (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/src/compiler.ts:250:41)\\r\\n at step (/Users/leonidlogvinov/Dev/0x/0x-monorepo/packages/sol-compiler/lib/src/compiler.js:43:23)\\r\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T18:58:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750281387', 'type': 'IssuesEvent', 'actor': {'id': 26384082, 'login': 'stale[bot]', 'display_login': 'stale', 'gravatar_id': '', 'url': 'https://api.github.com/users/stale[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/26384082?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/15409/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/15409', 'id': 270058328, 'node_id': 'MDU6SXNzdWUyNzAwNTgzMjg=', 'number': 15409, 'title': 'Mining-WIKI: replace miner.hashrate by eth.hashrate', 'user': {'login': 'p-alik', 'id': 2326795, 'node_id': 'MDQ6VXNlcjIzMjY3OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/2326795?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/p-alik', 'html_url': 'https://github.com/p-alik', 'followers_url': 'https://api.github.com/users/p-alik/followers', 'following_url': 'https://api.github.com/users/p-alik/following{/other_user}', 'gists_url': 'https://api.github.com/users/p-alik/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/p-alik/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/p-alik/subscriptions', 'organizations_url': 'https://api.github.com/users/p-alik/orgs', 'repos_url': 'https://api.github.com/users/p-alik/repos', 'events_url': 'https://api.github.com/users/p-alik/events{/privacy}', 'received_events_url': 'https://api.github.com/users/p-alik/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 856638432, 'node_id': 'MDU6TGFiZWw4NTY2Mzg0MzI=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/stale', 'name': 'stale', 'color': 'ffffff', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2017-10-31T17:58:08Z', 'updated_at': '2018-12-13T18:45:28Z', 'closed_at': '2018-12-13T18:45:28Z', 'author_association': 'NONE', 'body': '`miner.hashrate` was moved into `web3.eth.hashrate`. \\r\\nhttps://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethhashrate\\r\\n\\r\\nPlease, apply appended patch to [Mining](https://github.com/ethereum/go-ethereum/wiki/Mining) WIKI Page\\r\\n\\r\\n[0001-eth.hashrate.patch.txt](https://github.com/ethereum/go-ethereum/files/1431761/0001-eth.hashrate.patch.txt)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750251905', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 314, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314', 'id': 238491215, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDkxMjE1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/314', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/314.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314', 'number': 314, 'state': 'open', 'locked': False, 'title': 'ejections to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': '* address #305 \\r\\n* also address some stray issues in the validator status change methods', 'created_at': '2018-12-13T18:40:03Z', 'updated_at': '2018-12-13T18:40:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'head': {'label': 'ethereum:ejections-to-epoch', 'ref': 'ejections-to-epoch', 'sha': '0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:39:08Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1011, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/314'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/314/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/314/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/0cfefd84dd5594ad6cd0e2c5c4950b545a8cb6cc'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 18, 'deletions': 16, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:40:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750247734', 'type': 'IssueCommentEvent', 'actor': {'id': 37848473, 'login': 'AnuragHydro', 'display_login': 'AnuragHydro', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'avatar_url': 'https://avatars.githubusercontent.com/u/37848473?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495', 'id': 370177711, 'node_id': 'MDU6SXNzdWUzNzAxNzc3MTE=', 'number': 1495, 'title': 'ERC-1484: Digital Identity Aggregator', 'user': {'login': 'NoahZinsmeister', 'id': 3760414, 'node_id': 'MDQ6VXNlcjM3NjA0MTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3760414?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NoahZinsmeister', 'html_url': 'https://github.com/NoahZinsmeister', 'followers_url': 'https://api.github.com/users/NoahZinsmeister/followers', 'following_url': 'https://api.github.com/users/NoahZinsmeister/following{/other_user}', 'gists_url': 'https://api.github.com/users/NoahZinsmeister/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NoahZinsmeister/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NoahZinsmeister/subscriptions', 'organizations_url': 'https://api.github.com/users/NoahZinsmeister/orgs', 'repos_url': 'https://api.github.com/users/NoahZinsmeister/repos', 'events_url': 'https://api.github.com/users/NoahZinsmeister/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NoahZinsmeister/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 30, 'created_at': '2018-10-15T14:00:26Z', 'updated_at': '2018-12-13T18:39:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"# Official ERC-1484 Discussion Forum\\r\\n\\r\\n- The full text of this EIP follows, and is also [available as a markdown file](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1484.md)\\r\\n- The [reference implementation is available here](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- Documentation on [best practices for this ERC can be found here](https://github.com/hydrogen-dev/ERC-1484/tree/master/best-practices)\\r\\n\\r\\n|||\\r\\n|--------------------|-|\\r\\n| **EIP** | 1484 |\\r\\n| **Title** | Digital Identity Aggregator |\\r\\n| **Author** | Anurag Angara
Andy Chorlian
Shane Hampton
Noah Zinsmeister |\\r\\n| **Discussions-To** | #1495 |\\r\\n| **Status** | Draft |\\r\\n| **Type** | Standards Track |\\r\\n| **Category** | ERC |\\r\\n| **Created** | 2018-10-12 |\\r\\n| **Requires** | 191 |\\r\\n\\r\\n## Simple Summary\\r\\nA protocol for aggregating digital identity information that's broadly interoperable with existing, proposed, and hypothetical future digital identity standards.\\r\\n\\r\\n## Abstract\\r\\nThis EIP proposes an identity management and aggregation framework on the Ethereum blockchain. It allows entities to claim an `Identity` via a singular `Identity Registry` smart contract, associate it with Ethereum addresses in a variety of meaningful ways, and use it to interact with smart contracts. This enables arbitrarily complex identity-related functionality. Notably (among other features) ERC-1484 `Identities`: are self-sovereign, can natively support [ERC-725](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC725) and [ERC-1056](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Resolvers/ERC1056) identities, are [DID compliant](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/DID-Method.md), and can be fully powered by [meta-transactions](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\n## Motivation\\r\\nEmerging identity standards and related frameworks proposed by the Ethereum community (including ERCs/EIPs [725](https://github.com/ethereum/EIPs/issues/725), [735](https://github.com/ethereum/EIPs/issues/735), [780](https://github.com/ethereum/EIPs/issues/780), [1056](https://github.com/ethereum/EIPs/issues/1056), etc.) define and instrumentalize digital identity in a variety of ways. As existing approaches mature, new standards emerge, and isolated, non-standard approaches to identity develop, coordinating on identity will become increasingly burdensome for blockchain users and developers, and involve the unnecessary duplication of work.\\r\\n\\r\\nThe proliferation of on-chain identity solutions can be traced back to the fact that each codifies a notion of identity and links it to specific aspects of Ethereum (claims protocols, per-identity smart contracts, signature verification schemes, etc.). This proposal eschews that approach, instead introducing a protocol layer in between the Ethereum network and individual identity applications. This solves identity management and interoperability challenges by enabling any identity-driven application to leverage an un-opinionated identity management protocol.\\r\\n\\r\\n## Definitions\\r\\n- `Identity Registry`: A single smart contract which is the hub for all `Identities`. The primary responsibility of the `Registry` is to define and enforce the rules of a global namespace for `Identities`, which are individually denominated by Ethereum Identification Numbers (EINs).\\r\\n\\r\\n- `Identity`: A data structure containing all the core information relevant to an identity, namely: a `Recovery Address`, an `Associated Addresses` set, a `Providers` set, and a `Resolvers` set. `Identities` are denominated by EINs (incrementing `uint` identifiers starting at 1), which are unique but otherwise uninformative. Each `Identity` is a Solidity struct:\\r\\n\\r\\n```solidity\\r\\nstruct Identity {\\r\\n address recoveryAddress;\\r\\n AddressSet.Set associatedAddresses;\\r\\n AddressSet.Set providers;\\r\\n AddressSet.Set resolvers;\\r\\n}\\r\\n```\\r\\n\\r\\n- `Associated Address`: An Ethereum address publicly associated with an `Identity`. In order for an address to become an `Associated Address`, an `Identity` must either transact from or produce an appropriately signed message from the candidate address and an existing `Associated Address`, indicating intent to associate. An `Associated Address` can be removed from an `Identity` by transacting/producing a signature indicating intent to disassociate. A given address may only be an `Associated Address` for one `Identity` at any given time.\\r\\n\\r\\n- `Provider`: An Ethereum address (typically but not by definition a smart contract) authorized to act on behalf of `Identities` who have authorized them to do so. This includes but is not limited to managing the `Associated Address`, `Provider`, and `Resolver` sets for an `Identity`. `Providers` exist to facilitate user adoption by making it easier to manage `Identities`.\\r\\n\\r\\n- `Resolver`: A smart contract containing arbitrary information pertaining to `Identities`. A resolver may implement an identity standard, such as ERC-725, or may consist of a smart contract leveraging or declaring identifying information about `Identities`. These could be simple attestation structures or more sophisticated financial dApps, social media dApps, etc. Each `Resolver` added to an `Identity` makes the `Identity` more informative.\\r\\n\\r\\n- `Recovery Address`: An Ethereum address (either an account or smart contract) that can be used to recover lost `Identities` as outlined in the [Recovery](#recovery) section.\\r\\n\\r\\n- `Destruction`: In the event of irrecoverable loss of control of an `Identity`, `Destruction` is a contingency measure to permanently disable the `Identity`. It removes all `Associated Addresses`, `Providers`, and optionally `Resolvers` while preserving the `Identity`. Evidence of the existence of the `Identity` persists, while control over the `Identity` is nullified.\\r\\n\\r\\n## Specification\\r\\nA digital identity in this proposal can be viewed as an omnibus account, containing more information about an identity than any individual identity application could. This omnibus identity is resolvable to an unlimited number of sub-identities called `Resolvers`. This allows an atomic entity, the `Identity`, to be resolvable to abstract data structures, the `Resolvers`. `Resolvers` recognize `Identities` by any of their `Associated Addresses`, or by their `EIN`.\\r\\n\\r\\nThe protocol revolves around claiming an `Identity` and managing `Associated Addresses`, `Providers` and `Resolvers`. Identities can delegate much or all of this responsibility to one or more `Providers`, or perform it directly from an `Associated Address`. `Associated Addresses`/`Providers` may add and remove `Resolvers` and `Providers` indiscriminately. `Associated Addresses` may only be added or removed with the appropriate permission.\\r\\n\\r\\n### Identity Registry\\r\\nThe `Identity Registry` contains functionality to create new `Identities` and for existing `Identities` to manage their `Associated Addresses`, `Providers`, and `Resolvers`. It is important to note that this registry fundamentally requires transactions for every aspect of building out an `Identity`. However, recognizing the importance of accessibility to dApps and identity applications, we empower `Providers` to build out `Identities` on the behalf of users, without requiring users to pay gas costs. An example of this pattern, often referred to as a meta transactions, can be [seen in the reference implementation](https://github.com/hydrogen-dev/ERC-1484/tree/master/contracts/examples/Providers/MetaTransactions).\\r\\n\\r\\nDue to the fact that multiple addresses can be associated with a given identity (though not the reverse), `Identities` are denominated by `EIN`. This `uint` identifier can be encoded in QR format or mapped to more user-friendly formats, such as a `string`, in registries at the `Provider` or `Resolver` level.\\r\\n\\r\\n### Address Management\\r\\nThe address management function consists of trustlessly connecting multiple user-owned `Associated Addresses` to an `Identity`. It does not give special status to any particular `Associated Address`, rather leaving this (optional) specification to identity applications built on top of the protocol - for instance, `management`, `action`, `claim` and `encryption` keys denominated in the ERC-725 standard, or `identifiers` and `delegates` as denominated in ERC-1056. This allows a user to access common identity data from multiple wallets while still:\\r\\n\\r\\n- retaining the ability to interact with contracts outside of their identity\\r\\n- taking advantage of address-specific permissions established at the application layer of a user's identity.\\r\\n\\r\\nTrustlessness in the address management function is achieved through a robust permissioning scheme. To add an `Associated Address` to an `Identity`, implicit permission from a transaction sender or explicit permission from a signature is required from 1) an address already within the registry and 2) an address to be claimed. Importantly, the transaction need not come from any particular address, as long as permission is established, which allows not only users but third parties (companies, governments, etc.) to bear the overhead of managing identities. To prevent a compromised `Associated Address` from unilaterally removing other `Associated Addresses`, it's only possible to remove an `Associated Address` by transacting or producing a signature from it.\\r\\n\\r\\nAll signatures required in ERC-1484 are designed per the [ERC-191](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-191.md) v0 specification. To avoid replay attacks, all signatures must include a timestamp within a rolling lagged window of the current `block.timestamp`. For more information, see this [best practices document](https://github.com/hydrogen-dev/ERC-1484/blob/master/best-practices/VerifyingSignatures.md) in the reference implementation.\\r\\n\\r\\n### Provider Management\\r\\nWhile the protocol allows users to directly call identity management functions, it also aims to be more robust and future-proof by allowing `Providers`, typically smart contracts, to perform identity management functions on a user's behalf. A `Provider` set by an `Identity` can perform address management and resolver management functions by passing a user's `EIN` in function calls.\\r\\n\\r\\n### Resolver Management\\r\\nA `Resolver` is any smart contract that encodes information which resolves to an `Identity`. We remain agnostic about the specific information that can be encoded in a resolver and the functionality that this enables. The existence of `Resolvers` is primarily what makes this ERC an identity *protocol* rather than an identity *application*. `Resolvers` resolve abstract data in smart contracts to an atomic entity, the `Identity`.\\r\\n\\r\\n### Recovery\\r\\nIf users lose control over an `Associated Address`, the `Recovery Address` provides a fallback mechanism. Upon `Identity` creation, a `Recovery Address` is passed as a parameter by the creator. Recovery functionality is triggered in three scenarios:\\r\\n\\r\\n**1. Changing Recovery Address**: If a recovery key is lost, an `Associated Address`/`Provider` can [triggerRecoveryAddressChange](#triggerRecoveryAddressChange)/[triggerRecoveryAddressChangeFor](#triggerRecoveryAddressChangeFor). To prevent malicious behavior from someone who has gained control of an `Associated Address` or `Provider` and is changing the `Recovery Address` to one under their control, this action triggers a 14 day challenge period during which the old `Recovery Address` may reject the change by [triggering recovery](#triggerRecovery). If the `Recovery Address` does not reject the change within 14 days, the `Recovery Address` is changed.\\r\\n\\r\\n**2. Recovery**: Recovery occurs when a user recognizes that an `Associated Address` or the `Recovery Address` belonging to the user is lost or stolen. In this instance the `Recovery Address` must call [triggerRecovery](#triggerRecovery). This removes all `Associated Addresses` and `Providers` from the corresponding `Identity` and replaces them with an address passed in the function call. The `Identity` and associated `Resolvers` maintain integrity. The user is now responsible for adding the appropriate un-compromised addresses back to their `Identity`.\\r\\n\\r\\n*Importantly, the `Recovery Address` can be a user-controlled wallet or another address, such as a multisig wallet or smart contract. This allows for arbitrarily sophisticated recovery logic! This includes the potential for recovery to be fully compliant with standards such as [DID](https://decentralized.id/).*\\r\\n\\r\\n**3. Destruction**\\r\\nThe Recovery scheme offers considerable power to a `Recovery Address`; accordingly, `Destruction` is a nuclear option to combat malicious control over an `Identity` when a `Recovery Address` is compromised. If a malicious actor compromises a user's `Recovery Address` and triggers recovery, any address removed in the `Recovery` process can call [triggerDestruction](#triggerDestruction) within 14 days to permanently disable the `Identity`. The user would then need to create a new `Identity`, and would be responsible for engaging in recovery schemes for any identity applications built in the `Resolver` or `Provider` layers.\\r\\n\\r\\n#### Alternative Recovery Considerations\\r\\nWe considered many possible alternatives when devising the Recovery process outlined above. We ultimately selected the scheme that was most un-opinionated, modular, and consistent with the philosophy behind the `Associated Address`, `Provider`, and `Resolver` components. Still, we feel that it is important to highlight some of the other recovery options we considered, to provide a rationale as to how we settled on what we did.\\r\\n\\r\\n**High Level Concerns**\\r\\nFundamentally, a Recovery scheme needs to be resilient to a compromised address taking control of a user's `Identity`. A secondary concern is preventing a compromised address from maliciously destroying a user's identity due to off-chain utility, which is not an optimal scenario, but is strictly better than if they've gained control.\\r\\n\\r\\n**Alternative 1: Nuclear Option**\\r\\nThis approach would allow any `Associated Address` to destroy an `Identity` whenever another `Associated Address` is compromised. While this may seem severe, we strongly considered it because this ERC is an identity *protocol*, not an identity *application*. This means that though a user's compromised `Identity` is destroyed, they should still have recourse to whatever restoration mechanisms are available in each of their actual identities at the `Resolver` and/or `Provider` level. We ultimately dismissed this approach for two main reasons:\\r\\n\\r\\n- It is not robust in cases where a user has only one `Associated Address`\\r\\n- It would increase the frequency of recovery requests to identity applications due to its unforgiving nature.\\r\\n\\r\\n**Alternative 2: Unilateral Address Removal via Providers**\\r\\nThis would allow `Associated Addresses`/`Providers` to remove `Associated Addresses` without a signature from said address. This implementation would allow `Providers` to include arbitrarily sophisticated schemes for removing a rogue address - for instance, multi-sig requirements, centralized off-chain verification, user controlled master addresses, deferral to a jurisdictional contract, and more. To prevent a compromised `Associated Address` from simply setting a malicious `Provider` to remove un-compromised addresses, it would have required a waiting period between when a `Provider` is set and when they would be able to remove an `Associated Address`. We dismissed this approach because we felt it placed too high of a burden on `Providers`. If a `Provider` offered a sophisticated range of functionality to a user, but post-deployment a threat was found in the Recovery logic of the provider, `Provider`-specific infrastructure would need to be rebuilt. We also considered including a flag that would allow a user to decide whether or not a `Provider` may remove `Associated Addresses` unilaterally. Ultimately, we concluded that only allowing removal of `Associated Addresses` via the `Recovery Address` enables equally sophisticated recovery logic while separating the functionality from `Providers`, leaving less room for users to relinquish control to potentially flawed implementations.\\r\\n\\r\\n## Rationale\\r\\nWe find that at a protocol layer, identities should not rely on specific claim or attestation structures, but should instead be a part of a trustless framework upon which arbitrarily sophisticated claim and attestation structures may be built.\\r\\n\\r\\nThe main criticism of existing identity solutions is that they're overly restrictive. We aim to limit requirements, keep identities modular and future-proof, and remain un-opinionated regarding any functionality a particular identity component may have. This proposal gives users the option to interact on the blockchain using an robust `Identity` rather than just an address.\\r\\n\\r\\n## Implementation\\r\\n**The reference implementation for ERC-1484 may be found in [hydrogen-dev/ERC-1484](https://github.com/hydrogen-dev/ERC-1484).**\\r\\n\\r\\n#### identityExists\\r\\n\\r\\nReturns a `bool` indicating whether or not an `Identity` denominated by the passed `EIN` exists.\\r\\n\\r\\n```solidity\\r\\nfunction identityExists(uint ein) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### hasIdentity\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with an `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction hasIdentity(address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getEIN\\r\\n\\r\\nReturns the `EIN` associated with the passed `_address`. Throws if the address is not associated with an `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getEIN(address _address) public view returns (uint ein);\\r\\n```\\r\\n\\r\\n#### isAssociatedAddressFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `_address` is associated with the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isAssociatedAddressFor(uint ein, address _address) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isProviderFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `provider` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isProviderFor(uint ein, address provider) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### isResolverFor\\r\\n\\r\\nReturns a `bool` indicating whether or not the passed `resolver` has been set by the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction isResolverFor(uint ein, address resolver) public view returns (bool);\\r\\n```\\r\\n\\r\\n#### getIdentity\\r\\n\\r\\nReturns the `recoveryAddress`, `associatedAddresses`, `providers` and `resolvers` of the passed `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction getIdentity(uint ein) public view\\r\\n returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n```\\r\\n\\r\\n#### createIdentity\\r\\n\\r\\nCreates an `Identity`, setting the `msg.sender` as the sole `Associated Address`. Returns the `EIN` of the new `Identity`.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentity(address recoveryAddress, address[] memory providers, address[] memory resolvers)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### createIdentityDelegated\\r\\n\\r\\nPreforms the same logic as `createIdentity`, but can be called by any address. This function requires a signature from the `associatedAddress` to ensure their consent.\\r\\n\\r\\n```solidity\\r\\nfunction createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] memory providers, address[] memory resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public returns (uint ein);\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityCreated](#identitycreated)\\r\\n\\r\\n#### addAssociatedAddress\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. The `msg.sender` must be either of the `approvingAddress` or the `addressToAdd`, and the signature must be from the other one.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### addAssociatedAddressDelegated\\r\\n\\r\\nAdds the `addressToAdd` to the `EIN` of the `approvingAddress`. Requires signatures from both the `approvingAddress` and the `addressToAdd`.\\r\\n\\r\\n```solidity\\r\\nfunction addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] memory v, bytes32[2] memory r, bytes32[2] memory s, uint[2] memory timestamp\\r\\n)\\r\\n public\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressAdded](#associatedaddressadded)\\r\\n\\r\\n#### removeAssociatedAddress\\r\\n\\r\\nRemoves the `msg.sender` as an `Associated Address` from its `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddress() public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n\\r\\n#### removeAssociatedAddressDelegated\\r\\n\\r\\nRemoves the `addressToRemove` from its associated `EIN`. Requires a signature from the `addressToRemove`.\\r\\n\\r\\n```solidity\\r\\nfunction removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [AssociatedAddressRemoved](#associatedaddressremoved)\\r\\n\\r\\n#### addProviders\\r\\n\\r\\nAdds an array of `Providers` to the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### addProvidersFor\\r\\n\\r\\nPreforms the same logic as `addProviders`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderAdded](#provideradded)\\r\\n\\r\\n#### removeProviders\\r\\n\\r\\nRemoves an array of `Providers` from the `Identity` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProviders(address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### removeProvidersFor\\r\\n\\r\\nPreforms the same logic as `removeProviders`, but is called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeProvidersFor(uint ein, address[] memory providers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ProviderRemoved](#providerremoved)\\r\\n\\r\\n\\r\\n#### addResolvers\\r\\n\\r\\nAdds an array of `Resolvers` to the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### addResolversFor\\r\\n\\r\\nPreforms the same logic as `addResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction addResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverAdded](#resolveradded)\\r\\n\\r\\n#### removeResolvers\\r\\n\\r\\nRemoves an array of `Resolvers` from the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolvers(address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### removeResolversFor\\r\\n\\r\\nPreforms the same logic as `removeResolvers`, but must be called by a `Provider`.\\r\\n\\r\\n```solidity\\r\\nfunction removeResolversFor(uint ein, address[] memory resolvers) public;\\r\\n```\\r\\n\\r\\nTriggers event: [ResolverRemoved](#resolverremoved)\\r\\n\\r\\n#### triggerRecoveryAddressChange\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for the `EIN` of the `msg.sender`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChange(address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecoveryAddressChangeFor\\r\\n\\r\\nInitiates a change in the current `recoveryAddress` for a given `EIN`.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryAddressChangeTriggered](#RecoveryAddressChangeTriggered)\\r\\n\\r\\n#### triggerRecovery\\r\\n\\r\\nTriggers `EIN` recovery from the current `recoveryAddress`, or the old `recoveryAddress` if changed within the last 2 weeks.\\r\\n\\r\\n```solidity\\r\\nfunction triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp) public;\\r\\n```\\r\\n\\r\\nTriggers event: [RecoveryTriggered](#RecoveryTriggered)\\r\\n\\r\\n#### triggerDestruction\\r\\n\\r\\nTriggers destruction of an `EIN`. This renders the `Identity` permanently unusable.\\r\\n\\r\\n```solidity\\r\\nfunction triggerDestruction(uint ein, address[] memory firstChunk, address[] memory lastChunk, bool clearResolvers)\\r\\n public;\\r\\n```\\r\\n\\r\\nTriggers event: [IdentityDestroyed](#IdentityDestroyed)\\r\\n\\r\\n### Events\\r\\n\\r\\n#### IdentityCreated\\r\\n\\r\\nMUST be triggered when an `Identity` is created.\\r\\n\\r\\n```solidity\\r\\nevent IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressAdded\\r\\n\\r\\nMUST be triggered when an address is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### AssociatedAddressRemoved\\r\\n\\r\\nMUST be triggered when an address is removed from an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderAdded\\r\\n\\r\\nMUST be triggered when a provider is added to an `Identity`.\\r\\n\\r\\n```solidity\\r\\nevent ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ProviderRemoved\\r\\n\\r\\nMUST be triggered when a provider is removed.\\r\\n\\r\\n```solidity\\r\\nevent ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverAdded\\r\\n\\r\\nMUST be triggered when a resolver is added.\\r\\n\\r\\n```solidity\\r\\nevent ResolverAdded(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### ResolverRemoved\\r\\n\\r\\nMUST be triggered when a resolver is removed.\\r\\n\\r\\n```solidity\\r\\nevent ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers, bool delegated);\\r\\n```\\r\\n\\r\\n#### RecoveryAddressChangeTriggered\\r\\n\\r\\nMUST be triggered when a recovery address change is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address oldRecoveryAddress, address newRecoveryAddress, bool delegated\\r\\n);\\r\\n```\\r\\n\\r\\n#### RecoveryTriggered\\r\\n\\r\\nMUST be triggered when recovery is triggered.\\r\\n\\r\\n```solidity\\r\\nevent RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n);\\r\\n```\\r\\n\\r\\n#### IdentityDestroyed\\r\\n\\r\\nMUST be triggered when an `Identity` is destroyed.\\r\\n\\r\\n```solidity\\r\\nevent IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n```\\r\\n\\r\\n### Solidity Interface\\r\\n```solidity\\r\\ninterface IdentityRegistryInterface {\\r\\n function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)\\r\\n external pure returns (bool);\\r\\n\\r\\n // Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////\\r\\n function identityExists(uint ein) external view returns (bool);\\r\\n function hasIdentity(address _address) external view returns (bool);\\r\\n function getEIN(address _address) external view returns (uint ein);\\r\\n function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);\\r\\n function isProviderFor(uint ein, address provider) external view returns (bool);\\r\\n function isResolverFor(uint ein, address resolver) external view returns (bool);\\r\\n function getIdentity(uint ein) external view returns (\\r\\n address recoveryAddress,\\r\\n address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers\\r\\n );\\r\\n\\r\\n // Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)\\r\\n external returns (uint ein);\\r\\n function createIdentityDelegated(\\r\\n address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,\\r\\n uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external returns (uint ein);\\r\\n function addAssociatedAddress(\\r\\n address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp\\r\\n ) external;\\r\\n function addAssociatedAddressDelegated(\\r\\n address approvingAddress, address addressToAdd,\\r\\n uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp\\r\\n ) external;\\r\\n function removeAssociatedAddress() external;\\r\\n function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function addProviders(address[] calldata providers) external;\\r\\n function addProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function removeProviders(address[] calldata providers) external;\\r\\n function removeProvidersFor(uint ein, address[] calldata providers) external;\\r\\n function addResolvers(address[] calldata resolvers) external;\\r\\n function addResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n function removeResolvers(address[] calldata resolvers) external;\\r\\n function removeResolversFor(uint ein, address[] calldata resolvers) external;\\r\\n\\r\\n // Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////\\r\\n function triggerRecoveryAddressChange(address newRecoveryAddress) external;\\r\\n function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;\\r\\n function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)\\r\\n external;\\r\\n function triggerDestruction(\\r\\n uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers\\r\\n ) external;\\r\\n\\r\\n // Events //////////////////////////////////////////////////////////////////////////////////////////////////////////\\r\\n event IdentityCreated(\\r\\n address indexed initiator, uint indexed ein,\\r\\n address recoveryAddress, address associatedAddress, address[] providers, address[] resolvers, bool delegated\\r\\n );\\r\\n event AssociatedAddressAdded(\\r\\n address indexed initiator, uint indexed ein, address approvingAddress, address addedAddress\\r\\n );\\r\\n event AssociatedAddressRemoved(address indexed initiator, uint indexed ein, address removedAddress);\\r\\n event ProviderAdded(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ProviderRemoved(address indexed initiator, uint indexed ein, address provider, bool delegated);\\r\\n event ResolverAdded(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event ResolverRemoved(address indexed initiator, uint indexed ein, address resolvers);\\r\\n event RecoveryAddressChangeTriggered(\\r\\n address indexed initiator, uint indexed ein, address oldRecoveryAddress, address newRecoveryAddress\\r\\n );\\r\\n event RecoveryTriggered(\\r\\n address indexed initiator, uint indexed ein, address[] oldAssociatedAddresses, address newAssociatedAddress\\r\\n );\\r\\n event IdentityDestroyed(address indexed initiator, uint indexed ein, address recoveryAddress, bool resolversReset);\\r\\n}\\r\\n```\\r\\n\\r\\n## Backwards Compatibility\\r\\n`Identities` established under this standard consist of existing Ethereum addresses; accordingly, there are no backwards compatibility issues. Deployed, non-upgradeable smart contracts that wish to become `Resolvers` for `Identities` will need to write wrapper contracts that resolve addresses to `EIN`-denominated `Identities`.\\r\\n\\r\\n## Additional References\\r\\n- [ERC-1484 Reference Implementation](https://github.com/hydrogen-dev/ERC-1484)\\r\\n- [ERC-191 Signatures](https://github.com/ethereum/EIPs/issues/191)\\r\\n- [ERC-725 Identities](https://github.com/ethereum/EIPs/issues/725)\\r\\n- [ERC-1056 Identities](https://github.com/ethereum/EIPs/issues/1056)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447074717', 'html_url': 'https://github.com/ethereum/EIPs/issues/1495#issuecomment-447074717', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1495', 'id': 447074717, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3NDcxNw==', 'user': {'login': 'AnuragHydro', 'id': 37848473, 'node_id': 'MDQ6VXNlcjM3ODQ4NDcz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/37848473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AnuragHydro', 'html_url': 'https://github.com/AnuragHydro', 'followers_url': 'https://api.github.com/users/AnuragHydro/followers', 'following_url': 'https://api.github.com/users/AnuragHydro/following{/other_user}', 'gists_url': 'https://api.github.com/users/AnuragHydro/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AnuragHydro/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AnuragHydro/subscriptions', 'organizations_url': 'https://api.github.com/users/AnuragHydro/orgs', 'repos_url': 'https://api.github.com/users/AnuragHydro/repos', 'events_url': 'https://api.github.com/users/AnuragHydro/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AnuragHydro/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:39:16Z', 'updated_at': '2018-12-13T18:39:16Z', 'author_association': 'NONE', 'body': \"@fulldecent to be even more simplistic, it's like having a purse and personal assistant. Instead of separately carrying your driver's license, credit card, debit card, passport, etc. you carry it all in the purse - the purse is your `EIN`. Instead of you having to sift through your purse and finding all the things you need at exactly the right time to give to the store clerk, your assistant does all of that for you. Your assistant is the `provider`. The store clerk is the `resolver` who has his own unique way of recognizing you based on some combination of the items in your purse. \"}}, 'public': True, 'created_at': '2018-12-13T18:39:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750246975', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'ejections-to-epoch', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:39:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750233064', 'type': 'CreateEvent', 'actor': {'id': 22116, 'login': 'ryanio', 'display_login': 'ryanio', 'gravatar_id': '', 'url': 'https://api.github.com/users/ryanio', 'avatar_url': 'https://avatars.githubusercontent.com/u/22116?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'ref': 'nodeInfoStories', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum Components Library in React', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:36:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750230764', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:36:12Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073768', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073768', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073768, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3Mzc2OA==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:36:11Z', 'updated_at': '2018-12-13T18:36:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'You could flatten the object, but the depositor would need to know that they need to remove two fields from the specified SSZ object. \\r\\n\\r\\nWith the separate objects, it is clearer how to construct the deposit input data'}}, 'public': True, 'created_at': '2018-12-13T18:36:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750225689', 'type': 'IssueCommentEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:35:16Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447073472', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447073472', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447073472, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA3MzQ3Mg==', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:35:16Z', 'updated_at': '2018-12-13T18:35:16Z', 'author_association': 'CONTRIBUTOR', 'body': \"It is marginally beneficial that the log outputs `deposit_data` as a a properly formatted SSZ object corresponding to `DepositData`. This is done primarily through requiring the input to be an SSZ object itself `DepositInput` and then concatenating it with the additional time and deposit gwei value fields.\\r\\n\\r\\nThis is nice because the deposit contract doesn't need to a priori know anything about the required input fields which could allow us to change them down the line without deploying a new pow deposit contract.\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T18:35:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206911', 'type': 'PushEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135436375, 'size': 15, 'distinct_size': 15, 'ref': 'refs/heads/master', 'head': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'before': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'commits': [{'sha': '78dd638a007bc09fa9956d48342c1292aa67a113', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Split up bcc tests into multiple files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/78dd638a007bc09fa9956d48342c1292aa67a113'}, {'sha': '7078b4408fa7b98d41964079f25364fea6dcab96', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add bcc peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/7078b4408fa7b98d41964079f25364fea6dcab96'}, {'sha': '9aa48c6cca567f8da76d797d59231937ee875287', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helper to create peers in peer pool', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9aa48c6cca567f8da76d797d59231937ee875287'}, {'sha': '4e9f017336cc67fbaa13f364e199dbe799cb386c', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/4e9f017336cc67fbaa13f364e199dbe799cb386c'}, {'sha': '14c5b1e68aac0bf3169d8ec94907ca05b00b59c9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add helpers to create beacon block chains', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/14c5b1e68aac0bf3169d8ec94907ca05b00b59c9'}, {'sha': '3471297ce208400b2b81b3f20945053f88d3fac4', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Add tests for the beacon block request server', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/3471297ce208400b2b81b3f20945053f88d3fac4'}, {'sha': 'f22482da0f6b944edc7014b203d0ec97c857c84a', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Distinguish chain branches by state root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f22482da0f6b944edc7014b203d0ec97c857c84a'}, {'sha': 'f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use debug2 debugger instead of trace', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f1bb85fe37fd5dc2cbdbabc41c215a4b210c9c63'}, {'sha': '62162dbeca0543f71c280fd02899f48ebf03edb1', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Fix type hints', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/62162dbeca0543f71c280fd02899f48ebf03edb1'}, {'sha': '9b28e82c14407788754708f04307427d53063b24', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Order imports properly', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/9b28e82c14407788754708f04307427d53063b24'}, {'sha': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Avoid unnecessary type casting', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5'}, {'sha': '0284944c617debee59e2458ac2f8348f534468d9', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Cleanups', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0284944c617debee59e2458ac2f8348f534468d9'}, {'sha': '08529b6e6cd3d64f6604c40ae515768bf9da10f6', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Hint GetBeaconBlock message type with TypedDict', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/08529b6e6cd3d64f6604c40ae515768bf9da10f6'}, {'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'Jannik Luhn'}, 'message': 'Use eth_utils.toolz', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}, {'sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'author': {'email': 'jannik.luhn@brainbot.com', 'name': 'jannikluhn'}, 'message': 'Merge pull request #1574 from jannikluhn/bcc-requests\\n\\nBeacon block request handler', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/2b25500736f2ac4a3e4c28a434e8770784121bdb'}]}, 'public': True, 'created_at': '2018-12-13T18:31:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750206478', 'type': 'PullRequestEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1574, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'closed', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T18:31:38Z', 'closed_at': '2018-12-13T18:31:37Z', 'merged_at': '2018-12-13T18:31:37Z', 'merge_commit_sha': '2b25500736f2ac4a3e4c28a434e8770784121bdb', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T18:31:37Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 8, 'maintainer_can_modify': False, 'commits': 14, 'additions': 581, 'deletions': 175, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T18:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750177978', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135421608, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'before': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'commits': [{'sha': 'fabb9e86d958f7b67b63450ef0a8c200b7127b38', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: installing yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/fabb9e86d958f7b67b63450ef0a8c200b7127b38'}]}, 'public': True, 'created_at': '2018-12-13T18:26:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750166497', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135415491, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'before': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'commits': [{'sha': '146d9340d5a1ca1431e48201be1f8550cda5bd5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: Ignoring vim files', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/146d9340d5a1ca1431e48201be1f8550cda5bd5c'}]}, 'public': True, 'created_at': '2018-12-13T18:24:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750161942', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135413286, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'before': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'commits': [{'sha': 'f2d127892863eb8dc0db479deab6b23cc1480e95', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: Install latest yarn on Docker container', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/f2d127892863eb8dc0db479deab6b23cc1480e95'}]}, 'public': True, 'created_at': '2018-12-13T18:23:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750158910', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135411741, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'before': '411e68d229fee7a4ea110f2701c02db9737814e8', 'commits': [{'sha': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/151e73fb87a7721d1d3f9d25e40ece1c454991a0'}]}, 'public': True, 'created_at': '2018-12-13T18:22:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750137390', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135400624, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'before': '697d3c5eb58df26239bea03154db298e171b2ece', 'commits': [{'sha': 'cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'minor fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd9e7ecaeb2f0ccaa3e5cbe4bcd5aa178278b4c7'}]}, 'public': True, 'created_at': '2018-12-13T18:18:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750132842', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135398336, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/slashable-functions', 'head': '697d3c5eb58df26239bea03154db298e171b2ece', 'before': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'commits': [{'sha': '697d3c5eb58df26239bea03154db298e171b2ece', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'add doc string for new slashing helper funtions', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/697d3c5eb58df26239bea03154db298e171b2ece'}]}, 'public': True, 'created_at': '2018-12-13T18:17:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750097961', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 313, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313', 'id': 238483710, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDgzNzEw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/313', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/313.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313', 'number': 313, 'state': 'open', 'locked': False, 'title': 'Cleanup casper slashing', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'addresses #304 \\r\\n\\r\\n* add `is_double_vote` helper\\r\\n* add` is_surround_vote` helper\\r\\n* minor cleanup to order/presentation of `casper_slashings` section', 'created_at': '2018-12-13T18:11:21Z', 'updated_at': '2018-12-13T18:11:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'head': {'label': 'ethereum:slashable-functions', 'ref': 'slashable-functions', 'sha': '7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T17:28:40Z', 'pushed_at': '2018-12-13T18:09:55Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/313'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/313/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/313/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/7c833fafc5d04278a63ed3e36d4bc5b77e4a33e8'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 30, 'deletions': 6, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T18:11:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750093206', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T18:10:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447066020', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447066020', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447066020, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NjAyMA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:10:33Z', 'updated_at': '2018-12-13T18:10:33Z', 'author_association': 'CONTRIBUTOR', 'body': '@jacqueswww @fubuloubu are we sure that we don\\'t want this to be something that has to be a bit more explicit? Like by creating an internal function `extend(a, n, v=0)`, that takes two required parameters, and one optional parameter. \\r\\n\\r\\nThe first parameter \"a\" would be the input list to be extended, the second parameter \"n\" would be the number of entries to extend the given list by, and the third, optional, parameter \"v\" would be the value to extend with, which would have a default value of 0.'}}, 'public': True, 'created_at': '2018-12-13T18:10:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750089162', 'type': 'CreateEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'slashable-functions', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T18:09:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750071324', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T18:06:39Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447064835', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447064835', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447064835, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDgzNQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:06:39Z', 'updated_at': '2018-12-13T18:06:39Z', 'author_association': 'COLLABORATOR', 'body': 'On second thought, is there a good reason for not merging `DepositData` and `DepositInput` into a single flat object? cc @djrtwo'}}, 'public': True, 'created_at': '2018-12-13T18:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750070365', 'type': 'WatchEvent', 'actor': {'id': 20375997, 'login': 'CrystalEyes7', 'display_login': 'CrystalEyes7', 'gravatar_id': '', 'url': 'https://api.github.com/users/CrystalEyes7', 'avatar_url': 'https://avatars.githubusercontent.com/u/20375997?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T18:06:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065910', 'type': 'IssuesEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750065887', 'type': 'IssueCommentEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'repository_url': 'https://api.github.com/repos/ethereum/mist-shell', 'labels_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/comments', 'events_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3/events', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3', 'id': 388384115, 'node_id': 'MDU6SXNzdWUzODgzODQxMTU=', 'number': 3, 'title': 'Trigger CI release process for new mist(-ui)-react versions ', 'user': {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, {'login': 'PhilippLgh', 'id': 4280481, 'node_id': 'MDQ6VXNlcjQyODA0ODE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4280481?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhilippLgh', 'html_url': 'https://github.com/PhilippLgh', 'followers_url': 'https://api.github.com/users/PhilippLgh/followers', 'following_url': 'https://api.github.com/users/PhilippLgh/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhilippLgh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhilippLgh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhilippLgh/subscriptions', 'organizations_url': 'https://api.github.com/users/PhilippLgh/orgs', 'repos_url': 'https://api.github.com/users/PhilippLgh/repos', 'events_url': 'https://api.github.com/users/PhilippLgh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhilippLgh/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-06T20:26:26Z', 'updated_at': '2018-12-13T18:05:40Z', 'closed_at': '2018-12-13T18:05:40Z', 'author_association': 'COLLABORATOR', 'body': \"We want the CI to build a new release draft whenever a new mist(-ui)-react version is released to:\\r\\nhttps://github.com/ethereum/mist-ui-react/releases\\r\\n\\r\\nAfter the build is tested and changed from draft to release this should NOT trigger electron-builder's auto-updater because electron-app-updater will take care of updating installed versions.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/mist-shell/issues/comments/447064518', 'html_url': 'https://github.com/ethereum/mist-shell/issues/3#issuecomment-447064518', 'issue_url': 'https://api.github.com/repos/ethereum/mist-shell/issues/3', 'id': 447064518, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA2NDUxOA==', 'user': {'login': 'evertonfraga', 'id': 47108, 'node_id': 'MDQ6VXNlcjQ3MTA4', 'avatar_url': 'https://avatars2.githubusercontent.com/u/47108?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'html_url': 'https://github.com/evertonfraga', 'followers_url': 'https://api.github.com/users/evertonfraga/followers', 'following_url': 'https://api.github.com/users/evertonfraga/following{/other_user}', 'gists_url': 'https://api.github.com/users/evertonfraga/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/evertonfraga/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/evertonfraga/subscriptions', 'organizations_url': 'https://api.github.com/users/evertonfraga/orgs', 'repos_url': 'https://api.github.com/users/evertonfraga/repos', 'events_url': 'https://api.github.com/users/evertonfraga/events{/privacy}', 'received_events_url': 'https://api.github.com/users/evertonfraga/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T18:05:40Z', 'updated_at': '2018-12-13T18:05:40Z', 'author_association': 'MEMBER', 'body': 'This is in place. I am now extending circleCI build to produce mac and windows artifacts.\\r\\n![kapture 2018-12-11 at 16 13 45](https://user-images.githubusercontent.com/47108/49958059-d9886180-fef0-11e8-8d12-fa79ef08f055.gif)\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T18:05:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750016462', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3135337275, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'before': 'e84a043b5ffae1f7dd3adc7089b3502444f8e3e0', 'commits': [{'sha': '95d305081b9741a0609bfa1cbb4ad0986980f3fe', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: enables windows and linux builds', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/95d305081b9741a0609bfa1cbb4ad0986980f3fe'}]}, 'public': True, 'created_at': '2018-12-13T17:56:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750005206', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/46/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/46', 'id': 389800326, 'node_id': 'MDU6SXNzdWUzODk4MDAzMjY=', 'number': 46, 'title': 'SendTx components: TxParties', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-11T14:51:00Z', 'updated_at': '2018-12-13T17:54:44Z', 'closed_at': '2018-12-13T17:54:44Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8750004166', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/49/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/49', 'id': 390791951, 'node_id': 'MDU6SXNzdWUzOTA3OTE5NTE=', 'number': 49, 'title': 'SendTx components: TxDescription', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:54:31Z', 'updated_at': '2018-12-13T17:54:31Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:54:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749994118', 'type': 'IssuesEvent', 'actor': {'id': 3621728, 'login': 'marcgarreau', 'display_login': 'marcgarreau', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'avatar_url': 'https://avatars.githubusercontent.com/u/3621728?'}, 'repo': {'id': 157903851, 'name': 'ethereum/ethereum-react-components', 'url': 'https://api.github.com/repos/ethereum/ethereum-react-components'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43', 'repository_url': 'https://api.github.com/repos/ethereum/ethereum-react-components', 'labels_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/comments', 'events_url': 'https://api.github.com/repos/ethereum/ethereum-react-components/issues/43/events', 'html_url': 'https://github.com/ethereum/ethereum-react-components/issues/43', 'id': 389099286, 'node_id': 'MDU6SXNzdWUzODkwOTkyODY=', 'number': 43, 'title': 'Chore: set up eslint and rules', 'user': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'marcgarreau', 'id': 3621728, 'node_id': 'MDQ6VXNlcjM2MjE3Mjg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/3621728?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/marcgarreau', 'html_url': 'https://github.com/marcgarreau', 'followers_url': 'https://api.github.com/users/marcgarreau/followers', 'following_url': 'https://api.github.com/users/marcgarreau/following{/other_user}', 'gists_url': 'https://api.github.com/users/marcgarreau/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/marcgarreau/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/marcgarreau/subscriptions', 'organizations_url': 'https://api.github.com/users/marcgarreau/orgs', 'repos_url': 'https://api.github.com/users/marcgarreau/repos', 'events_url': 'https://api.github.com/users/marcgarreau/events{/privacy}', 'received_events_url': 'https://api.github.com/users/marcgarreau/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-10T01:48:04Z', 'updated_at': '2018-12-13T17:52:40Z', 'closed_at': '2018-12-13T17:52:40Z', 'author_association': 'COLLABORATOR', 'body': ''}}, 'public': True, 'created_at': '2018-12-13T17:52:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749977115', 'type': 'IssueCommentEvent', 'actor': {'id': 9488369, 'login': 'riusricardo', 'display_login': 'riusricardo', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'avatar_url': 'https://avatars.githubusercontent.com/u/9488369?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:49:39Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447059559', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447059559', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447059559, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1OTU1OQ==', 'user': {'login': 'riusricardo', 'id': 9488369, 'node_id': 'MDQ6VXNlcjk0ODgzNjk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9488369?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/riusricardo', 'html_url': 'https://github.com/riusricardo', 'followers_url': 'https://api.github.com/users/riusricardo/followers', 'following_url': 'https://api.github.com/users/riusricardo/following{/other_user}', 'gists_url': 'https://api.github.com/users/riusricardo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/riusricardo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/riusricardo/subscriptions', 'organizations_url': 'https://api.github.com/users/riusricardo/orgs', 'repos_url': 'https://api.github.com/users/riusricardo/repos', 'events_url': 'https://api.github.com/users/riusricardo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/riusricardo/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:49:39Z', 'updated_at': '2018-12-13T17:49:39Z', 'author_association': 'NONE', 'body': '@gitcoinbot Working on it. '}}, 'public': True, 'created_at': '2018-12-13T17:49:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749953794', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447058300', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447058300', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447058300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1ODMwMA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:45:30Z', 'updated_at': '2018-12-13T17:45:30Z', 'author_association': 'MEMBER', 'body': \"> The Drevlians sent twenty of their best men to persuade Olga to marry their Prince Mal and give up her rule of Kievan Rus'. She had them buried alive. Then she sent word to Prince Mal that she accepted the proposal, but required their most distinguished men to accompany her on the journey in order for her people to accept the offer of marriage. The Drevlians sent the best men who governed their land. Upon their arrival, she offered them a warm welcome and an invitation to clean up after their long journey in a bathhouse. After they entered, she locked the doors and set fire to the building, burning them alive. \\r\\n\\r\\nBadass and a little terrifying \"}}, 'public': True, 'created_at': '2018-12-13T17:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749940992', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551', 'pull_request_review_id': 184786031, 'id': 241497551, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5NzU1MQ==', 'diff_hunk': '@@ -0,0 +1,126 @@\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+from eth_utils.toolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc.commands import (\\n+ GetBeaconBlocks,\\n+ GetBeaconBlocksMessage,\\n+)\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(GetBeaconBlocksMessage, msg))', 'path': 'trinity/protocol/bcc/servers.py', 'position': 60, 'original_position': 60, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm *much* more comfortable with this type of `cast` than with the other so :+1: \", 'created_at': '2018-12-13T17:43:14Z', 'updated_at': '2018-12-13T17:43:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241497551'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241497551'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T17:43:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7263, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:43:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749886476', 'type': 'DeleteEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'SyncSim', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:33:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749880396', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135266894, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '411e68d229fee7a4ea110f2701c02db9737814e8', 'before': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'commits': [{'sha': '411e68d229fee7a4ea110f2701c02db9737814e8', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/411e68d229fee7a4ea110f2701c02db9737814e8'}]}, 'public': True, 'created_at': '2018-12-13T17:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749878308', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T17:32:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447053892', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447053892', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447053892, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1Mzg5Mg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:32:08Z', 'updated_at': '2018-12-13T17:32:08Z', 'author_association': 'CONTRIBUTOR', 'body': '> * we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n\\r\\n:+1: \\r\\n> * we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n:+1: '}}, 'public': True, 'created_at': '2018-12-13T17:32:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749877627', 'type': 'PullRequestEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-13T17:32:00Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-13T17:28:24Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 28191, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 26, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 26, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 336, 'deletions': 2, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T17:32:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870981', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T17:30:48Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447053480', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447053480', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447053480, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MzQ4MA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:30:48Z', 'updated_at': '2018-12-13T17:30:48Z', 'author_association': 'MEMBER', 'body': \"I'll erase all mapping knowledge if there's an assignment or parameter of mapping type in this PR.\"}}, 'public': True, 'created_at': '2018-12-13T17:30:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749870417', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1595/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1595', 'id': 390783409, 'node_id': 'MDU6SXNzdWUzOTA3ODM0MDk=', 'number': 1595, 'title': 'Rename: `*_hash` -> `*_root`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T17:30:42Z', 'updated_at': '2018-12-13T17:30:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nhttps://github.com/ethereum/eth2.0-specs/pull/289\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n* Go through the data structures and fix it.\\r\\n* Also, check trinity side.'}}, 'public': True, 'created_at': '2018-12-13T17:30:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749859817', 'type': 'WatchEvent', 'actor': {'id': 13961530, 'login': 'rahulvickysingh008', 'display_login': 'rahulvickysingh008', 'gravatar_id': '', 'url': 'https://api.github.com/users/rahulvickysingh008', 'avatar_url': 'https://avatars.githubusercontent.com/u/13961530?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858265', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135255307, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'before': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'commits': [{'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'author': {'email': 'raul@prysmaticlabs.com', 'name': 'Raul Jordan'}, 'message': 'replace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/923df80b037523f15ed147af5cd6e6eea1c0cdce'}, {'sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #312 from rauljordan/master\\n\\nReplace shard_block_hash with shard_block_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/be7217acc5440f4e767f58aefeb7f676ad7fc960'}]}, 'public': True, 'created_at': '2018-12-13T17:28:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749858172', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'closed', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:28:38Z', 'closed_at': '2018-12-13T17:28:38Z', 'merged_at': '2018-12-13T17:28:38Z', 'merge_commit_sha': 'be7217acc5440f4e767f58aefeb7f676ad7fc960', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-12-13T17:27:27Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T17:28:38Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:28:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749856807', 'type': 'CreateEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'ref': 'Chaintools', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum end-to-end test harness', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T17:28:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749851002', 'type': 'PullRequestEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 312, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312', 'id': 238471572, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcxNTcy', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/312', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/312.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312', 'number': 312, 'state': 'open', 'locked': False, 'title': 'Replace shard_block_hash with shard_block_root', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Simple PR that replaces shard_block_hash with shard_block_root in attestation processing block operations.', 'created_at': '2018-12-13T17:27:26Z', 'updated_at': '2018-12-13T17:27:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce', 'head': {'label': 'rauljordan:master', 'ref': 'master', 'sha': '923df80b037523f15ed147af5cd6e6eea1c0cdce', 'user': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 152184945, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTIxODQ5NDU=', 'name': 'eth2.0-specs', 'full_name': 'rauljordan/eth2.0-specs', 'private': False, 'owner': {'login': 'rauljordan', 'id': 5572669, 'node_id': 'MDQ6VXNlcjU1NzI2Njk=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/5572669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'html_url': 'https://github.com/rauljordan', 'followers_url': 'https://api.github.com/users/rauljordan/followers', 'following_url': 'https://api.github.com/users/rauljordan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rauljordan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rauljordan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rauljordan/subscriptions', 'organizations_url': 'https://api.github.com/users/rauljordan/orgs', 'repos_url': 'https://api.github.com/users/rauljordan/repos', 'events_url': 'https://api.github.com/users/rauljordan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rauljordan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rauljordan/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/rauljordan/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rauljordan/eth2.0-specs/deployments', 'created_at': '2018-10-09T03:54:47Z', 'updated_at': '2018-10-09T03:54:49Z', 'pushed_at': '2018-12-13T17:26:52Z', 'git_url': 'git://github.com/rauljordan/eth2.0-specs.git', 'ssh_url': 'git@github.com:rauljordan/eth2.0-specs.git', 'clone_url': 'https://github.com/rauljordan/eth2.0-specs.git', 'svn_url': 'https://github.com/rauljordan/eth2.0-specs', 'homepage': None, 'size': 160, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T16:35:05Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1140, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/312'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/312/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/312/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/923df80b037523f15ed147af5cd6e6eea1c0cdce'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T17:27:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749837155', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695', 'pull_request_review_id': 184778431, 'id': 241491695, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ5MTY5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Old comment can be deleted?\\r\\n\\r\\n```suggestion\\r\\n```', 'created_at': '2018-12-13T17:25:04Z', 'updated_at': '2018-12-13T17:25:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241491695'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241491695'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'open', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T17:25:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '86658c108cd189bf17a9fc74e9e5d564293d803e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 167, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:25:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749814373', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135232279, 'size': 5, 'distinct_size': 5, 'ref': 'refs/heads/master', 'head': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'before': '24da03a535ed34767285e1f37f94c122e1c501ea', 'commits': [{'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1139 from veox/squash-deprecation-warnings\\n\\nPacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/d96fb5391b410816c9aa6affcd207c2a8193ea26'}]}, 'public': True, 'created_at': '2018-12-13T17:21:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749813953', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1139, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139', 'id': 231655042, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMxNjU1MDQy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1139', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1139.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1139.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139', 'number': 1139, 'state': 'closed', 'locked': False, 'title': 'Pacify Python `DeprecationWarning`s + add solidityKeccak() and deprecate soliditySha3()', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWithout `export PYTHONWARNINGS=ignore`, many programs are now overly noisy.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nCollecting and squashing these warnings here.\\r\\n\\r\\n### Snippet for `releases.rst`\\r\\n\\r\\n```\\r\\n* `Web3.soliditySha3` has been deprecated; use `Web3.solidityKeccak` instead.\\r\\n```\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n\"Whistle if you see \\'em!..\"\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://3c1703fe8d.site.internapcdn.net/newman/gfx/news/hires/2011/groundhog.jpg)\\r\\n\\r\\nSource: [Wikipedia](https://commons.wikimedia.org/wiki/File:Groundhog-Standing2.jpg); by [April King](https://pokeinthe.io/)', 'created_at': '2018-11-16T21:04:46Z', 'updated_at': '2018-12-13T17:21:06Z', 'closed_at': '2018-12-13T17:21:06Z', 'merged_at': '2018-12-13T17:21:06Z', 'merge_commit_sha': 'd96fb5391b410816c9aa6affcd207c2a8193ea26', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'head': {'label': 'veox:squash-deprecation-warnings', 'ref': 'squash-deprecation-warnings', 'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 92165761, 'node_id': 'MDEwOlJlcG9zaXRvcnk5MjE2NTc2MQ==', 'name': 'web3.py', 'full_name': 'veox/web3.py', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/veox/web3.py', 'forks_url': 'https://api.github.com/repos/veox/web3.py/forks', 'keys_url': 'https://api.github.com/repos/veox/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/veox/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/web3.py/events', 'assignees_url': 'https://api.github.com/repos/veox/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/veox/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/veox/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/veox/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/web3.py/merges', 'archive_url': 'https://api.github.com/repos/veox/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/veox/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/web3.py/deployments', 'created_at': '2017-05-23T11:35:30Z', 'updated_at': '2018-10-01T12:45:09Z', 'pushed_at': '2018-11-22T11:45:53Z', 'git_url': 'git://github.com/veox/web3.py.git', 'ssh_url': 'git@github.com:veox/web3.py.git', 'clone_url': 'https://github.com/veox/web3.py.git', 'svn_url': 'https://github.com/veox/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2914, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T13:29:56Z', 'pushed_at': '2018-12-13T17:21:06Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3065, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1139'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1139/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1139/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 7, 'review_comments': 4, 'maintainer_can_modify': False, 'commits': 4, 'additions': 37, 'deletions': 32, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T17:21:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749804826', 'type': 'IssueCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5653', 'id': 390695553, 'node_id': 'MDU6SXNzdWUzOTA2OTU1NTM=', 'number': 5653, 'title': 'shared_ptrs in Yul ast should all be unique_ptrs', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T14:10:15Z', 'updated_at': '2018-12-13T17:19:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This is to prevent two references to the same object from different places, which could result in unexpected behaviour if the object is modified.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447050003', 'html_url': 'https://github.com/ethereum/solidity/issues/5653#issuecomment-447050003', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5653', 'id': 447050003, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA1MDAwMw==', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:19:36Z', 'updated_at': '2018-12-13T17:19:36Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'd like to take that over, if you agree (I clicked the button a way to eager). should also improve understanding ownership a lot more. :)\"}}, 'public': True, 'created_at': '2018-12-13T17:19:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749791216', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126', 'pull_request_review_id': 184775083, 'id': 241489126, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4OTEyNg==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!\\n+ |\\n+0 | contract C {', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 12, 'original_position': 12, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"that's a bug I fixed already too. need to reflect the changes in the test suite. :)\", 'created_at': '2018-12-13T17:17:20Z', 'updated_at': '2018-12-13T17:17:21Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241489126'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241489126'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241023071}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:17:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749786455', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851', 'pull_request_review_id': 184774761, 'id': 241488851, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ4ODg1MQ==', 'diff_hunk': '@@ -1,6 +1,13 @@\\n-too_long_line_edge_out.sol:1:1: Warning: Source file does not specify required compiler version!\\n-contract C {\\n-^ (Relevant source part starts here and spans across multiple lines).\\n-too_long_line_edge_out.sol:2:37: Error: Identifier not found or not unique.\\n- ... function fffffffffffffffffffffff(announcementTypeTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT Typ, string A) onlyOwner external ...\\n- ^----------------------------------------------------------------------------------------------^\\n+\\n+Warning: Source file does not specify required compiler version!\\n+\\n+ --> too_long_line_edge_out.sol:1:1: Source file does not specify required compiler version!', 'path': 'test/cmdlineTests/too_long_line_edge_out.sol.err', 'position': 10, 'original_position': 10, 'commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'original_commit_id': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"no. this output just hasn't been updated to the code changes yet. will fix that. thanks :)\", 'created_at': '2018-12-13T17:16:33Z', 'updated_at': '2018-12-13T17:16:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241488851'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511#discussion_r241488851'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}}, 'in_reply_to_id': 241022855}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511', 'id': 233731220, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzNzMxMjIw', 'html_url': 'https://github.com/ethereum/solidity/pull/5511', 'diff_url': 'https://github.com/ethereum/solidity/pull/5511.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5511.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511', 'number': 5511, 'state': 'open', 'locked': False, 'title': '[solc] colorized diagnostics output', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR is a resurrection of #3406 and their related #4338 and #4340.\\r\\n\\r\\n* ANSI coloring (termcolor): I didn't copy'n'paste the original one (which requires a additional license), but hacked together our own, that fits our needs\\r\\n* SourceReferenceFormatter: greatly refactored to:\\r\\n * have improved diagnostics output format (this includes also streamlining line-truncation, as mentioned in #5169 (which we can close then).\\r\\n * support colored output\\r\\n* solc: adds `--color` for forced colorized output and `--no-color` for explicitly disabling terminal-autodetection, e.g. if none of these will be given, the diagnostic output will be colored when stdout/stderr is connected to a terminal.\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/56763/49053534-cdae5700-f1f0-11e8-9d2f-c7440d8a0203.png)\\r\\n\\r\\n### please note\\r\\n\\r\\n**Only the last 3 commits matter**, the rest is from the rebase.\", 'created_at': '2018-11-26T23:32:02Z', 'updated_at': '2018-12-13T17:16:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '89051e0e1027b12869087567e12cd7ec3b2dd43d', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'bit-shift', 'id': 20012009, 'node_id': 'MDQ6VXNlcjIwMDEyMDA5', 'avatar_url': 'https://avatars0.githubusercontent.com/u/20012009?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bit-shift', 'html_url': 'https://github.com/bit-shift', 'followers_url': 'https://api.github.com/users/bit-shift/followers', 'following_url': 'https://api.github.com/users/bit-shift/following{/other_user}', 'gists_url': 'https://api.github.com/users/bit-shift/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bit-shift/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bit-shift/subscriptions', 'organizations_url': 'https://api.github.com/users/bit-shift/orgs', 'repos_url': 'https://api.github.com/users/bit-shift/repos', 'events_url': 'https://api.github.com/users/bit-shift/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bit-shift/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [{'id': 467898404, 'node_id': 'MDU6TGFiZWw0Njc4OTg0MDQ=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/breaking%20change%20:warning:', 'name': 'breaking change :warning:', 'color': 'b60205', 'default': False}, {'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}, {'id': 692642590, 'node_id': 'MDU6TGFiZWw2OTI2NDI1OTA=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/feature', 'name': 'feature', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'head': {'label': 'ethereum:cp-error-output', 'ref': 'cp-error-output', 'sha': 'b0e16aa7612daccbfe2b946ac98ed1c27b998755', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '1476acb8045033a9a3d2e1a1d13c5aaa8ed6942c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5511'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5511/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5511/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b0e16aa7612daccbfe2b946ac98ed1c27b998755'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T17:16:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749785178', 'type': 'IssueCommentEvent', 'actor': {'id': 27903976, 'login': 'gitcoinbot', 'display_login': 'gitcoinbot', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'avatar_url': 'https://avatars.githubusercontent.com/u/27903976?'}, 'repo': {'id': 67120760, 'name': 'ethereum/swarm-dapps', 'url': 'https://api.github.com/repos/ethereum/swarm-dapps'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'repository_url': 'https://api.github.com/repos/ethereum/swarm-dapps', 'labels_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/comments', 'events_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24/events', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24', 'id': 387406666, 'node_id': 'MDU6SXNzdWUzODc0MDY2NjY=', 'number': 24, 'title': 'PSS CHAT -- Swarm Demo App', 'user': {'login': 'homotopycolimit', 'id': 12838530, 'node_id': 'MDQ6VXNlcjEyODM4NTMw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/12838530?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/homotopycolimit', 'html_url': 'https://github.com/homotopycolimit', 'followers_url': 'https://api.github.com/users/homotopycolimit/followers', 'following_url': 'https://api.github.com/users/homotopycolimit/following{/other_user}', 'gists_url': 'https://api.github.com/users/homotopycolimit/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/homotopycolimit/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/homotopycolimit/subscriptions', 'organizations_url': 'https://api.github.com/users/homotopycolimit/orgs', 'repos_url': 'https://api.github.com/users/homotopycolimit/repos', 'events_url': 'https://api.github.com/users/homotopycolimit/events{/privacy}', 'received_events_url': 'https://api.github.com/users/homotopycolimit/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-12-04T17:50:27Z', 'updated_at': '2018-12-13T17:16:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'PSS Chat App\\r\\n======\\r\\n\\r\\nContext:\\r\\n-------\\r\\nWe are hosting several demo applications on Swarm including:\\r\\n\\r\\nThe Photocalbum https://swarm-gateways.net/bzz:/example.photoalbum.eth/\\r\\nThe ENS updater https://swarm-gateways.net/bzz:/swarm-ens.eth/\\r\\nThe Swarm File Manager https://swarm-gateways.net/bzz:/swarm-explorer.eth/\\r\\nand more (see swarmapps.eth)\\r\\n\\r\\nThere are some new features of Swarm 0.3.x that we wish to showcase. \\r\\n\\r\\n\\r\\n\\r\\nGoal 1: A simple demo chat dapp using Swarm PSS \\r\\n-----\\r\\nSwarm 0.3.x contains the PSS communications protocol. It is documented here:\\r\\n\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/pss.html\\r\\nhttps://swarm-guide.readthedocs.io/en/latest/apireference.html#pss\\r\\n\\r\\nWe would like a decentralised (Swarm hosted) application that leverages PSS messages for a simple chat application. \\r\\nFor goal 1, this application must allow a user to add another user\\'s PSS address and then engage in a back-and-forth irc-style chat.\\r\\n\\r\\nBonus: Allow sharing of images\\r\\nAdding an image to the chat, should perform an (encrypted?) swarm upload of the image and share the hash with the chat peers - so that they can download the images from swarm and inline them in the chats.\\r\\n\\r\\n\\r\\nGoal 2: Named chat contacts\\r\\n-----\\r\\nThe Ethereum Name Service (ENS) allows us to have payment addresses and content hashes assigned to names. For example, theswarm.eth currently has d1de9994b4d039f6548d191eb26786769f580809256b4685ef316805265ea162 registered as the content hash and 0x3df7ce6b04663bb6f625bab474543d2e43aaaa44 as the payment address.\\r\\n\\r\\nUnder the hood, what the ENS does is to assign a special \\'resolver\\' contract to the name. The currently used default resolver has fields for \\'address\\' and \\'content\\'.\\r\\nSee also: http://docs.ens.domains/en/latest/\\r\\n\\r\\nThere are discussions on changing the behaviour of the default resolver specifically to accomodate more diverse content hashes (such as IPFS multihash) alongside Swarm. (example: https://eips.ethereum.org/EIPS/eip-1062 or https://github.com/ethereum/EIPs/pull/1577). In the medium term we would like to contribute Swarm related improvement suggestions to the ENS ourselves.\\r\\n\\r\\nHowever, goal 2 of this project is simply to experiment with custom resolver contracts on the testnet. Try a resolver that allows users to add a PSS address to their ENS name and adapt the chat dapp to be able to find chat peers by name. \\r\\n\\r\\nBe aware of the security imlications of forward vs backward lookups. [Nobody can stop me registering your PSS address at my name].\\r\\n\\r\\n\\r\\nGoal 3: Feeds and Avatars\\r\\n-----\\r\\nAnother new feature in Swarm 0.3.x is that of feeds, allowing mutable content to be accessed at a static address.\\r\\n\\r\\nGoal 3 is to experiment further by extending the ENS resolver and the chat dapp to enable users to create a profile (avatar, name, bio) that is updatable as a Swarm feed, and have the hash of that feed registered in the Resolver.\\r\\n\\r\\nBonus: use functionality from the swarm-ens.eth demo app to implement a \"save profile\" button in the chat app.\\r\\n\\r\\nBonus 2: Allow user-to-user payments to be initiated from the chat using the \\'address\\' field of the resolver contracts as payment addresses. \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/comments/447049002', 'html_url': 'https://github.com/ethereum/swarm-dapps/issues/24#issuecomment-447049002', 'issue_url': 'https://api.github.com/repos/ethereum/swarm-dapps/issues/24', 'id': 447049002, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0OTAwMg==', 'user': {'login': 'gitcoinbot', 'id': 27903976, 'node_id': 'MDQ6VXNlcjI3OTAzOTc2', 'avatar_url': 'https://avatars2.githubusercontent.com/u/27903976?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gitcoinbot', 'html_url': 'https://github.com/gitcoinbot', 'followers_url': 'https://api.github.com/users/gitcoinbot/followers', 'following_url': 'https://api.github.com/users/gitcoinbot/following{/other_user}', 'gists_url': 'https://api.github.com/users/gitcoinbot/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gitcoinbot/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gitcoinbot/subscriptions', 'organizations_url': 'https://api.github.com/users/gitcoinbot/orgs', 'repos_url': 'https://api.github.com/users/gitcoinbot/repos', 'events_url': 'https://api.github.com/users/gitcoinbot/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gitcoinbot/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:16:20Z', 'updated_at': '2018-12-13T17:16:20Z', 'author_association': 'NONE', 'body': '@riusricardo Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!\\n* [x] reminder (3 days)\\n* [ ] escalation to mods (6 days)\\n\\nFunders only: Snooze warnings for [1 day](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=1) | [3 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=3) | [5 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=5) | [10 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=10) | [100 days](https://gitcoin.co/issue/ethereum/swarm-dapps/24/1909?snooze=100)'}}, 'public': True, 'created_at': '2018-12-13T17:16:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749779826', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T17:15:24Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447048699', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447048699', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447048699, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0ODY5OQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:15:24Z', 'updated_at': '2018-12-13T17:15:24Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn done'}}, 'public': True, 'created_at': '2018-12-13T17:15:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749772776', 'type': 'WatchEvent', 'actor': {'id': 45836066, 'login': 'dilbydilby', 'display_login': 'dilbydilby', 'gravatar_id': '', 'url': 'https://api.github.com/users/dilbydilby', 'avatar_url': 'https://avatars.githubusercontent.com/u/45836066?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T17:14:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749726029', 'type': 'IssueCommentEvent', 'actor': {'id': 35589221, 'login': 'haltman-at', 'display_login': 'haltman-at', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'avatar_url': 'https://avatars.githubusercontent.com/u/35589221?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5609', 'id': 388424408, 'node_id': 'MDU6SXNzdWUzODg0MjQ0MDg=', 'number': 5609, 'title': 'Allow assignment of overloaded function pointers to function variables', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-06T22:25:55Z', 'updated_at': '2018-12-13T17:06:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"## Abstract\\r\\n\\r\\nCurrently, it's impossible to assign an overloaded function to a function variable; the compiler complains that it cannot resolve the identifier. This should be allowed, with resolution depending on the type of the variable.\\r\\n\\r\\n(I know there are several issues on here related to overloading already... I think this is a new one, though! Not sure whether this was a bug or a feature request, but I decided to put it down as a feature request. Thank you!)\\r\\n\\r\\n**Edit**: Sorry, I only realized while writing this that there's a problem here -- the implicit conversion rules for functions are too strict to allow what I want except in case of identical parameter types. So, this request has a problem. But, perhaps it could at least be allowed in that restrictive case of identical parameter types. Thank you!\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere's a simplified example:\\r\\n\\r\\n```\\r\\ncontract OverloadTest {\\r\\n\\r\\n function overloaded(uint x) public {}\\r\\n function overloaded(address x) public {}\\r\\n\\r\\n function overloadTest() public {\\r\\n function (uint) internal over1i;\\r\\n function (address) internal over2i;\\r\\n function (uint) external over1e;\\r\\n function (address) external over2e;\\r\\n over1i = overloaded;\\r\\n over2i = overloaded;\\r\\n over1e = this.overloaded;\\r\\n over2e = this.overloaded;\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAttempting to compile this yields the error `TypeError: No matching declaration found after variable lookup.`\\r\\n\\r\\n## Specification\\r\\n\\r\\nWhen an overloaded function name is assigned to a function variable, overload resolution should be invoked here based on the type of the variable that is being assigned to. That is to say, we consider the input parameter types of the type of the variable, and perform overload resolution on the overloaded function as if it were being called with those types as the types of the input parameters. The result can then be assigned to the variable (or result in a compile error, if it's incompatible in other ways, such as having incompatible return parameter types). This should occur both for internal functions and internal function variables, and for external functions and external function variables. So, in the above example, `over1i` would get the overload for `uint` input, and `over2i` would get the overload for `address` input; and similarly with the external analogues.\\r\\n\\r\\nFor a slightly less trivial example, if one were to write\\r\\n```\\r\\nfunction (uint8) internal over3i;\\r\\nover3i = overloaded;\\r\\n```\\r\\nthen `over3i` would be assigned the overload for `uint` input, as that's the overload that would be called if `overloaded` were called on `uint8` input. **Edit**: Actually, this can't work at present, because the `function (uint) internal` is not presently implicitly convertible to `function (uint8) internal`. It ought to be, but that's a separate feature request. Oh well. I guess only the trivial case can work at the moment.\\r\\n\\r\\nWhile if one were to write\\r\\n```\\r\\nfunction (uint) internal (returns uint) over4i;\\r\\nover4i = overloaded;\\r\\n```\\r\\nthen a compile error should result, as resolving the overload results in a value of type `function (uint) internal`, which cannot be implicitly converted to type `function (uint) internal (returns uint)`. (**Edit**: And shouldn't be able to be so converted!)\\r\\n\\r\\nFurther assignments involving a variable that has been assigned to in this way, or other uses of that variable, would then not require any further resolution; it's just the initial overloaded identifier that requires resolution.\\r\\n\\r\\nNote that the above specification only covers assignments, and not more complicated expressions; but at the moment, if I'm not mistaken, the only things one can do with function values are A. invoke them (overloading resolution is already performed for that), B. store them (I'm asking that it be performed for this too), or C. attach `gas` or `value` to them (which doesn't much change matters, and currently the resulting functions can't be stored anyway). So, I don't see this limitation as a problem.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nSince this solution only requires resolving an overload and then storing the result of the resolution in a function variable, in its usual representation, and doesn't require coming up with some new representation for function variables, there should be no backwards-compatibility issues.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447045731', 'html_url': 'https://github.com/ethereum/solidity/issues/5609#issuecomment-447045731', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5609', 'id': 447045731, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTczMQ==', 'user': {'login': 'haltman-at', 'id': 35589221, 'node_id': 'MDQ6VXNlcjM1NTg5MjIx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35589221?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/haltman-at', 'html_url': 'https://github.com/haltman-at', 'followers_url': 'https://api.github.com/users/haltman-at/followers', 'following_url': 'https://api.github.com/users/haltman-at/following{/other_user}', 'gists_url': 'https://api.github.com/users/haltman-at/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/haltman-at/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/haltman-at/subscriptions', 'organizations_url': 'https://api.github.com/users/haltman-at/orgs', 'repos_url': 'https://api.github.com/users/haltman-at/repos', 'events_url': 'https://api.github.com/users/haltman-at/events{/privacy}', 'received_events_url': 'https://api.github.com/users/haltman-at/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:35Z', 'updated_at': '2018-12-13T17:06:35Z', 'author_association': 'NONE', 'body': 'I see, oh well. Thank you anyway! Maybe eventually this will become possible, who knows.'}}, 'public': True, 'created_at': '2018-12-13T17:06:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749725129', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T17:06:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447045691', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447045691', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447045691, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTY5MQ==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:27Z', 'updated_at': '2018-12-13T17:06:27Z', 'author_association': 'COLLABORATOR', 'body': \"@djrtwo Can we specify the signature as a `('uint64', 'unint64')`?\"}}, 'public': True, 'created_at': '2018-12-13T17:06:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749723026', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T17:06:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447045557', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447045557', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447045557, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0NTU1Nw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T17:06:07Z', 'updated_at': '2018-12-13T17:06:07Z', 'author_association': 'CONTRIBUTOR', 'body': 'If the general theme is \"badass women\", does [Olga of Kiev](https://en.wikipedia.org/wiki/Olga_of_Kiev#Drevlian_Uprising) fit?..\\r\\n\\r\\n(FTR, [this SE answer](https://skeptics.stackexchange.com/questions/9815/would-tying-sulphur-to-the-feet-of-birds-allow-you-to-burn-down-a-house?answertab=votes#tab-top) has a slightly more primary source explanation of the device employed.)'}}, 'public': True, 'created_at': '2018-12-13T17:06:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749719416', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135183229, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'before': '47d51c405c51f52f609f32687a173e99be753287', 'commits': [{'sha': '63e2c38422e49de01b6f84cbe391fb45b75fea07', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/63e2c38422e49de01b6f84cbe391fb45b75fea07'}]}, 'public': True, 'created_at': '2018-12-13T17:05:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749667075', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135156205, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '47d51c405c51f52f609f32687a173e99be753287', 'before': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'commits': [{'sha': '47d51c405c51f52f609f32687a173e99be753287', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/47d51c405c51f52f609f32687a173e99be753287'}]}, 'public': True, 'created_at': '2018-12-13T16:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749664109', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:12Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042568', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042568', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042568, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjU2OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:12Z', 'updated_at': '2018-12-13T16:57:12Z', 'author_association': 'CONTRIBUTOR', 'body': 'What does this mean for the scope of this PR?'}}, 'public': True, 'created_at': '2018-12-13T16:57:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749662747', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:57:00Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447042490', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447042490', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447042490, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjQ5MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:57:00Z', 'updated_at': '2018-12-13T16:57:00Z', 'author_association': 'CONTRIBUTOR', 'body': 'Sounds good!'}}, 'public': True, 'created_at': '2018-12-13T16:57:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749659209', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:56:28Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n- the https://trinity.ethereum.org/ site is hosted via github pages from the `ethereum/trinity` repo so we need to maintain that.\\r\\n- annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447042292', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594#issuecomment-447042292', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'id': 447042292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MjI5Mg==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:56:28Z', 'updated_at': '2018-12-13T16:56:28Z', 'author_association': 'CONTRIBUTOR', 'body': '> annoyingly https://trinity.readthedocs.io is for the TNC token thing so we need to decide where to put the trinity specific docs.\\r\\n\\r\\nNot just the token, but also the \"Trinity routing node\" - funny enough, also in Python 3.6+:\\r\\n\\r\\nhttps://trinity.readthedocs.io/en/latest/en-EN/Trinity_Eth_Deployment_Guide_en.html\\r\\n\\r\\nName-collide all the things!..'}}, 'public': True, 'created_at': '2018-12-13T16:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749658410', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135151769, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'before': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'commits': [{'sha': '2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2b21bb5bd1a4c9bf0f1b2f652a090eef25814dc7'}]}, 'public': True, 'created_at': '2018-12-13T16:56:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749651813', 'type': 'ForkEvent', 'actor': {'id': 43618615, 'login': 'SODAMFIA', 'display_login': 'SODAMFIA', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'avatar_url': 'https://avatars.githubusercontent.com/u/43618615?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161669017, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjkwMTc=', 'name': 'py-evm', 'full_name': 'SODAMFIA/py-evm', 'private': False, 'owner': {'login': 'SODAMFIA', 'id': 43618615, 'node_id': 'MDQ6VXNlcjQzNjE4NjE1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/43618615?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SODAMFIA', 'html_url': 'https://github.com/SODAMFIA', 'followers_url': 'https://api.github.com/users/SODAMFIA/followers', 'following_url': 'https://api.github.com/users/SODAMFIA/following{/other_user}', 'gists_url': 'https://api.github.com/users/SODAMFIA/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SODAMFIA/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SODAMFIA/subscriptions', 'organizations_url': 'https://api.github.com/users/SODAMFIA/orgs', 'repos_url': 'https://api.github.com/users/SODAMFIA/repos', 'events_url': 'https://api.github.com/users/SODAMFIA/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SODAMFIA/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SODAMFIA/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/SODAMFIA/py-evm', 'forks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/forks', 'keys_url': 'https://api.github.com/repos/SODAMFIA/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SODAMFIA/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SODAMFIA/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/SODAMFIA/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SODAMFIA/py-evm/events', 'assignees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SODAMFIA/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SODAMFIA/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SODAMFIA/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/SODAMFIA/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SODAMFIA/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SODAMFIA/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SODAMFIA/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SODAMFIA/py-evm/merges', 'archive_url': 'https://api.github.com/repos/SODAMFIA/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SODAMFIA/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/SODAMFIA/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SODAMFIA/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SODAMFIA/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SODAMFIA/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SODAMFIA/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/SODAMFIA/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SODAMFIA/py-evm/deployments', 'created_at': '2018-12-13T16:55:23Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/SODAMFIA/py-evm.git', 'ssh_url': 'git@github.com:SODAMFIA/py-evm.git', 'clone_url': 'https://github.com/SODAMFIA/py-evm.git', 'svn_url': 'https://github.com/SODAMFIA/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T16:55:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647994', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5106, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'id': 218495725, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'number': 5106, 'state': 'closed', 'locked': False, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498', 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'merged_at': None, 'merge_commit_sha': '590ac3379f3299a7b89247adcaa1e347195a6e61', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342', 'head': {'label': 'ethereum:zeppelin', 'ref': 'zeppelin', 'sha': '23394bb9b6a08084a571278d0504b1b777524342', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '74ede87a4aed4dcf0995480d8e809f4aa2e848df', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 569, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 569, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5106'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5106/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/23394bb9b6a08084a571278d0504b1b777524342'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 8, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:54:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749647935', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'id': 364266385, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjE4NDk1NzI1', 'number': 5106, 'title': 'Do not use fork of openzeppelin anymore', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-09-27T01:01:29Z', 'updated_at': '2018-12-13T16:54:47Z', 'closed_at': '2018-12-13T16:54:47Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5106', 'html_url': 'https://github.com/ethereum/solidity/pull/5106', 'diff_url': 'https://github.com/ethereum/solidity/pull/5106.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5106.patch'}, 'body': 'Depends on https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1498'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447041695', 'html_url': 'https://github.com/ethereum/solidity/pull/5106#issuecomment-447041695', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5106', 'id': 447041695, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MTY5NQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:54:47Z', 'updated_at': '2018-12-13T16:54:47Z', 'author_association': 'CONTRIBUTOR', 'body': 'No reason to keep this open.'}}, 'public': True, 'created_at': '2018-12-13T16:54:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749645634', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135145070, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'before': '68da159bae217ce0be33112bf413a77aa677217f', 'commits': [{'sha': '4b97f372a85f134af28a2c1c4542bad0ccc60a5e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/4b97f372a85f134af28a2c1c4542bad0ccc60a5e'}]}, 'public': True, 'created_at': '2018-12-13T16:54:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749640516', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135142424, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '68da159bae217ce0be33112bf413a77aa677217f', 'before': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'commits': [{'sha': '68da159bae217ce0be33112bf413a77aa677217f', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fce3d62252c4473c7973a89084dfdf0efce862a4/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/68da159bae217ce0be33112bf413a77aa677217f'}]}, 'public': True, 'created_at': '2018-12-13T16:53:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749639230', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135141755, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'before': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'commits': [{'sha': 'bae071882fcbfa966a6b34bfd5f04936e89ac89a', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"IpcProvider cleaned up and TODO's added.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/bae071882fcbfa966a6b34bfd5f04936e89ac89a'}]}, 'public': True, 'created_at': '2018-12-13T16:53:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625708', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:51:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040556', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447040556', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447040556, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU1Ng==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:33Z', 'updated_at': '2018-12-13T16:51:33Z', 'author_association': 'NONE', 'body': \"There is a way of combining advantages of warp sync and fast sync. The rough idea is this. First, you flatten the state as list of pairs (account;account_data) sorted by the hash of the account address (this is how it appears in the Patricia tree). Then, you chunk it up, lets say, in 4Mb each chunk. Each chunk will contain pairs that stand next to each other in the patricia tree. What you add to the chunk is a proof that this chunk is indeed part of the state with the given root. Once you have got all the account, you repeat this procedure for the contract storage. For contracts with small storage, you don't bother making proofs, but just package them into chunks. But for contracts with the large storage, you use the same technique described above.\\r\\n\\r\\nI almost have a code for this in Turbo-Geth! :) Perhaps I shall try to code it up and give it a go!\"}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625609', 'type': 'IssuesEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:32Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}}, 'public': True, 'created_at': '2018-12-13T16:51:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749625517', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562', 'id': 388864076, 'node_id': 'MDU6SXNzdWUzODg4NjQwNzY=', 'number': 1562, 'title': 'test_blockchain_fixtures() works poorly', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-08T00:42:54Z', 'updated_at': '2018-12-13T16:51:31Z', 'closed_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': '* py-evm Version: current `master` (commit b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2)\\r\\n* OS: Arch Linux\\r\\n* Python Version (python --version): 3.7.1\\r\\n* Environment (output of `pip freeze`): MISSING (sorry!..)\\r\\n\\r\\n### What is wrong?\\r\\n\\r\\nIn testing for PR #1181 - which spawned PR #1560, and https://github.com/cburgdorf/py-evm/pull/2 in particular - I\\'ve done the following ([quote from gitter](https://gitter.im/ethereum/py-evm?at=5c0aee738b656e2b04dc221c)):\\r\\n\\r\\n> (...) there\\'s a very handy `verify_account_db()` invocation in `test_blockchain_fixtures()` of `tests/json-fixtures/test_blockchain.py`, which - with a little bit of commenting-out of asserts and checks through a couple files - can be used to easily compare the difference between the upstream test and `py-evm\\'s` result.\\r\\n> \\r\\n> Normally, `GeneralStateTests` are skipped in these test runs, to avoid duplication with `tests/json-fixtures/test_state.py`. However, the latter tests are less detailed in their JSON specification - so the comparison trick can\\'t be used.\\r\\n> \\r\\n> Using this, [along with increasing the logging level to `5` (trace), ] helps circumvent some guesswork [in debugging externally-provided tests].\\r\\n\\r\\n[The test function](https://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L92), however, works \"poorly\" in general, since it applies `verify_account_db()` unconditionally, and only after it has already applied the blocks (specified in the fixture) that have produced this account-DB-to-be-checked, and has compared the produced blocks (with those in the fixture).\\r\\n\\r\\nIn other words:\\r\\n\\r\\n> (...) there\\'s no sense in doing these fine-grained state comparisons when [the state root in] the block header already matches. It just slows down the test even more.\\r\\n\\r\\nAlso, the `assert` in\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/b6865d0d615f2eb6d53cdf514e1d8bd2e62f89d2/tests/json-fixtures/test_blockchain.py#L123-L125\\r\\n\\r\\nis never hit, because `apply_fixture_block_to_chain()` has a very similar nested validity check that gets hit in the same conditions - shadowing the `assert`, ~~and terrifying the poor sob debugging this with a single `cytoolz`-/`functools`-obfuscated generic function (aren\\'t these supposed to go on _forever, all the way down_?..)~~.\\r\\n\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nNot sure about the latter issue, and what \"fixing\" it might break. (Didn\\'t do a `git blame`.)\\r\\n\\r\\nRegarding `verify_account_db()`: don\\'t do this in a \"works as expected\" run, but fall back on it if the {block header,state root} check fails. This will become possible when the above is addressed, or if the `chain` is grown without checks against the fixture.\\r\\n\\r\\nPerhaps then it would make sense to run _all_ tests from `/BlockchainTests` and not `/GeneralStateTests`... (Not sure.)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447040541', 'html_url': 'https://github.com/ethereum/py-evm/issues/1562#issuecomment-447040541', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1562', 'id': 447040541, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzA0MDU0MQ==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:51:31Z', 'updated_at': '2018-12-13T16:51:31Z', 'author_association': 'CONTRIBUTOR', 'body': \"I think this can be closed as fixed by PR #1573.\\r\\n\\r\\nRespond if I'm missing something, will reopen.\"}}, 'public': True, 'created_at': '2018-12-13T16:51:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749591698', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135116756, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'before': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'commits': [{'sha': '6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/6aa50e7a6c574c2708ba2c4dcab0cfdfa30643bd'}]}, 'public': True, 'created_at': '2018-12-13T16:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749577776', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994', 'pull_request_review_id': 184753353, 'id': 241471994, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTk5NA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': 5, 'original_position': 5, 'commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'In generally I\\'m :+1: on figuring this out but I\\'m \"meh\" :neutral_face: on taking any major action towards it at this time. Namespacing the `eth1` data structures and generally the `eth1` *stuff* seems appropriate at some point but low priority.', 'created_at': '2018-12-13T16:33:49Z', 'updated_at': '2018-12-13T16:44:32Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241471994'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241471994'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-13T16:44:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3d4184214f9a8ef5115b2a8ccdfb913619b29cb7', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-13T08:19:14Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 168, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 168, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d9c40081c3e7e05522c500381dcc52bae5cb80c1'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:33:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749569108', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135105006, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'before': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'commits': [{'sha': '57c794e599a4700d254ea531a3b4a57edc3c0627', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/57c794e599a4700d254ea531a3b4a57edc3c0627'}]}, 'public': True, 'created_at': '2018-12-13T16:43:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749563919', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526', 'pull_request_review_id': 184757864, 'id': 241475526, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3NTUyNg==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@axic seems to be against this, which is also fine with me. IMO it's a feature that would be nice to have but if it has any negative impact we shouldn't go for it.\", 'created_at': '2018-12-13T16:42:30Z', 'updated_at': '2018-12-13T16:42:30Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241475526'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241475526'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}, 'in_reply_to_id': 241473073}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:42:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:42:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551754', 'type': 'IssuesEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1594/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1594', 'id': 390763184, 'node_id': 'MDU6SXNzdWUzOTA3NjMxODQ=', 'number': 1594, 'title': 'Migrate `trinity` and `p2p` modules to `ethereum/trinity` repository', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:40:38Z', 'updated_at': '2018-12-13T16:40:38Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': 'I have consulted the stars and it is time to cut the umbilical cord and move the `p2p` and `trinity` modules into the https://github.com/ethereum/trinity repository.\\r\\n\\r\\nCurrent (not yet vetted) timeline is to do this during the week of December 17th-21st.\\r\\n\\r\\n- It looks like https://blog.github.com/changelog/2018-10-30-issue-transfer/ may be useful for issue migration\\r\\n- we should ensure we preserve history in both repositories which probably means pushing the full history into `ethereum/trinity` and then removing all of the `eth` stuff.\\r\\n- we should consider whether to move `py-evm` into a beta (probably a very long beta)\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T16:40:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749551285', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135095872, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'before': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'commits': [{'sha': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/31e47d961b2f9e3fa0b894c258a337cc6bb7b288'}]}, 'public': True, 'created_at': '2018-12-13T16:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749550405', 'type': 'WatchEvent', 'actor': {'id': 18666372, 'login': 'timl206', 'display_login': 'timl206', 'gravatar_id': '', 'url': 'https://api.github.com/users/timl206', 'avatar_url': 'https://avatars.githubusercontent.com/u/18666372?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:40:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749548211', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:40:08Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447036586', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447036586', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447036586, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjU4Ng==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:40:08Z', 'updated_at': '2018-12-13T16:40:08Z', 'author_association': 'MEMBER', 'body': \"My suggestion: we should try to support it and whenever it's not possible we clear all mapping knowledge.\"}}, 'public': True, 'created_at': '2018-12-13T16:40:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749541111', 'type': 'IssueCommentEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'repository_url': 'https://api.github.com/repos/ethereum/tests', 'labels_url': 'https://api.github.com/repos/ethereum/tests/issues/493/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/493/comments', 'events_url': 'https://api.github.com/repos/ethereum/tests/issues/493/events', 'html_url': 'https://github.com/ethereum/tests/issues/493', 'id': 355649004, 'node_id': 'MDU6SXNzdWUzNTU2NDkwMDQ=', 'number': 493, 'title': 'Testcase needed for `CODECOPY` where `code_size=0`', 'user': {'login': 'masonforest', 'id': 229473, 'node_id': 'MDQ6VXNlcjIyOTQ3Mw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/229473?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/masonforest', 'html_url': 'https://github.com/masonforest', 'followers_url': 'https://api.github.com/users/masonforest/followers', 'following_url': 'https://api.github.com/users/masonforest/following{/other_user}', 'gists_url': 'https://api.github.com/users/masonforest/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/masonforest/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/masonforest/subscriptions', 'organizations_url': 'https://api.github.com/users/masonforest/orgs', 'repos_url': 'https://api.github.com/users/masonforest/repos', 'events_url': 'https://api.github.com/users/masonforest/events{/privacy}', 'received_events_url': 'https://api.github.com/users/masonforest/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-08-30T15:53:57Z', 'updated_at': '2018-12-13T16:39:03Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'We at [Mana](https://github.com/poanetwork/mana) ran into a consensus breaking bug in our client at [block #116524](https://etherscan.io/block/116524). The issue was that when `code_size` was set to `0` when running the opcode `CODECOPY` we would push a `0` onto the stack instead of leaving the state unchanged. This was a bug in our implementation and was fixed in commit https://github.com/poanetwork/mana/commit/82798080269cdd36f1714b1d3da6090c0db774d1. It may be helpful to add a test for this case for this so other new clients don’t run into the same issue in the future.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/tests/issues/comments/447036192', 'html_url': 'https://github.com/ethereum/tests/issues/493#issuecomment-447036192', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/493', 'id': 447036192, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNjE5Mg==', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:39:03Z', 'updated_at': '2018-12-13T16:39:03Z', 'author_association': 'COLLABORATOR', 'body': \"https://github.com/ethereum/tests/pull/569\\r\\n\\r\\ncould not really test codecopy of empty code. I've put codecopy into contract init code maybe this count.\"}}, 'public': True, 'created_at': '2018-12-13T16:39:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534171', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:37:59Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447035788', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447035788', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447035788, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzNTc4OA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:37:59Z', 'updated_at': '2018-12-13T16:37:59Z', 'author_association': 'MEMBER', 'body': 'Thinking about it, it is harmful (as in false negatives):\\r\\n```\\r\\n mapping (uint => uint) a;\\r\\n mapping (uint => uint) b;\\r\\n function f() public {\\r\\n require(a[1] == b[1]);\\r\\n mapping (uint => uint) storage c = a;\\r\\n c[1] = 2;\\r\\n assert(a[1] == b[1]);\\r\\n }\\r\\n```'}}, 'public': True, 'created_at': '2018-12-13T16:37:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749534082', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3135087071, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': 'debd16734e2fa18a575397f9e95f620aa891044d', 'before': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'commits': [{'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}, {'sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #569 from ethereum/moreextcodehash\\n\\nextcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/debd16734e2fa18a575397f9e95f620aa891044d'}]}, 'public': True, 'created_at': '2018-12-13T16:37:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533912', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'closed', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'closed', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T16:37:57Z', 'closed_at': '2018-12-13T16:37:56Z', 'merged_at': '2018-12-13T16:37:56Z', 'merge_commit_sha': 'debd16734e2fa18a575397f9e95f620aa891044d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T16:37:56Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 59, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 59, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T16:37:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749533624', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135086837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'before': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'commits': [{'sha': 'b5e33356a2e602c76379be26f22afe720f7513ef', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b5e33356a2e602c76379be26f22afe720f7513ef'}]}, 'public': True, 'created_at': '2018-12-13T16:37:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749524025', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073', 'pull_request_review_id': 184754719, 'id': 241473073, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MzA3Mw==', 'diff_hunk': '@@ -93,9 +93,9 @@ extern char const* solidity_version() noexcept\\n {\\n \\treturn VersionString.c_str();\\n }\\n-extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback) noexcept\\n+extern char const* solidity_compile(char const* _input, CStyleReadFileCallback _readCallback, CStyleReadFileCallback _smtSolver) noexcept', 'path': 'libsolc/libsolc.cpp', 'position': 17, 'original_position': 17, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"*sigh* this is a breaking change to the C interface which we wanted to keep stable. What is @axic's opinion on this?\", 'created_at': '2018-12-13T16:36:24Z', 'updated_at': '2018-12-13T16:36:25Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241473073'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241473073'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:36:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:36:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749517651', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700', 'pull_request_review_id': 184754220, 'id': 241472700, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MjcwMA==', 'diff_hunk': '@@ -214,6 +218,13 @@ vector SMTLib2Interface::parseValues(string::const_iterator _start, stri\\n \\n string SMTLib2Interface::querySolver(string const& _input)\\n {\\n+\\tif (m_smtSolverCallback)', 'path': 'libsolidity/formal/SMTLib2Interface.cpp', 'position': 19, 'original_position': 19, 'commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'original_commit_id': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Shouldn't the logic be to first check if it is part of the query responses, then ask the callback (if present) and add it to the query responses otherwise? Also - do we want to add callback failures to the unhandled queries?\", 'created_at': '2018-12-13T16:35:27Z', 'updated_at': '2018-12-13T16:35:27Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241472700'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642#discussion_r241472700'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642', 'id': 238114105, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MTE0MTA1', 'html_url': 'https://github.com/ethereum/solidity/pull/5642', 'diff_url': 'https://github.com/ethereum/solidity/pull/5642.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5642.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642', 'number': 5642, 'state': 'open', 'locked': False, 'title': 'SmtLib2Interface uses SMT solver callback provided to StandardCompiler', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds an extra callback to be used as an SMT solver by SmtLib2Interface in a single run. If the callback is not given, SmtLib2Interface falls back to the double run case with queries via JSON.', 'created_at': '2018-12-12T17:07:33Z', 'updated_at': '2018-12-13T16:35:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7d777300214e93164b8e2853914fc348690efd8b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'head': {'label': 'ethereum:smt_solver_callback', 'ref': 'smt_solver_callback', 'sha': '22e7adc75173e1f90a1be9e44ca58e588eb85ed5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b103c68fe115e61f9fd5a14fcc1a23ed588a71f9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5642'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5642/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5642/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/22e7adc75173e1f90a1be9e44ca58e588eb85ed5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:35:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515416', 'type': 'PullRequestEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'closed', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:35:03Z', 'closed_at': '2018-12-13T16:35:03Z', 'merged_at': '2018-12-13T16:35:03Z', 'merge_commit_sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:35:03Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:35:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749515274', 'type': 'PushEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3135077490, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'before': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'commits': [{'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'author': {'email': 'terence@prysmaticlabs.com', 'name': 'terence tsao'}, 'message': 'removed old comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9170efee1bf934e9751ed5653f0761a7af39217f'}, {'sha': 'cd22a39ea4f20694d6c4f5aff3282242e2a9c612', 'author': {'email': 'dannyjryan@gmail.com', 'name': 'Danny Ryan'}, 'message': 'Merge pull request #311 from terenc3t/patch-19\\n\\nRemoved old comments on ancestor block hashes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/cd22a39ea4f20694d6c4f5aff3282242e2a9c612'}]}, 'public': True, 'created_at': '2018-12-13T16:35:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749495602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309', 'pull_request_review_id': 184752423, 'id': 241471309, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTMwOQ==', 'diff_hunk': '@@ -0,0 +1,20 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tmapping(uint => uint) y;\\n+\\tfunction f(bool cond) public {\\n+\\t\\tmapping(uint => uint) storage a = cond ? x : y;', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol', 'position': 7, 'original_position': 7, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Please also add a comment here.', 'created_at': '2018-12-13T16:32:03Z', 'updated_at': '2018-12-13T16:32:03Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471309'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471309'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:32:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:32:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749493881', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220', 'pull_request_review_id': 184752306, 'id': 241471220, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ3MTIyMA==', 'diff_hunk': '@@ -0,0 +1,14 @@\\n+pragma experimental SMTChecker;\\n+\\n+contract c {\\n+\\tmapping(uint => uint) x;\\n+\\tfunction f(mapping(uint => uint) storage map, uint index, uint value) internal {\\n+\\t\\tmap[index] = value;\\n+\\t}\\n+\\tfunction g(uint a, uint b) public {\\n+\\t\\tf(x, a, b);\\n+\\t\\tassert(x[a] == b);', 'path': 'test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol', 'position': 10, 'original_position': 10, 'commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'original_commit_id': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'can you add a comment that this is not yet supported?', 'created_at': '2018-12-13T16:31:48Z', 'updated_at': '2018-12-13T16:31:48Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241471220'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388#discussion_r241471220'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'id': 229744658, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'number': 5388, 'state': 'open', 'locked': False, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.', 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:31:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '53f08639f9b1627c5a641ab420ab76bf7a8baa2c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'head': {'label': 'ethereum:smt_mapping', 'ref': 'smt_mapping', 'sha': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T16:30:34Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5388'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5388/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/89c3a9631b9bec0903bb5302344236c5ffb33b5e'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T16:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749485295', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3135062269, 'size': 4, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'before': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}]}, 'public': True, 'created_at': '2018-12-13T16:30:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484497', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5655, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655', 'id': 238408525, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDA4NTI1', 'html_url': 'https://github.com/ethereum/solidity/pull/5655', 'diff_url': 'https://github.com/ethereum/solidity/pull/5655.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5655.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655', 'number': 5655, 'state': 'closed', 'locked': False, 'title': 'Add variable declaration initializer.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Fixes https://github.com/ethereum/solidity/issues/5645', 'created_at': '2018-12-13T14:27:07Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'merged_at': '2018-12-13T16:30:27Z', 'merge_commit_sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'head': {'label': 'ethereum:removeUnassignedVarDefs', 'ref': 'removeUnassignedVarDefs', 'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:30:27Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 570, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5655'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5655/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5655/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 249, 'deletions': 349, 'changed_files': 37}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749484465', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5645', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5645/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5645', 'id': 390354301, 'node_id': 'MDU6SXNzdWUzOTAzNTQzMDE=', 'number': 5645, 'title': '[Yul] Optimizer step that eliminates variable declarations without value', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:32:57Z', 'updated_at': '2018-12-13T16:30:27Z', 'closed_at': '2018-12-13T16:30:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'This task should introduce a step that replaces each variable declaration without value by a variable declaration with value and also modify existing steps so that they do not generate variable declarations without value anymore. If this is the case, then this step can be run once at the start of the optimizer.\\r\\n\\r\\nThis obsoletes the VarDeclPropagator.\\r\\n\\r\\nWe should check how\\r\\n```\\r\\nlet a := 0\\r\\na := 2\\r\\n```\\r\\nis handled by the redundant assignment remover.\\r\\n\\r\\nUpdate: It is fine, SSA plus redundant assign eliminator plus unused pruner removes it.'}}, 'public': True, 'created_at': '2018-12-13T16:30:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749478673', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135058889, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'before': '9fad6432f5955caa412911b0efe7aa5928927443', 'commits': [{'sha': '5760de3ed6ceb090aad4231f2010b86f24583a8e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5760de3ed6ceb090aad4231f2010b86f24583a8e'}]}, 'public': True, 'created_at': '2018-12-13T16:29:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749466185', 'type': 'PullRequestEvent', 'actor': {'id': 21316537, 'login': 'terenc3t', 'display_login': 'terenc3t', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'avatar_url': 'https://avatars.githubusercontent.com/u/21316537?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 311, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311', 'id': 238451833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDUxODMz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/311', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/311.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311', 'number': 311, 'state': 'open', 'locked': False, 'title': 'Removed old comments on ancestor block hashes', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T16:27:47Z', 'updated_at': '2018-12-13T16:27:47Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f', 'head': {'label': 'terenc3t:patch-19', 'ref': 'patch-19', 'sha': '9170efee1bf934e9751ed5653f0761a7af39217f', 'user': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 151641016, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTE2NDEwMTY=', 'name': 'eth2.0-specs', 'full_name': 'terenc3t/eth2.0-specs', 'private': False, 'owner': {'login': 'terenc3t', 'id': 21316537, 'node_id': 'MDQ6VXNlcjIxMzE2NTM3', 'avatar_url': 'https://avatars1.githubusercontent.com/u/21316537?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/terenc3t', 'html_url': 'https://github.com/terenc3t', 'followers_url': 'https://api.github.com/users/terenc3t/followers', 'following_url': 'https://api.github.com/users/terenc3t/following{/other_user}', 'gists_url': 'https://api.github.com/users/terenc3t/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/terenc3t/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/terenc3t/subscriptions', 'organizations_url': 'https://api.github.com/users/terenc3t/orgs', 'repos_url': 'https://api.github.com/users/terenc3t/repos', 'events_url': 'https://api.github.com/users/terenc3t/events{/privacy}', 'received_events_url': 'https://api.github.com/users/terenc3t/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/terenc3t/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/terenc3t/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/terenc3t/eth2.0-specs/deployments', 'created_at': '2018-10-04T21:58:09Z', 'updated_at': '2018-10-04T21:58:11Z', 'pushed_at': '2018-12-13T16:27:23Z', 'git_url': 'git://github.com/terenc3t/eth2.0-specs.git', 'ssh_url': 'git@github.com:terenc3t/eth2.0-specs.git', 'clone_url': 'https://github.com/terenc3t/eth2.0-specs.git', 'svn_url': 'https://github.com/terenc3t/eth2.0-specs', 'homepage': None, 'size': 990, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:37:01Z', 'pushed_at': '2018-12-13T16:20:23Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1119, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 35, 'license': None, 'forks': 66, 'open_issues': 35, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/311'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/311/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/311/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/9170efee1bf934e9751ed5653f0761a7af39217f'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 0, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749456978', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135047859, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9fad6432f5955caa412911b0efe7aa5928927443', 'before': '32c30de1c6e09b811aaff62815995a68e1f940be', 'commits': [{'sha': '9fad6432f5955caa412911b0efe7aa5928927443', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-e427197f074480a034c0de4fe4dc1feba16c5699/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9fad6432f5955caa412911b0efe7aa5928927443'}]}, 'public': True, 'created_at': '2018-12-13T16:26:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749444395', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:24:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447030822', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447030822', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447030822, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAzMDgyMg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:24:42Z', 'updated_at': '2018-12-13T16:24:42Z', 'author_association': 'CONTRIBUTOR', 'body': \"> If we follow the convention of Py-EVM, should the deserialized result be tuple by default?\\r\\n\\r\\nNo preference for either from my side. `list` sounds natural as that's how they're called in the SSZ spec. But if it tuples would be a better fit for py-evm I'm fine with this as well.\"}}, 'public': True, 'created_at': '2018-12-13T16:24:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749415343', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'closed', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:20:43Z', 'closed_at': '2018-12-13T16:20:42Z', 'merged_at': None, 'merge_commit_sha': '630333737eefda53ad3bfb82840fecdd7bdb4cf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T16:20:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749412986', 'type': 'DeleteEvent', 'actor': {'id': 1433595, 'login': 'djrtwo', 'display_login': 'djrtwo', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'avatar_url': 'https://avatars.githubusercontent.com/u/1433595?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'deposit_data', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T16:20:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749411892', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 13, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:20:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447029004', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447029004', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447029004, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyOTAwNA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:20:15Z', 'updated_at': '2018-12-13T16:20:15Z', 'author_association': 'CONTRIBUTOR', 'body': '@leonardoalt so can \"not supporting aliasing\" cause any harm? If not, why not?'}}, 'public': True, 'created_at': '2018-12-13T16:20:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749410248', 'type': 'PullRequestEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18307, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307', 'id': 238449030, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDQ5MDMw', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18307', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18307.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18307.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307', 'number': 18307, 'state': 'open', 'locked': False, 'title': 'Update README.md', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Updated readme', 'created_at': '2018-12-13T16:19:59Z', 'updated_at': '2018-12-13T16:19:59Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56', 'head': {'label': 'Snetw:poc-0.1', 'ref': 'poc-0.1', 'sha': '65331199c5cd58d8172f1c3080453c8faee2be56', 'user': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-snet', 'full_name': 'Snetw/go-snet', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-snet', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-snet', 'forks_url': 'https://api.github.com/repos/Snetw/go-snet/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-snet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-snet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-snet/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-snet/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-snet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-snet/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-snet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-snet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-snet/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-snet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-snet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-snet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-snet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-snet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-snet/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-snet/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-snet/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-snet/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-snet/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-snet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-snet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-snet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-snet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-snet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-snet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-snet/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-snet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-snet/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-snet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-snet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-snet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-snet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-snet/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-snet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-snet/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T16:06:53Z', 'pushed_at': '2018-12-13T16:14:38Z', 'git_url': 'git://github.com/Snetw/go-snet.git', 'ssh_url': 'git@github.com:Snetw/go-snet.git', 'clone_url': 'https://github.com/Snetw/go-snet.git', 'svn_url': 'https://github.com/Snetw/go-snet', 'homepage': '', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22050, 'watchers_count': 22050, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 860, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 860, 'watchers': 22050, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18307'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18307/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18307/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/65331199c5cd58d8172f1c3080453c8faee2be56'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:20:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749404825', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445', 'pull_request_review_id': 184742494, 'id': 241463445, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ2MzQ0NQ==', 'diff_hunk': '@@ -2,11 +2,14 @@\\n Iterable,\\n )\\n \\n-from ssz.exceptions import (\\n- SerializationError,\\n+from toolz import (', 'path': 'ssz/utils.py', 'position': 7, 'original_position': 6, 'commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'original_commit_id': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': '```from eth_utils.toolz import (```\\r\\n\\r\\n(following a py-evm convention that I just learned about)', 'created_at': '2018-12-13T16:13:43Z', 'updated_at': '2018-12-13T16:19:12Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241463445'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241463445'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T16:19:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd82e2a67df3839047a92adbfdaedb34d75df191e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '4be52f28df308449581de7a766b2ed13c9747ebe', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T15:14:37Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/4be52f28df308449581de7a766b2ed13c9747ebe'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T16:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403477', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135021264, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '32c30de1c6e09b811aaff62815995a68e1f940be', 'before': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'commits': [{'sha': '32c30de1c6e09b811aaff62815995a68e1f940be', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/32c30de1c6e09b811aaff62815995a68e1f940be'}]}, 'public': True, 'created_at': '2018-12-13T16:19:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403108', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 2728, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'id': 135189378, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'number': 2728, 'state': 'closed', 'locked': False, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\", 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'merged_at': None, 'merge_commit_sha': 'bc24f1b02c9e8b72ff92d354bec29cb60b5eb1b4', 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'head': {'label': 'ethereum:type-identifiers', 'ref': 'type-identifiers', 'sha': 'a98b54338d7f17da0fe306c4be4b8e80c6083b98', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': 'b62d43912badc10f07b693a79834dcd3249f082a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T16:12:50Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 572, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 572, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/2728'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/2728/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/a98b54338d7f17da0fe306c4be4b8e80c6083b98'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 13, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 14, 'deletions': 14, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T16:18:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749403043', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728/events', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'id': 249432903, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTM1MTg5Mzc4', 'number': 2728, 'title': '[WIP] Uniform type identifiers', 'user': {'login': 'axic', 'id': 20340, 'node_id': 'MDQ6VXNlcjIwMzQw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20340?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/axic', 'html_url': 'https://github.com/axic', 'followers_url': 'https://api.github.com/users/axic/followers', 'following_url': 'https://api.github.com/users/axic/following{/other_user}', 'gists_url': 'https://api.github.com/users/axic/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/axic/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/axic/subscriptions', 'organizations_url': 'https://api.github.com/users/axic/orgs', 'repos_url': 'https://api.github.com/users/axic/repos', 'events_url': 'https://api.github.com/users/axic/events{/privacy}', 'received_events_url': 'https://api.github.com/users/axic/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 12, 'created_at': '2017-08-10T18:17:34Z', 'updated_at': '2018-12-13T16:18:56Z', 'closed_at': '2018-12-13T16:18:56Z', 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/2728', 'html_url': 'https://github.com/ethereum/solidity/pull/2728', 'diff_url': 'https://github.com/ethereum/solidity/pull/2728.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/2728.patch'}, 'body': \"Depends on #2724.\\r\\n\\r\\nThe issue was that some of them had an underscore between elements, while others didn't. I guess it is deliberately omitted before identifier lists because those start with a $ sign.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447028450', 'html_url': 'https://github.com/ethereum/solidity/pull/2728#issuecomment-447028450', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/2728', 'id': 447028450, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyODQ1MA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:18:56Z', 'updated_at': '2018-12-13T16:18:56Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing because it is not finished and can be easily re-done.'}}, 'public': True, 'created_at': '2018-12-13T16:18:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749394329', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T16:17:46Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}}, 'public': True, 'created_at': '2018-12-13T16:17:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749378160', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3135008496, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'before': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'commits': [{'sha': '5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5e80120bcfc8c8f1fc2170f9bb4a3a316d91d2bf'}]}, 'public': True, 'created_at': '2018-12-13T16:15:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749372587', 'type': 'IssueCommentEvent', 'actor': {'id': 1382986, 'login': 'arnetheduck', 'display_login': 'arnetheduck', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'avatar_url': 'https://avatars.githubusercontent.com/u/1382986?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-13T16:14:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447026815', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447026815', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447026815, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjgxNQ==', 'user': {'login': 'arnetheduck', 'id': 1382986, 'node_id': 'MDQ6VXNlcjEzODI5ODY=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/1382986?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/arnetheduck', 'html_url': 'https://github.com/arnetheduck', 'followers_url': 'https://api.github.com/users/arnetheduck/followers', 'following_url': 'https://api.github.com/users/arnetheduck/following{/other_user}', 'gists_url': 'https://api.github.com/users/arnetheduck/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/arnetheduck/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/arnetheduck/subscriptions', 'organizations_url': 'https://api.github.com/users/arnetheduck/orgs', 'repos_url': 'https://api.github.com/users/arnetheduck/repos', 'events_url': 'https://api.github.com/users/arnetheduck/events{/privacy}', 'received_events_url': 'https://api.github.com/users/arnetheduck/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:14:38Z', 'updated_at': '2018-12-13T16:14:38Z', 'author_association': 'CONTRIBUTOR', 'body': 'I think some of this confusion might be because of how the signature serialization is specified: as an open-ended list of `uint384` - it might make sense to be more specific here once the serialization settles down, and possibly have a custom serialization type for signatures and keys, much like we have `hash32`'}}, 'public': True, 'created_at': '2018-12-13T16:14:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749364217', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135001558, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'before': '2032e0842e8f15a997561b44340557c07b46fa40', 'commits': [{'sha': '424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'HttpProvider improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/424fe3a3e47cef72bf238c3c5ee1a5dc9b6984fd'}]}, 'public': True, 'created_at': '2018-12-13T16:13:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749363592', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'id': 379226601, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NzQ0NjU4', 'number': 5388, 'title': '[SMTChecker] Support for mapping', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 12, 'created_at': '2018-11-09T16:18:06Z', 'updated_at': '2018-12-13T16:13:25Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5388', 'html_url': 'https://github.com/ethereum/solidity/pull/5388', 'diff_url': 'https://github.com/ethereum/solidity/pull/5388.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5388.patch'}, 'body': 'Depends on #5387 \\r\\n\\r\\nThis PR adds support to R-d mapping access and 1-d mapping assignment.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447026300', 'html_url': 'https://github.com/ethereum/solidity/pull/5388#issuecomment-447026300', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5388', 'id': 447026300, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyNjMwMA==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:13:25Z', 'updated_at': '2018-12-13T16:13:25Z', 'author_association': 'MEMBER', 'body': 'Nice ideas. Added tests for those. The examples from the last comment yield false positives since the SMTChecker does not consider aliasing ;)'}}, 'public': True, 'created_at': '2018-12-13T16:13:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749359445', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134999157, 'size': 41, 'distinct_size': 1, 'ref': 'refs/heads/smt_mapping', 'head': '89c3a9631b9bec0903bb5302344236c5ffb33b5e', 'before': '2af608a40362322c5cbcdeed4ef4a5267bbb0ade', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-13T16:12:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749354130', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134996478, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'before': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'commits': [{'sha': 'ac52a4a4ad02f09a20facf0b31a85c0e8e72001b', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Fix typo in docs.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/ac52a4a4ad02f09a20facf0b31a85c0e8e72001b'}]}, 'public': True, 'created_at': '2018-12-13T16:12:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749348811', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134993820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'before': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'commits': [{'sha': '5518b91acff305cf962239c4fe38edfb8a5bf3b4', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/5518b91acff305cf962239c4fe38edfb8a5bf3b4'}]}, 'public': True, 'created_at': '2018-12-13T16:11:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749333083', 'type': 'WatchEvent', 'actor': {'id': 39089742, 'login': 'hamzaenaime', 'display_login': 'hamzaenaime', 'gravatar_id': '', 'url': 'https://api.github.com/users/hamzaenaime', 'avatar_url': 'https://avatars.githubusercontent.com/u/39089742?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T16:09:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749317084', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134977777, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'before': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'commits': [{'sha': '49f4ee87f5155c23cf8ef419a84eea5cb5bca14c', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/49f4ee87f5155c23cf8ef419a84eea5cb5bca14c'}]}, 'public': True, 'created_at': '2018-12-13T16:06:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749299027', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134968549, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'before': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'commits': [{'sha': '80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-4c0ad615fce4ab2d3c4edf6fb4f3390aa698caa6/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/80a3ba7f8fae5b3547824bc2e3178bf77a2f5fda'}]}, 'public': True, 'created_at': '2018-12-13T16:04:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749297731', 'type': 'IssueCommentEvent', 'actor': {'id': 9306422, 'login': 'PhABC', 'display_login': 'PhABC', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'avatar_url': 'https://avatars.githubusercontent.com/u/9306422?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155', 'id': 333091780, 'node_id': 'MDU6SXNzdWUzMzMwOTE3ODA=', 'number': 1155, 'title': 'ERC: Multi Token Standard', 'user': {'login': 'coinfork', 'id': 2774008, 'node_id': 'MDQ6VXNlcjI3NzQwMDg=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2774008?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coinfork', 'html_url': 'https://github.com/coinfork', 'followers_url': 'https://api.github.com/users/coinfork/followers', 'following_url': 'https://api.github.com/users/coinfork/following{/other_user}', 'gists_url': 'https://api.github.com/users/coinfork/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coinfork/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coinfork/subscriptions', 'organizations_url': 'https://api.github.com/users/coinfork/orgs', 'repos_url': 'https://api.github.com/users/coinfork/repos', 'events_url': 'https://api.github.com/users/coinfork/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coinfork/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 224, 'created_at': '2018-06-17T20:48:30Z', 'updated_at': '2018-12-13T16:04:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '```\\r\\n---\\r\\neip: 1155\\r\\ntitle: ERC-1155 Multi Token Standard\\r\\nauthor: Witek Radomski , Andrew Cooke , Philippe Castonguay , James Therien , Eric Binet \\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\nstatus: Last Call\\r\\ncreated: 2018-06-17\\r\\ndiscussions-to: https://github.com/ethereum/EIPs/issues/1155\\r\\nrequires: 165\\r\\nreview-end-date: 2018-12-27\\r\\n---\\r\\n```\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nA standard interface for contracts that manage multiple token types. A single deployed contract may include any combination of fungible tokens, non-fungible tokens, or other configurations (for example, semi-fungible tokens).\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThis standard outlines a smart contract interface where one can represent any number of Fungible and Non-Fungible tokens in a single contract. Existing standards such as ERC-20 require deployment of separate contracts per token. The ERC-721 standard\\'s Token ID is a single non-fungible index and the group of these non-fungibles is deployed as a single contract with settings for the entire collection. In contrast, the ERC-1155 Multi Token Standard allows for each Token ID to represent a new configurable token type, which may have its own metadata, supply and other attributes.\\r\\n\\r\\nThe `_id` parameter is contained in each function\\'s parameters and indicates a specific token or token type in a transaction.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nTokens standards like ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. This places a lot of redundant bytecode on the Ethereum blockchain and limits certain functionality by the nature of separating each token contract into its own permissioned address. With the rise of crypto games and platforms like [Enjin Coin](https://enjincoin.io/), game developers may be creating thousands of tokens, and a new type of token standard is needed to support this.\\r\\n\\r\\nNew functionality is possible with this design, such as transferring multiple token types at once, saving on transaction costs. Trading (escrow / atomic swaps) of multiple tokens can be built on top of this standard and it removes the need to \"approve\" individual token contracts separately. It is also easy to describe and mix multiple fungible or non-fungible tokens in a single contract.\\r\\n\\r\\n# Specification\\r\\n\\r\\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in RFC 2119.\\r\\n\\r\\n**Smart contracts implementing the ERC-1155 standard MUST implement the `ERC1155` and `ERC165` interfaces.**\\r\\n\\r\\n```solidity\\r\\npragma solidity ^0.4.25;\\r\\n\\r\\n/**\\r\\n @title ERC-1155 Multi Token Standard\\r\\n @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md\\r\\n Note: The ERC-165 identifier for this interface is 0xd9b67a26.\\r\\n */\\r\\ninterface ERC1155 /* is ERC165 */ {\\r\\n /**\\r\\n @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero value transfers as well as minting or burning.\\r\\n Either event from address `0x0` signifies a minting operation.\\r\\n An event to address `0x0` signifies a burning or melting operation.\\r\\n The total value transferred from address 0x0 minus the total value transferred to 0x0 may be used by clients and exchanges to be added to the \"circulating supply\" for a given token ID\\r\\n This MAY emit a 0 value, from `0x0` to `0x0` with `_operator` assuming the role of the token creator to define a token ID with no initial balance at the time of creation.\\r\\n */\\r\\n event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value);\\r\\n event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when an approval is updated.\\r\\n */\\r\\n event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the URI is updated for a token ID.\\r\\n URIs are defined in RFC 3986.\\r\\n The URI MUST point a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n */\\r\\n event URI(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @dev MUST emit when the Name is updated for a token ID.\\r\\n */\\r\\n event Name(string _value, uint256 indexed _id);\\r\\n\\r\\n /**\\r\\n @notice Transfers value amount of an _id from the _from address to the _to addresses specified. Each parameter array should be the same length, with each index correlating.\\r\\n @dev MUST emit TransferSingle event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if `_id` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`.\\r\\n @param _from Source addresses\\r\\n @param _to Target addresses\\r\\n @param _id ID of the token type\\r\\n @param _value Transfer amount\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Send multiple types of Tokens from a 3rd party in one transfer (with safety call).\\r\\n @dev MUST emit TransferBatch event on success.\\r\\n Caller must be approved to manage the _from account\\'s tokens (see isApprovedForAll).\\r\\n MUST Throw if `_to` is the zero address.\\r\\n MUST Throw if any of the `_ids` is not a valid token ID.\\r\\n MUST Throw on any other error.\\r\\n When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return value is not `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`.\\r\\n @param _from Source address\\r\\n @param _to Target address\\r\\n @param _ids IDs of each token type\\r\\n @param _values Transfer amounts per token type\\r\\n @param _data Additional data with no specified format, sent in call to `_to`\\r\\n */\\r\\n function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data) external;\\r\\n\\r\\n /**\\r\\n @notice Get the balance of an account\\'s Tokens.\\r\\n @param _owner The address of the token holder\\r\\n @param _id ID of the Token\\r\\n @return The _owner\\'s balance of the Token type requested\\r\\n */\\r\\n function balanceOf(address _owner, uint256 _id) external view returns (uint256);\\r\\n \\r\\n /**\\r\\n @notice Get the balance of multiple account/token pairs\\r\\n @param _owners The addresses of the token holders\\r\\n @param _ids ID of the Tokens\\r\\n @return The _owner\\'s balance of the Token types requested\\r\\n */\\r\\n function balanceOfBatch(address[] _owners, uint256[] _ids) external view returns (uint256[]);\\r\\n\\r\\n /**\\r\\n @notice Enable or disable approval for a third party (\"operator\") to manage all of the caller\\'s tokens.\\r\\n @dev MUST emit the ApprovalForAll event on success.\\r\\n @param _operator Address to add to the set of authorized operators\\r\\n @param _approved True if the operator is approved, false to revoke approval\\r\\n */\\r\\n function setApprovalForAll(address _operator, bool _approved) external;\\r\\n\\r\\n /** \\r\\n @notice Queries the approval status of an operator for a given owner.\\r\\n @param _owner The owner of the Tokens\\r\\n @param _operator Address of authorized operator\\r\\n @return True if the operator is approved, false if not\\r\\n */\\r\\n function isApprovedForAll(address _owner, address _operator) external view returns (bool);\\r\\n}\\r\\n```\\r\\n\\r\\n\\r\\n## ERC-1155 Token Receiver\\r\\n\\r\\nSmart contracts **MUST** implement this interface to accept transfers.\\r\\n\\r\\n```solidity\\r\\ninterface ERC1155TokenReceiver {\\r\\n /**\\r\\n @notice Handle the receipt of a single ERC1155 token type.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value MUST result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _id The id of the token being transferred\\r\\n @param _value The amount of tokens being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155Received(address,address,uint256,uint256,bytes)\"))`\\r\\n */\\r\\n function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _value, bytes _data) external returns(bytes4);\\r\\n \\r\\n /**\\r\\n @notice Handle the receipt of multiple ERC1155 token types.\\r\\n @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated.\\r\\n This function MAY throw to revert and reject the transfer.\\r\\n Return of other than the magic value WILL result in the transaction being reverted.\\r\\n Note: The contract address is always the message sender.\\r\\n @param _operator The address which called the `safeBatchTransferFrom` function\\r\\n @param _from The address which previously owned the token\\r\\n @param _ids An array containing ids of each token being transferred\\r\\n @param _values An array containing amounts of each token being transferred\\r\\n @param _data Additional data with no specified format\\r\\n @return `bytes4(keccak256(\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\"))`\\r\\n */\\r\\n function onERC1155BatchReceived(address _operator, address _from, uint256[] _ids, uint256[] _values, bytes _data) external returns(bytes4);\\r\\n}\\r\\n```\\r\\n\\r\\n## Metadata\\r\\n\\r\\nThe URI value allows for ID substitution by clients. If the string {id} exists in any URI, clients MUST replace this with the actual token ID in hexadecimal form. This allows for large number of tokens to use the same on-chain string by defining a URI once, for a large collection of tokens. Example of such a URI: `https://token-cdn-domain/{id}.json` would be replaced with `https://token-cdn-domain/0x7800000000000001000000000000000000000000000000000000000000000000.json` if the client is referring to token ID `0x7800000000000001000000000000000000000000000000000000000000000000`.\\r\\n\\r\\n### Metadata Extensions\\r\\n\\r\\nThe following optional extensions can be identified with the (ERC-165 Standard Interface Detection)[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md].\\r\\n\\r\\nChanges to the URI or Name MUST emit their corresponding events if the change can be expressed with an event. If the optional ERC1155Metadata_URI or ERC1155Metadata_Name extensions are included, the values returned by these functions SHOULD be used to retrieve values for which no event was emitted. The functions MUST return the same value as the event if it was emitted.\\r\\n\\r\\n```solidity\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x0e89341c.\\r\\n*/\\r\\ninterface ERC1155Metadata_URI {\\r\\n /**\\r\\n @notice A distinct Uniform Resource Identifier (URI) for a given token.\\r\\n @dev URIs are defined in RFC 3986.\\r\\n The URI may point to a JSON file that conforms to the \"ERC-1155 Metadata JSON Schema\".\\r\\n @return URI string\\r\\n */\\r\\n function uri(uint256 _id) external view returns (string);\\r\\n}\\r\\n\\r\\n/**\\r\\n Note: The ERC-165 identifier for this interface is 0x00ad800c.\\r\\n*/\\r\\ninterface ERC1155Metadata_Name {\\r\\n /**\\r\\n @notice A human-readable name for a given token\\r\\n @return Name string\\r\\n */\\r\\n function name(uint256 _id) external view returns (string);\\r\\n}\\r\\n```\\r\\n\\r\\n### ERC-1155 Metadata URI JSON Schema\\r\\n\\r\\nThis JSON schema is loosely based on the \"ERC721 Metadata JSON Schema\", but includes optional formatting to allow for ID substitution by clients. If the string {id} exists in any JSON value, it MUST be replaced with the actual token ID, by all client software that follows this standard.\\r\\n\\r\\n```json\\r\\n{\\r\\n \"title\": \"Token Metadata\",\\r\\n \"type\": \"object\",\\r\\n \"properties\": {\\r\\n \"name\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Identifies the asset to which this token represents\",\\r\\n },\\r\\n \"decimals\": {\\r\\n \"type\": \"integer\",\\r\\n \"description\": \"The number of decimal places that the token amount should display - e.g. 18, means to divide the token amount by 1000000000000000000 to get its user representation.\",\\r\\n },\\r\\n \"description\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"Describes the asset to which this token represents\",\\r\\n },\\r\\n \"image\": {\\r\\n \"type\": \"string\",\\r\\n \"description\": \"A URI pointing to a resource with mime type image/* representing the asset to which this token represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive.\",\\r\\n },\\r\\n \"properties\": {\\r\\n \"type\": \"object\",\\r\\n \"description\": \"Arbitrary properties. Values may be strings, numbers, object or arrays.\",\\r\\n },\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nAn example of an ERC-1155 Metadata JSON file follows. The properties array proposes some SUGGESTED formatting for token-specific display properties and metadata.\\r\\n\\r\\n```json\\r\\n{\\r\\n\\t\"name\": \"Asset Name\",\\r\\n\\t\"description\": \"Lorem ipsum...\",\\r\\n\\t\"image\": \"https:\\\\/\\\\/s3.amazonaws.com\\\\/your-bucket\\\\/images\\\\/{id}.png\",\\r\\n\\t\"properties\": {\\r\\n\\t\\t\"simple_property\": \"example value\",\\r\\n\\t\\t\"rich_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": \"123\",\\r\\n\\t\\t\\t\"display_value\": \"123 Example Value\",\\r\\n\\t\\t\\t\"class\": \"emphasis\",\\r\\n\\t\\t\\t\"css\": {\\r\\n\\t\\t\\t\\t\"color\": \"#ffffff\",\\r\\n\\t\\t\\t\\t\"font-weight\": \"bold\",\\r\\n\\t\\t\\t\\t\"text-decoration\": \"underline\"\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\"array_property\": {\\r\\n\\t\\t\\t\"name\": \"Name\",\\r\\n\\t\\t\\t\"value\": [1,2,3,4],\\r\\n\\t\\t\\t\"class\": \"emphasis\"\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n```\\r\\n\\r\\n## Usage\\r\\n\\r\\nThis standard can be used to represent multiple token types for an entire domain. Both Fungible and Non-Fungible tokens can be stored in the same smart-contract.\\r\\n\\r\\n
\\r\\n\\r\\nBatch Operations\\r\\n\\r\\n### Batch Transfers\\r\\n\\r\\nThe `safeBatchTransferFrom` function allows for batch transfers of multiple token ids and values. Gas savings improves with the number of token types in the batch transfer, compared to single transfers with multiple transactions.\\r\\n\\r\\n### Batch Balance\\r\\n\\r\\nThe `balanceOfBatch` function allows clients to retrieve balances of multiple owners and token ids with a single call.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nApproval\\r\\n\\r\\n### Approval\\r\\n\\r\\nThe function `setApprovalForAll` allows an operator to manage one\\'s entire set of tokens on behalf of the approver. Single-token based approval of specific token values is not part of the standard. To scope an approval to a specific set or quantity of tokens, we recommend deploying a contract that contains the desired rules, and directing end-users to approve this contract to manage their set of tokens.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nBackwards Compatibility\\r\\n\\r\\n### Backwards Compatibility\\r\\n\\r\\nThis standard is compatible with ERC-721 non-fungible tokens. Both interfaces can be inherited without conflict:\\r\\n\\r\\n```solidity\\r\\ncontract MultiTokens is ERC1155, ERC721 {\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nEnumeration\\r\\n\\r\\n### Enumerating from events\\r\\n\\r\\nIn order to keep storage requirements light for contracts implementing ERC-1155, enumeration (discovering the IDs and values of tokens) must be done using event logs. It is RECOMMENDED that clients such as exchanges and blockchain explorers maintain a local database containing the Token ID, Supply, and URI at the minimum. This can be built from each TransferSingle, TransferBatch, and URI event, starting from the block the smart contract was deployed until the latest block.\\r\\n\\r\\nERC-1155 contracts must therefore carefully emit TransferSingle or TransferBatch events in any instance where tokens are created, minted, or destroyed.\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\nNon-Fungible Tokens\\r\\n\\r\\n### Non-Fungible Tokens\\r\\n\\r\\nThe following strategy is an example of how to mix fungible and non-fungible tokens together in the same contract. The top 128 bits of the uint256 `_id` parameter in any ERC-1155 function could represent the base token ID, while the bottom 128 bits might be used for any extra data passed to the contract.\\r\\n\\r\\nNon-Fungible tokens can be interacted with using an index based accessor into the contract/token data set. Therefore to access a particular token set within a mixed data contract and particular NFT within that set, `_id` could be passed as ``.\\r\\n\\r\\nInside the contract code the two pieces of data needed to access the individual NFT can be extracted with uint128(~0) and the same mask shifted by 128.\\r\\n\\r\\n### Example of split ID bits\\r\\n\\r\\n```solidity\\r\\nuint256 baseToken = 12345 << 128;\\r\\nuint128 index = 50;\\r\\n\\r\\nbalanceOf(baseToken, msg.sender); // Get balance of the base token\\r\\nbalanceOf(baseToken + index, msg.sender); // Get balance of the Non-Fungible token index\\r\\n```\\r\\n\\r\\n
\\r\\n\\r\\n## References\\r\\n\\r\\n**Standards**\\r\\n- ERC-721 Non-Fungible Token Standard. https://raw.githubusercontent.com/ethereum/EIPs/master/EIPS/eip-721.md\\r\\n- ERC-165 Standard Interface Detection. https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\\n- JSON Schema. http://json-schema.org/\\r\\n- RFC 2119 Key words for use in RFCs to Indicate Requirement Levels. https://www.ietf.org/rfc/rfc2119.txt\\r\\n\\r\\n**Implementations**\\r\\n- [ERC-1155 Reference Implementation](https://github.com/enjin/erc-1155)\\r\\n- [Enjin Coin](https://enjincoin.io) ([github](https://github.com/enjin))\\r\\n\\r\\n**Articles & Discussions**\\r\\n- [Github - Original Discussion Thread](https://github.com/ethereum/EIPs/issues/1155)\\r\\n- [ERC-1155 - The Crypto Item Standard](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226)\\r\\n- [Blockonomi - Ethereum ERC-1155 Token Perfect for Online Games, Possibly More](https://blockonomi.com/erc1155-gaming-token/)\\r\\n- [Beyond Gaming - Exploring the Utility of ERC-1155 Token Standard!](https://blockgeeks.com/erc-1155-token/)\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447022832', 'html_url': 'https://github.com/ethereum/EIPs/issues/1155#issuecomment-447022832', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1155', 'id': 447022832, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMjgzMg==', 'user': {'login': 'PhABC', 'id': 9306422, 'node_id': 'MDQ6VXNlcjkzMDY0MjI=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9306422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PhABC', 'html_url': 'https://github.com/PhABC', 'followers_url': 'https://api.github.com/users/PhABC/followers', 'following_url': 'https://api.github.com/users/PhABC/following{/other_user}', 'gists_url': 'https://api.github.com/users/PhABC/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PhABC/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PhABC/subscriptions', 'organizations_url': 'https://api.github.com/users/PhABC/orgs', 'repos_url': 'https://api.github.com/users/PhABC/repos', 'events_url': 'https://api.github.com/users/PhABC/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PhABC/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:04:13Z', 'updated_at': '2018-12-13T16:04:13Z', 'author_association': 'CONTRIBUTOR', 'body': \"@wighawag \\r\\n\\r\\n> As part of previous discussions it was mentioned such event would be optional. As the standard stand now, this is not the case (use of 'MUST')\\r\\n\\r\\nI was of the same opinion as you on this matter, but these events don't need to be implemented if they are never needed to be triggered. Putting them in the standard makes sure that *if* the URI or Name of a token changes, these events will be emitted. I am personally more in favor of adding another ERC-165 method for the various extensions however.\\r\\n\\r\\n> This is new and in my opinion this should not be part of the standard. It does not bring more functionality that can be achieved without it. \\r\\nDoing queries by batches can save significant amount of time for RPC calls (about 2x if I recall correctly). I'm not opposed to having this in an extension either as I think it's not a critical feature for other contracts. \\r\\n\\r\\n> if not, is the default value : 1 decimal?\\r\\nI believe it would be 0, not 1. \\r\\n\\r\\n> if yes, the metadata example should be updated to include it.\\r\\nAgreed, example should include decimals. \\r\\n\\r\\n\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T16:04:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749285743', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134961820, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'before': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'commits': [{'sha': 'e210cc720b2a2efe8b2ae10b58195632de55f20e', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/e210cc720b2a2efe8b2ae10b58195632de55f20e'}]}, 'public': True, 'created_at': '2018-12-13T16:02:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273685', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5376, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'id': 229480187, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'number': 5376, 'state': 'closed', 'locked': False, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.', 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:58Z', 'closed_at': '2018-12-13T16:00:57Z', 'merged_at': None, 'merge_commit_sha': '088845bab93c0c3dbbf77bc57c2f1a689c261e7e', 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [{'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b', 'head': {'label': 'ethereum:staticBuild', 'ref': 'staticBuild', 'sha': '13a1a6e50dd705c75f0cb855b75ec2954110017b', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '642c69f935c41d70f0dcfb0e89fcf3e626f7b38f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:46:56Z', 'pushed_at': '2018-12-13T15:51:34Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 573, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 573, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5376'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5376/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/13a1a6e50dd705c75f0cb855b75ec2954110017b'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 17, 'review_comments': 5, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749273642', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'id': 378880118, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjI5NDgwMTg3', 'number': 5376, 'title': 'Allow static linking with Z3', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 16, 'created_at': '2018-11-08T19:22:22Z', 'updated_at': '2018-12-13T16:00:57Z', 'closed_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5376', 'html_url': 'https://github.com/ethereum/solidity/pull/5376', 'diff_url': 'https://github.com/ethereum/solidity/pull/5376.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5376.patch'}, 'body': 'Experimental attempt to build an entirely static version of ``solc`` on circleci.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447021648', 'html_url': 'https://github.com/ethereum/solidity/pull/5376#issuecomment-447021648', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5376', 'id': 447021648, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMTY0OA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T16:00:57Z', 'updated_at': '2018-12-13T16:00:57Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing for now to be re-done properly.'}}, 'public': True, 'created_at': '2018-12-13T16:00:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749262323', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134949870, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'before': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'commits': [{'sha': '176c3156d818709b011c5c57d61b7736cec9fe2a', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-633dd44576e267f4728b86ec69a9cc56517a1f89/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/176c3156d818709b011c5c57d61b7736cec9fe2a'}]}, 'public': True, 'created_at': '2018-12-13T15:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749248312', 'type': 'IssueCommentEvent', 'actor': {'id': 20308948, 'login': 'zscole', 'display_login': 'zscole', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'avatar_url': 'https://avatars.githubusercontent.com/u/20308948?'}, 'repo': {'id': 143768297, 'name': 'ethereum/eth2.0-pm', 'url': 'https://api.github.com/repos/ethereum/eth2.0-pm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-pm', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19/events', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19', 'id': 389336368, 'node_id': 'MDU6SXNzdWUzODkzMzYzNjg=', 'number': 19, 'title': 'Eth2.0 Implementers Call 8 Agenda', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-12-10T14:51:30Z', 'updated_at': '2018-12-13T15:57:35Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '## Eth2.0 Implementers Call 8 Agenda\\r\\n### Meeting Date/Time: Thursday 2018/12/13 at [14:00 GMT](https://savvytime.com/converter/gmt-to-germany-berlin-united-kingdom-london-ny-new-york-city-ca-san-francisco-china-shanghai-japan-tokyo-australia-sydney/dec-13-2018/2pm)\\r\\n### Meeting Duration 1.5 hours\\r\\n### [YouTube Live Stream Link](https://www.youtube.com/watch?v=NO9UlkpFKA0)\\r\\n\\r\\n## Agenda\\r\\n1. Client Updates\\r\\n2. Research Updates\\r\\n3. [\"low hanging fruits\" for testing](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446023967)\\r\\n4. [unsigned under and overflow problems](https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-446142928)\\r\\n6. Spec discussion\\r\\n7. Open Discussion/Closing Remarks\\r\\n \\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/comments/447020292', 'html_url': 'https://github.com/ethereum/eth2.0-pm/issues/19#issuecomment-447020292', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-pm/issues/19', 'id': 447020292, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAyMDI5Mg==', 'user': {'login': 'zscole', 'id': 20308948, 'node_id': 'MDQ6VXNlcjIwMzA4OTQ4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/20308948?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zscole', 'html_url': 'https://github.com/zscole', 'followers_url': 'https://api.github.com/users/zscole/followers', 'following_url': 'https://api.github.com/users/zscole/following{/other_user}', 'gists_url': 'https://api.github.com/users/zscole/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zscole/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zscole/subscriptions', 'organizations_url': 'https://api.github.com/users/zscole/orgs', 'repos_url': 'https://api.github.com/users/zscole/repos', 'events_url': 'https://api.github.com/users/zscole/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zscole/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:57:35Z', 'updated_at': '2018-12-13T15:57:35Z', 'author_association': 'NONE', 'body': \"Wasn't able to join. Thanks for chiming in on my behalf, @mratsim! Everything is still moving along in accordance with our previous roadmap. Preparing something tangible to present at next meeting. Cheers! \"}}, 'public': True, 'created_at': '2018-12-13T15:57:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749236050', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 10, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:55:56Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447019633', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447019633', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447019633, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTYzMw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:56Z', 'updated_at': '2018-12-13T15:55:56Z', 'author_association': 'CONTRIBUTOR', 'body': '@lookfirst if you would like to have an interactive discussion about this, I would be very happy to talk to you in gitter.im/ethereum/solidity-dev or in one of our weekly calls (Mondays at 12.00 CET and Wednesdays 150.00 CET, conference link announced in the chanel).'}}, 'public': True, 'created_at': '2018-12-13T15:55:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749231725', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:55:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447019410', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447019410', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447019410, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxOTQxMA==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:55:21Z', 'updated_at': '2018-12-13T15:55:21Z', 'author_association': 'CONTRIBUTOR', 'body': '@jannikluhn @Bhargavasomu @pipermerriam \\r\\n\\r\\nIf we follow the convention of Py-EVM, should the deserialized result be `tuple` by default? \\r\\n'}}, 'public': True, 'created_at': '2018-12-13T15:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749230140', 'type': 'ForkEvent', 'actor': {'id': 45850645, 'login': 'Snetw', 'display_login': 'Snetw', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'avatar_url': 'https://avatars.githubusercontent.com/u/45850645?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161661585, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjE1ODU=', 'name': 'go-ethereum', 'full_name': 'Snetw/go-ethereum', 'private': False, 'owner': {'login': 'Snetw', 'id': 45850645, 'node_id': 'MDQ6VXNlcjQ1ODUwNjQ1', 'avatar_url': 'https://avatars2.githubusercontent.com/u/45850645?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Snetw', 'html_url': 'https://github.com/Snetw', 'followers_url': 'https://api.github.com/users/Snetw/followers', 'following_url': 'https://api.github.com/users/Snetw/following{/other_user}', 'gists_url': 'https://api.github.com/users/Snetw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Snetw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Snetw/subscriptions', 'organizations_url': 'https://api.github.com/users/Snetw/orgs', 'repos_url': 'https://api.github.com/users/Snetw/repos', 'events_url': 'https://api.github.com/users/Snetw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Snetw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Snetw/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Snetw/go-ethereum', 'forks_url': 'https://api.github.com/repos/Snetw/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Snetw/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Snetw/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Snetw/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Snetw/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Snetw/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Snetw/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Snetw/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Snetw/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Snetw/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Snetw/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Snetw/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Snetw/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Snetw/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Snetw/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Snetw/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Snetw/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Snetw/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Snetw/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Snetw/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Snetw/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Snetw/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Snetw/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Snetw/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Snetw/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Snetw/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Snetw/go-ethereum/deployments', 'created_at': '2018-12-13T15:55:09Z', 'updated_at': '2018-12-13T14:12:45Z', 'pushed_at': '2018-12-13T14:37:00Z', 'git_url': 'git://github.com/Snetw/go-ethereum.git', 'ssh_url': 'git@github.com:Snetw/go-ethereum.git', 'clone_url': 'https://github.com/Snetw/go-ethereum.git', 'svn_url': 'https://github.com/Snetw/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:55:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749205280', 'type': 'IssueCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'id': 389761595, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'number': 1574, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:51:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch'}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447018042', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#issuecomment-447018042', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'id': 447018042, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxODA0Mg==', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:51:41Z', 'updated_at': '2018-12-13T15:51:41Z', 'author_association': 'CONTRIBUTOR', 'body': \"> Also noticed there is no skip parameter for the GetBeaconBlocks command, nor a reverse. Is this intentional?\\r\\n\\r\\nYes, I'd like to keep everything as simple as possible for as long as possible, and neither `reverse` nor `skip` seem particular important for an MVP testnet. If it turns out that we need it, we can always add it later.\\r\\n\\r\\n> I would highly recommend adding a request_id parameter to any of the GetThing/Thing command pairs so that clients can have strong linkage between a request/response.\\r\\n\\r\\nBasically left this out for simplicity as well. But I agree that request ids are most likely going to be quite helpful. So I'll probably going to add them in the course of beacon chain syncing which I'm going to work on next.\"}}, 'public': True, 'created_at': '2018-12-13T15:51:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749204531', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134920063, 'size': 13, 'distinct_size': 3, 'ref': 'refs/heads/removeUnassignedVarDefs', 'head': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'before': '19c1ea2f8310b9c5457a195096ff5fd46cab19a6', 'commits': [{'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '02a8e5d4e999f0e3610e124c74b7b1492852fbe0', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Update to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/02a8e5d4e999f0e3610e124c74b7b1492852fbe0'}, {'sha': '60a368244ac4a92836fc64054ad7ee6130b386eb', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60a368244ac4a92836fc64054ad7ee6130b386eb'}, {'sha': 'd5a50d8aee007a2d1310ead9c9430c9eb14e9279', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Remove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d5a50d8aee007a2d1310ead9c9430c9eb14e9279'}, {'sha': 'ef95a1ab53c576dbbc2f7e73aef7584c210fecfa', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5651 from ethereum/cmdlineJsonTests\\n\\nRemove pre-release warning from standard json cmdline tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/ef95a1ab53c576dbbc2f7e73aef7584c210fecfa'}, {'sha': '1c4caaa0a20336509802966a1663752cf11697f2', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5636 from ethereum/faq-array-literal\\n\\nDOCS: Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c4caaa0a20336509802966a1663752cf11697f2'}, {'sha': '1d274a8924a9a26f75adbea6dfed7883e1aaa029', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5644 from ethereum/noInlineIntoLarge\\n\\n[Yul] Do not inline into already big functions.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1d274a8924a9a26f75adbea6dfed7883e1aaa029'}, {'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5648 from ethereum/useMemoryDB\\n\\nUpdate to use memorydb for aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/996bfb2a83bf1d99192575fa05ba43e4bc05ef0c'}, {'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}, {'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}]}, 'public': True, 'created_at': '2018-12-13T15:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749198475', 'type': 'IssueCommentEvent', 'actor': {'id': 85355, 'login': 'lookfirst', 'display_login': 'lookfirst', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'avatar_url': 'https://avatars.githubusercontent.com/u/85355?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 9, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:50:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447017675', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447017675', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447017675, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNzY3NQ==', 'user': {'login': 'lookfirst', 'id': 85355, 'node_id': 'MDQ6VXNlcjg1MzU1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/85355?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lookfirst', 'html_url': 'https://github.com/lookfirst', 'followers_url': 'https://api.github.com/users/lookfirst/followers', 'following_url': 'https://api.github.com/users/lookfirst/following{/other_user}', 'gists_url': 'https://api.github.com/users/lookfirst/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lookfirst/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lookfirst/subscriptions', 'organizations_url': 'https://api.github.com/users/lookfirst/orgs', 'repos_url': 'https://api.github.com/users/lookfirst/repos', 'events_url': 'https://api.github.com/users/lookfirst/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lookfirst/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:50:41Z', 'updated_at': '2018-12-13T15:50:41Z', 'author_association': 'NONE', 'body': \"Why does solidity accept contributions from 'random' people?\"}}, 'public': True, 'created_at': '2018-12-13T15:50:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749173576', 'type': 'ForkEvent', 'actor': {'id': 45844784, 'login': 'gangnamtestnet', 'display_login': 'gangnamtestnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/45844784?'}, 'repo': {'id': 30313032, 'name': 'ethereum/ethash', 'url': 'https://api.github.com/repos/ethereum/ethash'}, 'payload': {'forkee': {'id': 161660600, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2NjA2MDA=', 'name': 'ethash', 'full_name': 'gangnamtestnet/ethash', 'private': False, 'owner': {'login': 'gangnamtestnet', 'id': 45844784, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjQ1ODQ0Nzg0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45844784?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gangnamtestnet', 'html_url': 'https://github.com/gangnamtestnet', 'followers_url': 'https://api.github.com/users/gangnamtestnet/followers', 'following_url': 'https://api.github.com/users/gangnamtestnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/gangnamtestnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gangnamtestnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gangnamtestnet/subscriptions', 'organizations_url': 'https://api.github.com/users/gangnamtestnet/orgs', 'repos_url': 'https://api.github.com/users/gangnamtestnet/repos', 'events_url': 'https://api.github.com/users/gangnamtestnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gangnamtestnet/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/gangnamtestnet/ethash', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/gangnamtestnet/ethash', 'forks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/forks', 'keys_url': 'https://api.github.com/repos/gangnamtestnet/ethash/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/gangnamtestnet/ethash/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/gangnamtestnet/ethash/teams', 'hooks_url': 'https://api.github.com/repos/gangnamtestnet/ethash/hooks', 'issue_events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/events{/number}', 'events_url': 'https://api.github.com/repos/gangnamtestnet/ethash/events', 'assignees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/assignees{/user}', 'branches_url': 'https://api.github.com/repos/gangnamtestnet/ethash/branches{/branch}', 'tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/tags', 'blobs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/gangnamtestnet/ethash/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/gangnamtestnet/ethash/languages', 'stargazers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/stargazers', 'contributors_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contributors', 'subscribers_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscribers', 'subscription_url': 'https://api.github.com/repos/gangnamtestnet/ethash/subscription', 'commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/gangnamtestnet/ethash/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/gangnamtestnet/ethash/contents/{+path}', 'compare_url': 'https://api.github.com/repos/gangnamtestnet/ethash/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/gangnamtestnet/ethash/merges', 'archive_url': 'https://api.github.com/repos/gangnamtestnet/ethash/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/gangnamtestnet/ethash/downloads', 'issues_url': 'https://api.github.com/repos/gangnamtestnet/ethash/issues{/number}', 'pulls_url': 'https://api.github.com/repos/gangnamtestnet/ethash/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/gangnamtestnet/ethash/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/gangnamtestnet/ethash/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/gangnamtestnet/ethash/labels{/name}', 'releases_url': 'https://api.github.com/repos/gangnamtestnet/ethash/releases{/id}', 'deployments_url': 'https://api.github.com/repos/gangnamtestnet/ethash/deployments', 'created_at': '2018-12-13T15:47:11Z', 'updated_at': '2018-11-30T12:32:36Z', 'pushed_at': '2018-12-10T14:27:00Z', 'git_url': 'git://github.com/gangnamtestnet/ethash.git', 'ssh_url': 'git@github.com:gangnamtestnet/ethash.git', 'clone_url': 'https://github.com/gangnamtestnet/ethash.git', 'svn_url': 'https://github.com/gangnamtestnet/ethash', 'homepage': None, 'size': 2367, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T15:47:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171801', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3134903228, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/develop', 'head': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'before': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'commits': [{'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Consider return variables to be zero initially.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/b11d413720763e5d4a95260846293a15af7d3b54'}, {'sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5649 from ethereum/returnsAreZero\\n\\n[Yul] Consider return variables to be zero initially.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/633dd44576e267f4728b86ec69a9cc56517a1f89'}]}, 'public': True, 'created_at': '2018-12-13T15:46:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749171067', 'type': 'PullRequestEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'number': 5649, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'id': 238356830, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'number': 5649, 'state': 'closed', 'locked': False, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:49Z', 'closed_at': '2018-12-13T15:46:49Z', 'merged_at': '2018-12-13T15:46:49Z', 'merge_commit_sha': '633dd44576e267f4728b86ec69a9cc56517a1f89', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54', 'head': {'label': 'ethereum:returnsAreZero', 'ref': 'returnsAreZero', 'sha': 'b11d413720763e5d4a95260846293a15af7d3b54', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '996bfb2a83bf1d99192575fa05ba43e4bc05ef0c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-13T15:20:30Z', 'pushed_at': '2018-12-13T15:46:49Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24933, 'stargazers_count': 6436, 'watchers_count': 6436, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 574, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 574, 'watchers': 6436, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5649'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5649/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/b11d413720763e5d4a95260846293a15af7d3b54'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'comments': 2, 'review_comments': 6, 'maintainer_can_modify': False, 'commits': 1, 'additions': 79, 'deletions': 36, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-13T15:46:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749170485', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'id': 390637600, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU2ODMw', 'number': 5649, 'title': '[Yul] Consider return variables to be zero initially.', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T11:33:34Z', 'updated_at': '2018-12-13T15:46:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5649', 'html_url': 'https://github.com/ethereum/solidity/pull/5649', 'diff_url': 'https://github.com/ethereum/solidity/pull/5649.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5649.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447016194', 'html_url': 'https://github.com/ethereum/solidity/pull/5649#issuecomment-447016194', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5649', 'id': 447016194, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNjE5NA==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:46:44Z', 'updated_at': '2018-12-13T15:46:44Z', 'author_association': 'CONTRIBUTOR', 'body': \"I'm merging. This PR should have zero impact on any gas test, because the yul optimizer is disabled.\"}}, 'public': True, 'created_at': '2018-12-13T15:46:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749167495', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522', 'pull_request_review_id': 184727373, 'id': 241451522, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTQ1MTUyMg==', 'diff_hunk': '@@ -0,0 +1,124 @@\\n+import functools\\n+import itertools\\n+from typing import (\\n+ cast,\\n+ Any,\\n+ Dict,\\n+ Iterable,\\n+ Set,\\n+ Type,\\n+)\\n+\\n+from cytoolz import (\\n+ cons,\\n+ sliding_window,\\n+ take,\\n+)\\n+\\n+from eth_typing import (\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ to_tuple,\\n+)\\n+\\n+from cancel_token import CancelToken\\n+\\n+from p2p import protocol\\n+from p2p.peer import BasePeer\\n+from p2p.protocol import Command\\n+\\n+from eth.exceptions import BlockNotFound\\n+from eth.beacon.db.chain import BaseBeaconChainDB\\n+from eth.beacon.types.blocks import BaseBeaconBlock\\n+\\n+from trinity.protocol.common.servers import BaseRequestServer\\n+from trinity.protocol.bcc import commands\\n+from trinity.protocol.bcc.peer import (\\n+ BCCPeer,\\n+ BCCPeerPool,\\n+)\\n+\\n+\\n+class BCCRequestServer(BaseRequestServer):\\n+ subscription_msg_types: Set[Type[Command]] = {\\n+ commands.GetBeaconBlocks,\\n+ }\\n+\\n+ def __init__(self,\\n+ db: BaseBeaconChainDB,\\n+ peer_pool: BCCPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(peer_pool, token)\\n+ self.db = db\\n+\\n+ async def _handle_msg(self, base_peer: BasePeer, cmd: Command,\\n+ msg: protocol._DecodedMsgType) -> None:\\n+ peer = cast(BCCPeer, base_peer)\\n+\\n+ if isinstance(cmd, commands.GetBeaconBlocks):\\n+ await self._handle_get_beacon_blocks(peer, cast(Dict[str, Any], msg))\\n+ else:\\n+ raise Exception(\"Invariant: Only subscribed to GetBeaconBlocks\")\\n+\\n+ async def _handle_get_beacon_blocks(self, peer: BCCPeer, msg: Dict[str, Any]) -> None:', 'path': 'trinity/protocol/bcc/servers.py', 'position': None, 'original_position': 65, 'commit_id': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'original_commit_id': '1ba628dfb0bf7d2ca161e7113de2dc3f8ab0abb5', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Nice, didn't know about `TypeDict`, seems pretty useful! I added it, but here it didn't help a lot unfortunately: It only got rid of the cast for `max_blocks`, we still need to first cast the message to the `TypeDict`.\", 'created_at': '2018-12-13T15:46:19Z', 'updated_at': '2018-12-13T15:46:20Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241451522'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574#discussion_r241451522'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}}, 'in_reply_to_id': 240723965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574', 'id': 237676994, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3Njc2OTk0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1574', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1574.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1574.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574', 'number': 1574, 'state': 'open', 'locked': False, 'title': 'Beacon block request handler', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Implements handling of and responding to beacon chain `GetBeaconBlocks` messages.\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://user-images.githubusercontent.com/29854669/49803413-03565280-fd50-11e8-8e1f-21f0b2894bf3.jpeg)', 'created_at': '2018-12-11T13:21:56Z', 'updated_at': '2018-12-13T15:46:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '8728313cb8ad3851a37864b645fbbb3fbc48693b', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'head': {'label': 'jannikluhn:bcc-requests', 'ref': 'bcc-requests', 'sha': 'f6681fc7cb15037653a14bbcf861ea92f6b9cf66', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112172429, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIxNzI0Mjk=', 'name': 'py-evm', 'full_name': 'jannikluhn/py-evm', 'private': False, 'owner': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/jannikluhn/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/jannikluhn/py-evm', 'forks_url': 'https://api.github.com/repos/jannikluhn/py-evm/forks', 'keys_url': 'https://api.github.com/repos/jannikluhn/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jannikluhn/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jannikluhn/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/jannikluhn/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jannikluhn/py-evm/events', 'assignees_url': 'https://api.github.com/repos/jannikluhn/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jannikluhn/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jannikluhn/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jannikluhn/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/jannikluhn/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/jannikluhn/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/jannikluhn/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jannikluhn/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jannikluhn/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jannikluhn/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jannikluhn/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jannikluhn/py-evm/merges', 'archive_url': 'https://api.github.com/repos/jannikluhn/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jannikluhn/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/jannikluhn/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jannikluhn/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jannikluhn/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jannikluhn/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jannikluhn/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/jannikluhn/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jannikluhn/py-evm/deployments', 'created_at': '2017-11-27T09:01:07Z', 'updated_at': '2017-11-27T09:01:09Z', 'pushed_at': '2018-12-13T15:43:01Z', 'git_url': 'git://github.com/jannikluhn/py-evm.git', 'ssh_url': 'git@github.com:jannikluhn/py-evm.git', 'clone_url': 'https://github.com/jannikluhn/py-evm.git', 'svn_url': 'https://github.com/jannikluhn/py-evm', 'homepage': '', 'size': 7258, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T06:21:41Z', 'pushed_at': '2018-12-13T15:43:03Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6564, 'stargazers_count': 749, 'watchers_count': 749, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 334, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 334, 'open_issues': 166, 'watchers': 749, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1574'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1574/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1574/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/f6681fc7cb15037653a14bbcf861ea92f6b9cf66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T15:46:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749161300', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/628/events', 'html_url': 'https://github.com/ethereum/solidity/issues/628', 'id': 158510014, 'node_id': 'MDU6SXNzdWUxNTg1MTAwMTQ=', 'number': 628, 'title': 'Authenticated Binaries', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 249074437, 'node_id': 'MDU6TGFiZWwyNDkwNzQ0Mzc=', 'url': 'https://api.github.com/repos/ethereum/solidity/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/solidity/milestones/11', 'html_url': 'https://github.com/ethereum/solidity/milestone/11', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/milestones/11/labels', 'id': 1925443, 'node_id': 'MDk6TWlsZXN0b25lMTkyNTQ0Mw==', 'number': 11, 'title': '4-authenticated-binaries', 'description': 'Smart contract binaries should be authenticated in the sense that their source code and compiler is stamped into their bytecode (creation bytecode). Furhermore, it should be possible to see which compiler version is \"official\" from the blockchain.', 'creator': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 2, 'state': 'closed', 'created_at': '2016-08-05T13:34:02Z', 'updated_at': '2018-07-30T10:42:53Z', 'due_on': None, 'closed_at': '2018-07-30T10:42:53Z'}, 'comments': 8, 'created_at': '2016-06-04T15:41:01Z', 'updated_at': '2018-12-13T15:45:27Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Currently, the archived binaries of the compiler are only published on github. While this provides a certain protection against manipulation due to the use of git, it is not really in spirit with the decentralisation efforts we are propagating. Also in light of the planned improved [source code verification](https://github.com/ethereum/solidity/issues/611), the following changes are proposed:\\n- [ ] create a contract on the blockchain that connects\\n - compiler version\\n - \"stability\" (nightly snapshot or release)\\n - sha3 hash of the binary\\n - commit hash of the source code (this will only be partly meaningful until solidity is a fully standalone repository)\\n- [ ] create a CI job that performs nightly compilations and automatically\\n - publishes this meta data to the blockchain\\n - pushes the binary onto github\\n - pushes the binary into ipfs (and swarm in the future)\\n- [ ] provide a mechanism usable by a set of developer to revoke/update the CI key\\n\\nEspecially the fact that the sha3 hash of the binary is available to the blockchain will allow contracts to be verified on chain (once we have interactive verification in place), because they can request external entities to execute the binary given by the hash.\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447015639', 'html_url': 'https://github.com/ethereum/solidity/issues/628#issuecomment-447015639', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/628', 'id': 447015639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxNTYzOQ==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:45:27Z', 'updated_at': '2018-12-13T15:45:27Z', 'author_association': 'CONTRIBUTOR', 'body': 'I see zero benefit in requiring \"random\" people to sign their commits - that can be easily faked. It actually has a negative impact because it gives a false impression of security.\\r\\n\\r\\nYou are right, the scope of this initial issue was too large, we should sign the binaries.'}}, 'public': True, 'created_at': '2018-12-13T15:45:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749153672', 'type': 'CreateEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'master_branch': 'master', 'description': 'Pythonic Smart Contract Language for the EVM', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:44:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749152469', 'type': 'PushEvent', 'actor': {'id': 6917456, 'login': 'jacqueswww', 'display_login': 'jacqueswww', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'avatar_url': 'https://avatars.githubusercontent.com/u/6917456?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'push_id': 3134893359, 'size': 2, 'distinct_size': 2, 'ref': 'refs/heads/master', 'head': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'before': '17a4f43992a39fa17e55943603853c5b1d64c60f', 'commits': [{'sha': '90f19c98303f27d801b214580b1bed2c04b38e49', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Move bumpversion settings to .bumpversion.cfg', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/90f19c98303f27d801b214580b1bed2c04b38e49'}, {'sha': 'fcb8b46b874557af33d6f2a8c313a081761251e8', 'author': {'email': 'jacques@dilectum.co.za', 'name': 'Jacques Wagener'}, 'message': 'Bump version: 0.1.0-beta.5 → 0.1.0-beta.6', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/vyper/commits/fcb8b46b874557af33d6f2a8c313a081761251e8'}]}, 'public': True, 'created_at': '2018-12-13T15:44:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749133571', 'type': 'WatchEvent', 'actor': {'id': 34389409, 'login': 'ndc07', 'display_login': 'ndc07', 'gravatar_id': '', 'url': 'https://api.github.com/users/ndc07', 'avatar_url': 'https://avatars.githubusercontent.com/u/34389409?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T15:41:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749130652', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'opened', 'number': 569, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/tests/pulls/569', 'id': 238434612, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDM0NjEy', 'html_url': 'https://github.com/ethereum/tests/pull/569', 'diff_url': 'https://github.com/ethereum/tests/pull/569.diff', 'patch_url': 'https://github.com/ethereum/tests/pull/569.patch', 'issue_url': 'https://api.github.com/repos/ethereum/tests/issues/569', 'number': 569, 'state': 'open', 'locked': False, 'title': 'extcodecopy/hash of zero size', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T15:41:04Z', 'updated_at': '2018-12-13T15:41:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/issues/569/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f', 'head': {'label': 'ethereum:moreextcodehash', 'ref': 'moreextcodehash', 'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15540967, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTU0MDk2Nw==', 'name': 'tests', 'full_name': 'ethereum/tests', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/tests', 'description': 'Common tests for all Ethereum implementations', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/tests', 'forks_url': 'https://api.github.com/repos/ethereum/tests/forks', 'keys_url': 'https://api.github.com/repos/ethereum/tests/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/tests/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/tests/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/tests/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/tests/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/tests/events', 'assignees_url': 'https://api.github.com/repos/ethereum/tests/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/tests/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/tests/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/tests/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/tests/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/tests/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/tests/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/tests/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/tests/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/tests/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/tests/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/tests/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/tests/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/tests/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/tests/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/tests/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/tests/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/tests/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/tests/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/tests/merges', 'archive_url': 'https://api.github.com/repos/ethereum/tests/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/tests/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/tests/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/tests/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/tests/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/tests/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/tests/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/tests/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/tests/deployments', 'created_at': '2013-12-31T02:09:03Z', 'updated_at': '2018-12-12T21:45:42Z', 'pushed_at': '2018-12-13T15:40:40Z', 'git_url': 'git://github.com/ethereum/tests.git', 'ssh_url': 'git@github.com:ethereum/tests.git', 'clone_url': 'https://github.com/ethereum/tests.git', 'svn_url': 'https://github.com/ethereum/tests', 'homepage': '', 'size': 139978, 'stargazers_count': 153, 'watchers_count': 153, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 145, 'mirror_url': None, 'archived': False, 'open_issues_count': 60, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 145, 'open_issues': 60, 'watchers': 153, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569'}, 'html': {'href': 'https://github.com/ethereum/tests/pull/569'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/tests/issues/569/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/tests/pulls/569/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/tests/statuses/11652e3eac4949eab88bf58effa2895c4af2f40f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 482, 'deletions': 0, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-13T15:41:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749129431', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5375', 'id': 378867727, 'node_id': 'MDU6SXNzdWUzNzg4Njc3Mjc=', 'number': 5375, 'title': 'Improve stack slot allocation in code generator (and avoid swaps)', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-11-08T18:48:04Z', 'updated_at': '2018-12-13T15:40:54Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'See if the algorithm presented in https://pdfs.semanticscholar.org/presentation/1a65/e787b08fe8812797a0557760ae84072ad292.pdf is relevant for the yul to evm code generator to avoid swap operations.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447013856', 'html_url': 'https://github.com/ethereum/solidity/issues/5375#issuecomment-447013856', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5375', 'id': 447013856, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzg1Ng==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:54Z', 'updated_at': '2018-12-13T15:40:54Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah that's the point - most research on this topic is based on register machines. Since we use the stack both as expression stack and as local variable storage, it is almost the same, but not quite.\\r\\n\\r\\nFor example, currently, we do not optimize the last usage of a stack item:\\r\\n`let x := 2 mstore(0, x)` is currently translated to `2 dup1 0 mstore pop` while it could be translated to `2 0 mstore`\\r\\n\\r\\nor a similar but more complicated version (this blurs the line between expression stack and variable storage):\\r\\n\\r\\n`let x := 2 mstore(x, 0)` is currently translated to `2 0 dup2 mstore pop`, but could be translated to `2 0 swap1 mstore`.\"}}, 'public': True, 'created_at': '2018-12-13T15:40:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128387', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'repository_url': 'https://api.github.com/repos/ethereum/py-ssz', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/events', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'id': 389878971, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'number': 10, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-13T15:40:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch'}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments/447013786', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#issuecomment-447013786', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'id': 447013786, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMzc4Ng==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:40:44Z', 'updated_at': '2018-12-13T15:40:44Z', 'author_association': 'CONTRIBUTOR', 'body': '@Bhargavasomu fixed!'}}, 'public': True, 'created_at': '2018-12-13T15:40:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749128034', 'type': 'PushEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'push_id': 3134880769, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/moreextcodehash', 'head': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'before': 'afe968f2a96b2d8c9a70bf32933220e02f9ce680', 'commits': [{'sha': '3c239e69bd0d2857027e4c1c883a4f981d3a75b9', 'author': {'email': 'winsvega@mail.ru', 'name': 'winsvega'}, 'message': 'Merge pull request #568 from ethereum/moreextcodehash\\n\\nextcodehash of account that suicide in a subcall', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/tests/commits/3c239e69bd0d2857027e4c1c883a4f981d3a75b9'}, {'sha': '11652e3eac4949eab88bf58effa2895c4af2f40f', 'author': {'email': 'dimitry@ethereum.org', 'name': 'Dimitry'}, 'message': 'extcodecopy/hash of zero size', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/tests/commits/11652e3eac4949eab88bf58effa2895c4af2f40f'}]}, 'public': True, 'created_at': '2018-12-13T15:40:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118552', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'push_id': 3134875732, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'before': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'commits': [{'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Bump pytest version', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}, {'sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #11 from ethereum/hwwhww-patch-1\\n\\nBump pytest version >=3.6,<3.7', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-ssz/commits/ccc4d2e64e20216ef0e878ffd1062acd56436e86'}]}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749118494', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'closed', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'closed', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:39:23Z', 'closed_at': '2018-12-13T15:39:23Z', 'merged_at': '2018-12-13T15:39:23Z', 'merge_commit_sha': 'ccc4d2e64e20216ef0e878ffd1062acd56436e86', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:39:23Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:39:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749114734', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'opened', 'number': 11, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11', 'id': 238433811, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDMzODEx', 'html_url': 'https://github.com/ethereum/py-ssz/pull/11', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/11.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/11.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11', 'number': 11, 'state': 'open', 'locked': False, 'title': 'Bump pytest version >=3.6,<3.7', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\n\\r\\nUse the same pytest version setting as py-evm\\r\\n\\r\\n## How was it fixed?\\r\\n`\"pytest>=3.6,<3.7\"`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n🐑', 'created_at': '2018-12-13T15:38:50Z', 'updated_at': '2018-12-13T15:38:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'head': {'label': 'ethereum:hwwhww-patch-1', 'ref': 'hwwhww-patch-1', 'sha': 'b926a3d3d8f6375ede79bf02eb6435d1af1b8b49', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-10T07:08:36Z', 'pushed_at': '2018-12-13T15:37:28Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 76, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 6, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 6, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/11'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/11/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/11/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/b926a3d3d8f6375ede79bf02eb6435d1af1b8b49'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:38:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749104997', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'ref': 'hwwhww-patch-1', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T15:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101507', 'type': 'PushEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3134866869, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'before': '8d85479a9665ad77df66628f2979b87cef66f5ba', 'commits': [{'sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput` (#310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/1ea887c964557aaaa0e56a7dd9efade613bbdaf1'}]}, 'public': True, 'created_at': '2018-12-13T15:36:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749101342', 'type': 'PullRequestEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'id': 238429264, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'number': 310, 'state': 'closed', 'locked': False, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.', 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T15:36:58Z', 'closed_at': '2018-12-13T15:36:58Z', 'merged_at': '2018-12-13T15:36:57Z', 'merge_commit_sha': '1ea887c964557aaaa0e56a7dd9efade613bbdaf1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'head': {'label': 'ethereum:deposit_data', 'ref': 'deposit_data', 'sha': 'dae6165704b36be3a239a4f47e8bfca5f7c5457d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b5542046883e252dfbb1de2fb2b20c199ae7e598', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T15:26:33Z', 'pushed_at': '2018-12-13T15:36:57Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1069, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 34, 'license': None, 'forks': 66, 'open_issues': 34, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/dae6165704b36be3a239a4f47e8bfca5f7c5457d'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 31, 'deletions': 23, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T15:36:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078704', 'type': 'IssuesEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749078679', 'type': 'IssueCommentEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5597', 'id': 387817998, 'node_id': 'MDU6SXNzdWUzODc4MTc5OTg=', 'number': 5597, 'title': 'YUL optimizer: Out-of-range exception thrown by VarDeclPropagator', 'user': {'login': 'bshastry', 'id': 2388185, 'node_id': 'MDQ6VXNlcjIzODgxODU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2388185?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bshastry', 'html_url': 'https://github.com/bshastry', 'followers_url': 'https://api.github.com/users/bshastry/followers', 'following_url': 'https://api.github.com/users/bshastry/following{/other_user}', 'gists_url': 'https://api.github.com/users/bshastry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bshastry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bshastry/subscriptions', 'organizations_url': 'https://api.github.com/users/bshastry/orgs', 'repos_url': 'https://api.github.com/users/bshastry/repos', 'events_url': 'https://api.github.com/users/bshastry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bshastry/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-05T15:45:00Z', 'updated_at': '2018-12-13T15:33:45Z', 'closed_at': '2018-12-13T15:33:45Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nThe VarDeclPropagator YUL optimization throws a `std::out_of_range` exception for the code below\\r\\n\\r\\n```\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n```\\r\\n\\r\\nThe exception is thrown at `libyul/optimiser/VarDeclPropagator.cpp:121`\\r\\n\\r\\n```cpp\\r\\nvariables.emplace_back(move(m_lazyInitializedVarDecls.at(varName.name)));\\r\\n```\\r\\n\\r\\n- `m_lazyInitializedVarDecls` (maps `YulString` to `TypedName`) at this point is an empty map from which we are trying to index a key called `varName.name`\\r\\n- This leads to the `'std::out_of_range` exception\\r\\n\\r\\nThe bug is local to `VarDeclPropagator::recreateVariableDeclaration` function which is called within a lambda function called `iterateReplacing` on line 58 of the faulting source file.\\r\\n\\r\\n## Environment\\r\\n\\r\\n- Compiler version: develop commit `1e6c368bb`\\r\\n- Framework/IDE (e.g. Truffle or Remix): na\\r\\n- EVM execution environment / backend / blockchain client: na\\r\\n- Operating system: Ubuntu 16.04\\r\\n\\r\\n## Steps to Reproduce\\r\\n\\r\\n- Run `yulopti` as shown\\r\\n- Select `d` (vardecl) in the interactive step\\r\\n\\r\\n```\\r\\n$ yulopti --input-file \\r\\n----------------------\\r\\n{\\r\\n function f() -> a, b, c {}\\r\\n let x, y, z \\r\\n z, x, x := f()\\r\\n}\\r\\n// -x }\\r\\n\\r\\n(q)quit/(f)flatten/(c)se/propagate var(d)ecls/(x)plit/(j)oin/(g)rouper/(h)oister/\\r\\n (e)xpr inline/(i)nline/(s)implify/(u)nusedprune/ss(a) transform/\\r\\n (r)edundant assign elim./re(m)aterializer/f(o)r-loop-pre-rewriter? d\\r\\nterminate called after throwing an instance of 'std::out_of_range'\\r\\n what(): map::at\\r\\nAborted (core dumped)\\r\\n```\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447010987', 'html_url': 'https://github.com/ethereum/solidity/issues/5597#issuecomment-447010987', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5597', 'id': 447010987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzAxMDk4Nw==', 'user': {'login': 'chriseth', 'id': 9073706, 'node_id': 'MDQ6VXNlcjkwNzM3MDY=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9073706?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'html_url': 'https://github.com/chriseth', 'followers_url': 'https://api.github.com/users/chriseth/followers', 'following_url': 'https://api.github.com/users/chriseth/following{/other_user}', 'gists_url': 'https://api.github.com/users/chriseth/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chriseth/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chriseth/subscriptions', 'organizations_url': 'https://api.github.com/users/chriseth/orgs', 'repos_url': 'https://api.github.com/users/chriseth/repos', 'events_url': 'https://api.github.com/users/chriseth/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chriseth/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T15:33:45Z', 'updated_at': '2018-12-13T15:33:45Z', 'author_association': 'CONTRIBUTOR', 'body': 'Closing since the var decl propagator is being removed.'}}, 'public': True, 'created_at': '2018-12-13T15:33:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8749070596', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3134850927, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'before': '0ab0d8f1ff41a392bcc69be6df663727471a303c', 'commits': [{'sha': '9c1421e04db11f86c769e5d5fefbb9f1d436cc22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-fc2e62e2068fedffbba884eadd2b3442ddbd44a1/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/9c1421e04db11f86c769e5d5fefbb9f1d436cc22'}]}, 'public': True, 'created_at': '2018-12-13T15:32:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" + "[{'id': '8754423427', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137627808, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'before': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'commits': [{'sha': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2435ecb0ffd17dc2ce030a489ab3621ba8db0b53'}]}, 'public': True, 'created_at': '2018-12-14T11:37:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754416458', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137624181, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'before': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'commits': [{'sha': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b034946fcd78acd5f428268fe13f41e3a6b12e25'}]}, 'public': True, 'created_at': '2018-12-14T11:35:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754415961', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5654', 'id': 390700758, 'node_id': 'MDU6SXNzdWUzOTA3MDA3NTg=', 'number': 5654, 'title': 'End of life of Solidity 0.4', 'user': {'login': 'alcuadrado', 'id': 176499, 'node_id': 'MDQ6VXNlcjE3NjQ5OQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/176499?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/alcuadrado', 'html_url': 'https://github.com/alcuadrado', 'followers_url': 'https://api.github.com/users/alcuadrado/followers', 'following_url': 'https://api.github.com/users/alcuadrado/following{/other_user}', 'gists_url': 'https://api.github.com/users/alcuadrado/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/alcuadrado/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/alcuadrado/subscriptions', 'organizations_url': 'https://api.github.com/users/alcuadrado/orgs', 'repos_url': 'https://api.github.com/users/alcuadrado/repos', 'events_url': 'https://api.github.com/users/alcuadrado/events{/privacy}', 'received_events_url': 'https://api.github.com/users/alcuadrado/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T14:22:30Z', 'updated_at': '2018-12-14T11:35:50Z', 'closed_at': '2018-12-13T14:45:36Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nI couldn't find any information about Solidity 0.4 future plans. I'm specially interested about its EOL. I think it's really important to plan libraries' and tooling's migration to 0.5. Has it been defined?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447299523', 'html_url': 'https://github.com/ethereum/solidity/issues/5654#issuecomment-447299523', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'id': 447299523, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5OTUyMw==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:35:50Z', 'updated_at': '2018-12-14T11:35:50Z', 'author_association': 'MEMBER', 'body': \"No worries @alcuadrado . That message is probably just from readthedocs.\\r\\nWhy should it explicitly say it? Older versions haven't been kept maintained before, why would 0.4?\"}}, 'public': True, 'created_at': '2018-12-14T11:35:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754399511', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137615452, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'before': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'commits': [{'sha': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Update README.md\\n\\nCo-Authored-By: FrankSzendzielarz <33515470+FrankSzendzielarz@users.noreply.github.com>', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/4d6ac7e8d067b2a5bea6b630fc6a86b427429259'}]}, 'public': True, 'created_at': '2018-12-14T11:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394928', 'type': 'ForkEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'forkee': {'id': 161775988, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzU5ODg=', 'name': 'research', 'full_name': '3for/research', 'private': False, 'owner': {'login': '3for', 'id': 30716372, 'node_id': 'MDQ6VXNlcjMwNzE2Mzcy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/30716372?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'html_url': 'https://github.com/3for', 'followers_url': 'https://api.github.com/users/3for/followers', 'following_url': 'https://api.github.com/users/3for/following{/other_user}', 'gists_url': 'https://api.github.com/users/3for/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/3for/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/3for/subscriptions', 'organizations_url': 'https://api.github.com/users/3for/orgs', 'repos_url': 'https://api.github.com/users/3for/repos', 'events_url': 'https://api.github.com/users/3for/events{/privacy}', 'received_events_url': 'https://api.github.com/users/3for/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/3for/research', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/3for/research', 'forks_url': 'https://api.github.com/repos/3for/research/forks', 'keys_url': 'https://api.github.com/repos/3for/research/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/3for/research/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/3for/research/teams', 'hooks_url': 'https://api.github.com/repos/3for/research/hooks', 'issue_events_url': 'https://api.github.com/repos/3for/research/issues/events{/number}', 'events_url': 'https://api.github.com/repos/3for/research/events', 'assignees_url': 'https://api.github.com/repos/3for/research/assignees{/user}', 'branches_url': 'https://api.github.com/repos/3for/research/branches{/branch}', 'tags_url': 'https://api.github.com/repos/3for/research/tags', 'blobs_url': 'https://api.github.com/repos/3for/research/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/3for/research/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/3for/research/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/3for/research/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/3for/research/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/3for/research/languages', 'stargazers_url': 'https://api.github.com/repos/3for/research/stargazers', 'contributors_url': 'https://api.github.com/repos/3for/research/contributors', 'subscribers_url': 'https://api.github.com/repos/3for/research/subscribers', 'subscription_url': 'https://api.github.com/repos/3for/research/subscription', 'commits_url': 'https://api.github.com/repos/3for/research/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/3for/research/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/3for/research/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/3for/research/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/3for/research/contents/{+path}', 'compare_url': 'https://api.github.com/repos/3for/research/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/3for/research/merges', 'archive_url': 'https://api.github.com/repos/3for/research/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/3for/research/downloads', 'issues_url': 'https://api.github.com/repos/3for/research/issues{/number}', 'pulls_url': 'https://api.github.com/repos/3for/research/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/3for/research/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/3for/research/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/3for/research/labels{/name}', 'releases_url': 'https://api.github.com/repos/3for/research/releases{/id}', 'deployments_url': 'https://api.github.com/repos/3for/research/deployments', 'created_at': '2018-12-14T11:31:32Z', 'updated_at': '2018-12-14T11:31:29Z', 'pushed_at': '2018-11-08T23:24:30Z', 'git_url': 'git://github.com/3for/research.git', 'ssh_url': 'git@github.com:3for/research.git', 'clone_url': 'https://github.com/3for/research.git', 'svn_url': 'https://github.com/3for/research', 'homepage': None, 'size': 31641, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:31:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394731', 'type': 'WatchEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:31:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754392528', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263', 'pull_request_review_id': 185070168, 'id': 241725263, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNTI2Mw==', 'diff_hunk': '@@ -521,12 +521,34 @@ will result a `subresults` field\\n }\\n ]\\n ```\\n-\\n ### Closing notes\\n \\n * There is no constraint on how much time a simulation may run, but please be considerate.\\n * The simulator doesn\\'t have to terminate nodes itself, upon exit all resources are reclaimed.\\n \\n+# Generating test blockchains\\n+\\n+`Hive` allows you to create rlp encoded blockchains for inclusion into sync tests \\n+\\n+## To generate a blockchain offline\\n+\\n+`Hive` can be run with the `chainGenerate` setting to generate a blockchain according to specification\\n+and then exit. The current version only generates blocks with empty transactions, but this will be\\n+improved in the future to offer generation of chains that exhibit different characteristics for testing.\\n+\\n+* `chainGenerate` Bool (false) Tell Hive to generate a blockchain on the basis of a supplied genesis and terminate\\n+* `chainLength` Uint (2) The length of the chain to generate\\n+* `chainConfig` String Reserved for future usage. Will allow Hive to generate test chains of different types\\n+*\\t`chainOutputPath` String (.) Chain destination folder\\n+*\\t`chainGenesis` String (\"\") The path and filename to the source genesis.json\\n+*\\t`chainBlockTime` Uint (30) The desired block time in seconds', 'path': 'README.md', 'position': 25, 'original_position': 25, 'commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'original_commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"```suggestion\\r\\n*\\t`chainBlockTime` Uint (30) The desired block time in seconds. OBS: It's recommended to set this value to somwhere above 20s to keep the mining difficulty low.\\r\\n```\", 'created_at': '2018-12-14T11:31:01Z', 'updated_at': '2018-12-14T11:31:01Z', 'html_url': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263', 'pull_request_url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-14T11:31:01Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '72a5fd1a30f6c0fff23a8d6973a817c9f950b1f9', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647'}}, 'author_association': 'COLLABORATOR'}}, 'public': True, 'created_at': '2018-12-14T11:31:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754383076', 'type': 'WatchEvent', 'actor': {'id': 40417611, 'login': '1tD0g', 'display_login': '1tD0g', 'gravatar_id': '', 'url': 'https://api.github.com/users/1tD0g', 'avatar_url': 'https://avatars.githubusercontent.com/u/40417611?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:29:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754382391', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640', 'pull_request_review_id': 185069430, 'id': 241724640, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNDY0MA==', 'diff_hunk': '@@ -59,8 +59,10 @@ int main(int argc, char** argv)\\n addNetworkingOption(\"listen-ip\", po::value()->value_name(\"(:)\"),\\n \"Listen on the given IP for incoming connections (default: 0.0.0.0)\");\\n addNetworkingOption(\"listen\", po::value()->value_name(\"\"),\\n- \"Listen on the given port for incoming connections (default: 30303)\\\\n\");\\n-\\n+ \"Listen on the given port for incoming connections (default: 30303)\");\\n+ addNetworkingOption(\"allow-local\",\\n+ \"Allow connections from nodes on your local network. Primarily used for testing \"', 'path': 'aleth-bootnode/main.cpp', 'position': 8, 'original_position': 8, 'commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'original_commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I have doubts about the wording: \"connections\" meaning devp2p connections are allowed anyway.\\r\\nMaybe the flag should be `allow-local-discovery` and description something like \"Include local addresses in discovery.\"', 'created_at': '2018-12-14T11:28:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'b0c1b23314ae8141f5174ca2164451856721481e', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:28:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754371838', 'type': 'IssueCommentEvent', 'actor': {'id': 44437404, 'login': 'naikmyeong', 'display_login': 'naikmyeong', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'avatar_url': 'https://avatars.githubusercontent.com/u/44437404?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'id': 390930429, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'number': 18308, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T11:26:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch'}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447297507', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308#issuecomment-447297507', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'id': 447297507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5NzUwNw==', 'user': {'login': 'naikmyeong', 'id': 44437404, 'node_id': 'MDQ6VXNlcjQ0NDM3NDA0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/44437404?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'html_url': 'https://github.com/naikmyeong', 'followers_url': 'https://api.github.com/users/naikmyeong/followers', 'following_url': 'https://api.github.com/users/naikmyeong/following{/other_user}', 'gists_url': 'https://api.github.com/users/naikmyeong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/naikmyeong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/naikmyeong/subscriptions', 'organizations_url': 'https://api.github.com/users/naikmyeong/orgs', 'repos_url': 'https://api.github.com/users/naikmyeong/repos', 'events_url': 'https://api.github.com/users/naikmyeong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/naikmyeong/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:26:42Z', 'updated_at': '2018-12-14T11:26:42Z', 'author_association': 'NONE', 'body': 'Here is the release note for go 1.11.3 and 1.10.6 https://groups.google.com/forum/m/#!topic/golang-announce/Kw31K8G7Fi0'}}, 'public': True, 'created_at': '2018-12-14T11:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754353877', 'type': 'IssuesEvent', 'actor': {'id': 49922, 'login': 'miohtama', 'display_login': 'miohtama', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'avatar_url': 'https://avatars.githubusercontent.com/u/49922?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5657', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5657', 'id': 391071836, 'node_id': 'MDU6SXNzdWUzOTEwNzE4MzY=', 'number': 5657, 'title': 'Feature request: flattened source code output', 'user': {'login': 'miohtama', 'id': 49922, 'node_id': 'MDQ6VXNlcjQ5OTIy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/49922?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'html_url': 'https://github.com/miohtama', 'followers_url': 'https://api.github.com/users/miohtama/followers', 'following_url': 'https://api.github.com/users/miohtama/following{/other_user}', 'gists_url': 'https://api.github.com/users/miohtama/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/miohtama/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/miohtama/subscriptions', 'organizations_url': 'https://api.github.com/users/miohtama/orgs', 'repos_url': 'https://api.github.com/users/miohtama/repos', 'events_url': 'https://api.github.com/users/miohtama/events{/privacy}', 'received_events_url': 'https://api.github.com/users/miohtama/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T11:22:57Z', 'updated_at': '2018-12-14T11:22:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '## Abstract\\r\\n\\r\\n``solc`` could generate flattened sol source code in output JSON.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nA flattened source code, all includes eliminated and having source in a single file, is needed for source code verification (reproducible builds). The most common venue is EtherScan and public verification.\\r\\n\\r\\nCurrently there are third party tools doing this - see ( https://github.com/BlockCatIO/solidity-flattener and https://github.com/nomiclabs/truffle-flattener ). However the add extra complexity to the toolchain, as the natural place to to produce the flattened source code would be the compiler itself as the compiler know from where it has assembled the source code files. For non-trivial source code tree doing a flattened version of a contract tends to be a labour intensive process.\\r\\n\\r\\n## Specification\\r\\n\\r\\nIn Input Description, include new `outputSelection` option `source`. This will procude matching `source` item in `contracts` section.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nAs this is additional change to the compiler output, I do not see it should cause \\r\\n\\r\\n## Earlier discussion\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/2620\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/611'}}, 'public': True, 'created_at': '2018-12-14T11:22:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754349538', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137588967, 'size': 6, 'distinct_size': 2, 'ref': 'refs/heads/smt_mapping', 'head': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'before': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}, {'sha': '6a2809a582d95a5b4cb52abeb3f92ed01857809b', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6a2809a582d95a5b4cb52abeb3f92ed01857809b'}, {'sha': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Clear all mapping knowledge after array variable assignment', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/9199718ec0aa1210094ceb9ca587fe49fba70518'}]}, 'public': True, 'created_at': '2018-12-14T11:22:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343870', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137586095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'before': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'commits': [{'sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Make extra container for copying easier to avoid (#162)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/c4e0f6f899286f4e0cef7490a1a4fda6fead5522'}]}, 'public': True, 'created_at': '2018-12-14T11:20:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343776', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'closed', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T11:20:51Z', 'closed_at': '2018-12-14T11:20:51Z', 'merged_at': '2018-12-14T11:20:51Z', 'merge_commit_sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T11:20:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754335842', 'type': 'WatchEvent', 'actor': {'id': 679887, 'login': 'hkk', 'display_login': 'hkk', 'gravatar_id': '', 'url': 'https://api.github.com/users/hkk', 'avatar_url': 'https://avatars.githubusercontent.com/u/679887?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:19:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754329096', 'type': 'WatchEvent', 'actor': {'id': 15720036, 'login': 'kyledewy', 'display_login': 'kyledewy', 'gravatar_id': '', 'url': 'https://api.github.com/users/kyledewy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15720036?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:17:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303327', 'type': 'ForkEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161773980, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzM5ODA=', 'name': 'go-ethereum', 'full_name': 'racmnet/go-ethereum', 'private': False, 'owner': {'login': 'racmnet', 'id': 10967038, 'node_id': 'MDQ6VXNlcjEwOTY3MDM4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/10967038?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'html_url': 'https://github.com/racmnet', 'followers_url': 'https://api.github.com/users/racmnet/followers', 'following_url': 'https://api.github.com/users/racmnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/racmnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/racmnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/racmnet/subscriptions', 'organizations_url': 'https://api.github.com/users/racmnet/orgs', 'repos_url': 'https://api.github.com/users/racmnet/repos', 'events_url': 'https://api.github.com/users/racmnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/racmnet/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/racmnet/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/racmnet/go-ethereum', 'forks_url': 'https://api.github.com/repos/racmnet/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/racmnet/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/racmnet/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/racmnet/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/racmnet/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/racmnet/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/racmnet/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/racmnet/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/racmnet/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/racmnet/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/racmnet/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/racmnet/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/racmnet/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/racmnet/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/racmnet/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/racmnet/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/racmnet/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/racmnet/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/racmnet/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/racmnet/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/racmnet/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/racmnet/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/racmnet/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/racmnet/go-ethereum/deployments', 'created_at': '2018-12-14T11:12:27Z', 'updated_at': '2018-12-14T10:47:12Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/racmnet/go-ethereum.git', 'ssh_url': 'git@github.com:racmnet/go-ethereum.git', 'clone_url': 'https://github.com/racmnet/go-ethereum.git', 'svn_url': 'https://github.com/racmnet/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107637, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:12:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303002', 'type': 'WatchEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:12:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754268209', 'type': 'WatchEvent', 'actor': {'id': 1172733, 'login': 'toannk', 'display_login': 'toannk', 'gravatar_id': '', 'url': 'https://api.github.com/users/toannk', 'avatar_url': 'https://avatars.githubusercontent.com/u/1172733?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:05:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754240410', 'type': 'IssueCommentEvent', 'actor': {'id': 4943570, 'login': 'b00ris', 'display_login': 'b00ris', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'avatar_url': 'https://avatars.githubusercontent.com/u/4943570?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'id': 329621626, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTkyODMzNzU4', 'number': 16904, 'title': 'les: implement ulc', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 23, 'created_at': '2018-06-05T20:56:18Z', 'updated_at': '2018-12-14T11:00:05Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/16904', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/16904.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/16904.patch'}, 'body': 'Implements ultra light client feature.\\r\\nhttps://github.com/zsfelfoldi/ethereum-docs/blob/master/les/tasks/ulc.txt\\r\\nMore information about ULC https://hackmd.io/s/HJy7jjZpm'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447291395', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904#issuecomment-447291395', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'id': 447291395, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5MTM5NQ==', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:00:05Z', 'updated_at': '2018-12-14T11:00:05Z', 'author_association': 'CONTRIBUTOR', 'body': '@zsfelfoldi @karalabe :('}}, 'public': True, 'created_at': '2018-12-14T11:00:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754230101', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3137526125, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'before': '1683c108885da84f8b81b3669b6e40e9111e147b', 'commits': [{'sha': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: fix windows flag', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/5ff2793cc6d8b3671d41a99c033b64e475e1c36f'}]}, 'public': True, 'created_at': '2018-12-14T10:58:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754229905', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868', 'pull_request_review_id': 185059651, 'id': 241716868, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcxNjg2OA==', 'diff_hunk': '@@ -0,0 +1,151 @@\\n+from argparse import (\\n+ ArgumentParser,\\n+ _SubParsersAction,\\n+)\\n+import asyncio\\n+\\n+from eth_typing import (\\n+ BlockNumber,\\n+)\\n+from lahja import (\\n+ Endpoint,\\n+)\\n+\\n+from eth.constants import (\\n+ GENESIS_BLOCK_NUMBER\\n+)\\n+\\n+from p2p.discovery import (\\n+ get_v5_topic,\\n+ DiscoveryByTopicProtocol,\\n+ PreferredNodeDiscoveryProtocol,\\n+)\\n+from p2p.kademlia import (\\n+ Address,\\n+)\\n+from p2p.protocol import (\\n+ Protocol,\\n+)\\n+from p2p.service import (\\n+ BaseService,\\n+)\\n+\\n+from trinity.config import (\\n+ TrinityBeaconConfig,\\n+ TrinityConfig,\\n+)\\n+from trinity.db.manager import (\\n+ create_db_manager\\n+)\\n+from trinity.extensibility import (\\n+ BaseIsolatedPlugin,\\n+)\\n+from trinity.protocol.bcc.proto import (\\n+ BCCProtocol,\\n+)\\n+from trinity.protocol.eth.proto import (\\n+ ETHProtocol,\\n+)\\n+from trinity.protocol.les.proto import (\\n+ LESProtocolV2,\\n+)\\n+from trinity.utils.shutdown import (\\n+ exit_with_service_and_endpoint,\\n+)\\n+from .discovery_service import (\\n+ DiscoveryService,\\n+)\\n+\\n+\\n+def get_protocol(trinity_config: TrinityConfig) -> Protocol:\\n+ # For now DiscoveryByTopicProtocol supports a single topic, so we use the latest\\n+ # version of our supported protocols. Maybe this could be more generic?\\n+ if isinstance(trinity_config, TrinityBeaconConfig):\\n+ return BCCProtocol\\n+ elif trinity_config.is_light_mode:\\n+ return LESProtocolV2\\n+ else:\\n+ return ETHProtocol\\n+\\n+\\n+def get_discv5_topic(trinity_config: TrinityConfig, protocol: Protocol):\\n+ db_manager = create_db_manager(trinity_config.database_ipc_path)\\n+ db_manager.connect()\\n+\\n+ header_db = db_manager.get_headerdb()\\n+ genesis_hash = header_db.get_canonical_block_hash(BlockNumber(GENESIS_BLOCK_NUMBER))\\n+\\n+ return get_v5_topic(protocol, genesis_hash)\\n+\\n+\\n+class DiscoveryBootstrapService(BaseService):\\n+ \"\"\"\\n+ Bootstrap discovery to provide a parent ``CancellationToken``\\n+ \"\"\"\\n+\\n+ def __init__(self, event_bus: Endpoint, trinity_config: TrinityConfig) -> None:\\n+ super().__init__()\\n+ self.event_bus = event_bus\\n+ self.trinity_config = trinity_config\\n+\\n+ async def _run(self) -> None:\\n+ external_ip = \"0.0.0.0\"', 'path': 'trinity/plugins/builtin/peer_discovery/plugin.py', 'position': 96, 'original_position': 92, 'commit_id': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'original_commit_id': '26c08f3b97fb36a428b2872da34d321c589415e8', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@carver do you prefer to keep this open until you have tried this on your upnp network? I also think we should move the UpnpService in an isolated plugin as well and then we can also put back that first external ip lookup. I don't think that service does much right now though. Apart from the initial lookup of the external ip, it is supposed to continuously provide a port mapping but I don't see how that would be used anywhere. \", 'created_at': '2018-12-14T10:58:04Z', 'updated_at': '2018-12-14T10:58:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}}, 'in_reply_to_id': 240018196}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'id': 236562386, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NTYyMzg2', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1556.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1556.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556', 'number': 1556, 'state': 'open', 'locked': False, 'title': 'Move peer discovery into an isolated plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nCurrently the peer discovery runs in the networking process among a lot of other things. Moving it into an isolated plugin should:\\r\\n\\r\\n- increase efficiency of syncing as the peer discovery probably takes a fair share of computing power\\r\\n- increase decoupling as it breaks up the networking code into smaller pieces \\r\\n- improve reusability as the new discovery can be accessed from any other interested party since it is integrated with the event bus \\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- inverted the model in the `DiscoveryService` so that it doesn't know about the `PeerPool` and instead just exposes an API for consumers to request peer candidates from\\r\\n- the API is exposed over the EventBus so that it can be requested from any other process\\r\\n- created an isolated plugin to run the new discovery service in a separate process\\r\\n- removed discovery code from the server where it previously lived\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://pixnio.com/free-images/2018/10/03/2018-10-03-04-24-27.jpg)\\r\\n\", 'created_at': '2018-12-06T15:07:31Z', 'updated_at': '2018-12-14T10:58:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1109d6a894e45d55286f76f9ab28804a1a0c0e70', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5', 'head': {'label': 'cburgdorf:christoph/feat/discovery-plugin', 'ref': 'christoph/feat/discovery-plugin', 'sha': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T10:23:32Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8304, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T10:06:03Z', 'pushed_at': '2018-12-14T10:23:34Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:58:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754198367', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137509444, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'before': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'commits': [{'sha': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0'}]}, 'public': True, 'created_at': '2018-12-14T10:52:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754172758', 'type': 'WatchEvent', 'actor': {'id': 19657992, 'login': 'smgqk', 'display_login': 'smgqk', 'gravatar_id': '', 'url': 'https://api.github.com/users/smgqk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19657992?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:47:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754164859', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137491975, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'before': '944f9f281f128c39839a324aa111dae0c1a9da41', 'commits': [{'sha': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b8b9bfdac096c4896ba665e6446aea63c5508562'}]}, 'public': True, 'created_at': '2018-12-14T10:45:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754150704', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137484484, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '944f9f281f128c39839a324aa111dae0c1a9da41', 'before': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'commits': [{'sha': '944f9f281f128c39839a324aa111dae0c1a9da41', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/944f9f281f128c39839a324aa111dae0c1a9da41'}]}, 'public': True, 'created_at': '2018-12-14T10:42:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754140773', 'type': 'WatchEvent', 'actor': {'id': 8289914, 'login': 'cuidezhu', 'display_login': 'cuidezhu', 'gravatar_id': '', 'url': 'https://api.github.com/users/cuidezhu', 'avatar_url': 'https://avatars.githubusercontent.com/u/8289914?'}, 'repo': {'id': 22730041, 'name': 'ethereum/dapp-bin', 'url': 'https://api.github.com/repos/ethereum/dapp-bin'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:41:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754137353', 'type': 'PushEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3137477529, 'size': 10, 'distinct_size': 10, 'ref': 'refs/heads/master', 'head': 'b92056768376d42b809e2a80afd3178b2dead29f', 'before': 'ec3886029393fc9927b130ba8f8671480d810391', 'commits': [{'sha': '11e327c20526ff137683d8ca3192203e3c493820', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Validate hashes in PONG packets.\\nSave sent PING hash in m_sentPings for each request and compare it with the one receive in PONG.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/11e327c20526ff137683d8ca3192203e3c493820'}, {'sha': 'fcc1d50d50d509efce359a1a4efb89d056f3d6b1', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unit tests for PONG validation', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/fcc1d50d50d509efce359a1a4efb89d056f3d6b1'}, {'sha': '75997f9ad1629d32b19d47510ebce05ac4c0c1e8', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Finding free UDP port for discovery unit tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/75997f9ad1629d32b19d47510ebce05ac4c0c1e8'}, {'sha': '68edf46686be689f74cdd9061bb99c33b6e694da', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Remove node from node table when PONG was not received from a node in c_timeToLive time', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/68edf46686be689f74cdd9061bb99c33b6e694da'}, {'sha': '29079f7c4eca7e58a9c1df5d66df5f1f2110139a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': \"Fix minor issues after review.\\nMake constexpr out of constants.\\nDon't unnecessary copy the packet in onPacketReceived.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/29079f7c4eca7e58a9c1df5d66df5f1f2110139a'}, {'sha': '22d8402fb5baea83ca99522bb9dad7b090687642', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Call dropNode by moving shared_ptr into it.\\nSome renamings to make code clearer', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/22d8402fb5baea83ca99522bb9dad7b090687642'}, {'sha': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Add static constexpr members definition to fix clang build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a'}, {'sha': '6d0c90312631fbb89fc294e121bc804111d86327', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unify eviction and ping timeout handling mechanisms', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/6d0c90312631fbb89fc294e121bc804111d86327'}, {'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Improve thread-safety of NodeTable.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/87cc8487521d0eec7272e6a5599af298107812e5'}, {'sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Merge pull request #5380 from ethereum/improve-discovery2\\n\\nValidate PONGs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/b92056768376d42b809e2a80afd3178b2dead29f'}]}, 'public': True, 'created_at': '2018-12-14T10:40:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136734', 'type': 'DeleteEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'improve-discovery2', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:40:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136488', 'type': 'PullRequestEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'closed', 'number': 5380, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'closed', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-14T10:40:19Z', 'closed_at': '2018-12-14T10:40:19Z', 'merged_at': '2018-12-14T10:40:19Z', 'merge_commit_sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'comments': 10, 'review_comments': 32, 'maintainer_can_modify': False, 'commits': 9, 'additions': 309, 'deletions': 201, 'changed_files': 5}}, 'public': True, 'created_at': '2018-12-14T10:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754132960', 'type': 'ForkEvent', 'actor': {'id': 43116881, 'login': '0xC0DE4C0FFEE', 'display_login': '0xC0DE4C0FFEE', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'avatar_url': 'https://avatars.githubusercontent.com/u/43116881?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161770481, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzA0ODE=', 'name': 'web3.js', 'full_name': '0xC0DE4C0FFEE/web3.js', 'private': False, 'owner': {'login': '0xC0DE4C0FFEE', 'id': 43116881, 'node_id': 'MDQ6VXNlcjQzMTE2ODgx', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43116881?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'html_url': 'https://github.com/0xC0DE4C0FFEE', 'followers_url': 'https://api.github.com/users/0xC0DE4C0FFEE/followers', 'following_url': 'https://api.github.com/users/0xC0DE4C0FFEE/following{/other_user}', 'gists_url': 'https://api.github.com/users/0xC0DE4C0FFEE/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/0xC0DE4C0FFEE/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/0xC0DE4C0FFEE/subscriptions', 'organizations_url': 'https://api.github.com/users/0xC0DE4C0FFEE/orgs', 'repos_url': 'https://api.github.com/users/0xC0DE4C0FFEE/repos', 'events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/events{/privacy}', 'received_events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js', 'forks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/forks', 'keys_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/events', 'assignees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/merges', 'archive_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/deployments', 'created_at': '2018-12-14T10:39:42Z', 'updated_at': '2018-12-14T10:21:11Z', 'pushed_at': '2018-12-14T10:21:19Z', 'git_url': 'git://github.com/0xC0DE4C0FFEE/web3.js.git', 'ssh_url': 'git@github.com:0xC0DE4C0FFEE/web3.js.git', 'clone_url': 'https://github.com/0xC0DE4C0FFEE/web3.js.git', 'svn_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:39:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754089991', 'type': 'ForkEvent', 'actor': {'id': 7226223, 'login': 'rodrigo-garcia-leon', 'display_login': 'rodrigo-garcia-leon', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'avatar_url': 'https://avatars.githubusercontent.com/u/7226223?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161769580, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Njk1ODA=', 'name': 'go-ethereum', 'full_name': 'rodrigo-garcia-leon/go-ethereum', 'private': False, 'owner': {'login': 'rodrigo-garcia-leon', 'id': 7226223, 'node_id': 'MDQ6VXNlcjcyMjYyMjM=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/7226223?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'html_url': 'https://github.com/rodrigo-garcia-leon', 'followers_url': 'https://api.github.com/users/rodrigo-garcia-leon/followers', 'following_url': 'https://api.github.com/users/rodrigo-garcia-leon/following{/other_user}', 'gists_url': 'https://api.github.com/users/rodrigo-garcia-leon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rodrigo-garcia-leon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rodrigo-garcia-leon/subscriptions', 'organizations_url': 'https://api.github.com/users/rodrigo-garcia-leon/orgs', 'repos_url': 'https://api.github.com/users/rodrigo-garcia-leon/repos', 'events_url': 'https://api.github.com/users/rodrigo-garcia-leon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rodrigo-garcia-leon/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum', 'forks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/deployments', 'created_at': '2018-12-14T10:31:32Z', 'updated_at': '2018-12-14T10:15:59Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/rodrigo-garcia-leon/go-ethereum.git', 'ssh_url': 'git@github.com:rodrigo-garcia-leon/go-ethereum.git', 'clone_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum.git', 'svn_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:31:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754087798', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'open', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T10:31:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T07:35:59Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 25, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 25, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:31:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754057214', 'type': 'DeleteEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'ref': 'removeUnassignedVarDefs', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:25:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754038430', 'type': 'IssueCommentEvent', 'actor': {'id': 22429695, 'login': 'codecov[bot]', 'display_login': 'codecov', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/22429695?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'id': 390235609, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'number': 5635, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:22:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447281816', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#issuecomment-447281816', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'id': 447281816, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MTgxNg==', 'user': {'login': 'codecov[bot]', 'id': 22429695, 'node_id': 'MDM6Qm90MjI0Mjk2OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/in/254?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov%5Bbot%5D', 'html_url': 'https://github.com/apps/codecov', 'followers_url': 'https://api.github.com/users/codecov%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/codecov%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/codecov%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/codecov%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov%5Bbot%5D/received_events', 'type': 'Bot', 'site_admin': False}, 'created_at': '2018-12-14T10:22:28Z', 'updated_at': '2018-12-14T10:22:28Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=h1) Report\\n> Merging [#5635](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=desc) into [develop](https://codecov.io/gh/ethereum/solidity/commit/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d?src=pr&el=desc) will **decrease** coverage by `0.02%`.\\n> The diff coverage is `98%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/solidity/pull/5635/graphs/tree.svg?width=650&token=87PGzVEwU0&height=150&src=pr)](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## develop #5635 +/- ##\\n===========================================\\n- Coverage 88.26% 88.23% -0.03% \\n===========================================\\n Files 339 339 \\n Lines 32472 32458 -14 \\n Branches 3887 3885 -2 \\n===========================================\\n- Hits 28662 28640 -22 \\n- Misses 2494 2501 +7 \\n- Partials 1316 1317 +1\\n```\\n\\n| Flag | Coverage Δ | |\\n|---|---|---|\\n| #all | `88.23% <98%> (-0.03%)` | :arrow_down: |\\n| #syntax | `28.55% <24%> (-0.01%)` | :arrow_down: |\\n'}}, 'public': True, 'created_at': '2018-12-14T10:22:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754037696', 'type': 'PushEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137424218, 'size': 46, 'distinct_size': 2, 'ref': 'refs/heads/cpp-default-ctors', 'head': '714cb78794902d611f922aa52241baec2d9e8622', 'before': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-14T10:22:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754031393', 'type': 'WatchEvent', 'actor': {'id': 16360786, 'login': 'nafidurmus', 'display_login': 'nafidurmus', 'gravatar_id': '', 'url': 'https://api.github.com/users/nafidurmus', 'avatar_url': 'https://avatars.githubusercontent.com/u/16360786?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:21:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754010490', 'type': 'IssueCommentEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'repository_url': 'https://api.github.com/repos/ethereum/web3.js', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/events', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085', 'id': 386183041, 'node_id': 'MDU6SXNzdWUzODYxODMwNDE=', 'number': 2085, 'title': 'Add TypeScript typings for all packages', 'user': {'login': 'nivida', 'id': 1699173, 'node_id': 'MDQ6VXNlcjE2OTkxNzM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1699173?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'html_url': 'https://github.com/nivida', 'followers_url': 'https://api.github.com/users/nivida/followers', 'following_url': 'https://api.github.com/users/nivida/following{/other_user}', 'gists_url': 'https://api.github.com/users/nivida/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nivida/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nivida/subscriptions', 'organizations_url': 'https://api.github.com/users/nivida/orgs', 'repos_url': 'https://api.github.com/users/nivida/repos', 'events_url': 'https://api.github.com/users/nivida/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nivida/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 561222327, 'node_id': 'MDU6TGFiZWw1NjEyMjIzMjc=', 'url': 'https://api.github.com/repos/ethereum/web3.js/labels/bounty', 'name': 'bounty', 'color': 'fafad2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-30T13:15:08Z', 'updated_at': '2018-12-14T10:17:20Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"This is a gitcoin bounty.\\r\\n\\r\\n#### ToDo:\\r\\n- [ ] Add type definitions for all modules\\r\\n- [ ] Add dtslint tests for all modules\\r\\n- [ ] Add typings to PR template check list \\r\\n- [ ] See if there's a coverage tool for dtslint tests \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments/447280447', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085#issuecomment-447280447', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'id': 447280447, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MDQ0Nw==', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T10:17:20Z', 'updated_at': '2018-12-14T10:17:20Z', 'author_association': 'COLLABORATOR', 'body': 'PR number 10 - https://github.com/ethereum/web3.js/pull/2122'}}, 'public': True, 'created_at': '2018-12-14T10:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754009907', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8f56ddb559885e05d89230f9072293d14f1945b6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:17:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754005666', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8efd262bb66706ae968a59cf51241a692bab4956', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:16:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754002765', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137406190, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'before': '3796751efcc3fab71799450f1bff370d081438ec', 'commits': [{'sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'author': {'email': '31876119+qdgogogo@users.noreply.github.com', 'name': 'qd-ethan'}, 'message': 'Comment error (#18303)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/9940d93a43bab1f060e8fbfadff510c3298f2726'}]}, 'public': True, 'created_at': '2018-12-14T10:15:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754001592', 'type': 'PullRequestEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'opened', 'number': 2122, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122', 'id': 238671709, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjcxNzA5', 'html_url': 'https://github.com/ethereum/web3.js/pull/2122', 'diff_url': 'https://github.com/ethereum/web3.js/pull/2122.diff', 'patch_url': 'https://github.com/ethereum/web3.js/pull/2122.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122', 'number': 2122, 'state': 'open', 'locked': False, 'title': 'Web3 eth', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'body': 'web3-eth types 👍 ', 'created_at': '2018-12-14T10:15:45Z', 'updated_at': '2018-12-14T10:15:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d', 'head': {'label': 'joshstevens19:web3-eth', 'ref': 'web3-eth', 'sha': 'd1e648444943a877441a69a535ec60dcf3d04e7d', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 156678793, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTY2Nzg3OTM=', 'name': 'web3.js', 'full_name': 'joshstevens19/web3.js', 'private': False, 'owner': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/joshstevens19/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/joshstevens19/web3.js', 'forks_url': 'https://api.github.com/repos/joshstevens19/web3.js/forks', 'keys_url': 'https://api.github.com/repos/joshstevens19/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/joshstevens19/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/joshstevens19/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/joshstevens19/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/joshstevens19/web3.js/events', 'assignees_url': 'https://api.github.com/repos/joshstevens19/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/joshstevens19/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/joshstevens19/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/joshstevens19/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/joshstevens19/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/joshstevens19/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/joshstevens19/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/joshstevens19/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/joshstevens19/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/joshstevens19/web3.js/merges', 'archive_url': 'https://api.github.com/repos/joshstevens19/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/joshstevens19/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/joshstevens19/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/joshstevens19/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/joshstevens19/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/joshstevens19/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/joshstevens19/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/joshstevens19/web3.js/deployments', 'created_at': '2018-11-08T09:02:56Z', 'updated_at': '2018-11-17T23:52:35Z', 'pushed_at': '2018-12-14T10:15:02Z', 'git_url': 'git://github.com/joshstevens19/web3.js.git', 'ssh_url': 'git@github.com:joshstevens19/web3.js.git', 'clone_url': 'https://github.com/joshstevens19/web3.js.git', 'svn_url': 'https://github.com/joshstevens19/web3.js', 'homepage': '', 'size': 36736, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'JavaScript', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:ethereumProvider', 'ref': 'ethereumProvider', 'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 24655114, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNDY1NTExNA==', 'name': 'web3.js', 'full_name': 'ethereum/web3.js', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.js', 'description': 'Ethereum JavaScript API', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.js', 'forks_url': 'https://api.github.com/repos/ethereum/web3.js/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.js/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.js/deployments', 'created_at': '2014-09-30T20:50:37Z', 'updated_at': '2018-12-14T09:59:26Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/ethereum/web3.js.git', 'ssh_url': 'git@github.com:ethereum/web3.js.git', 'clone_url': 'https://github.com/ethereum/web3.js.git', 'svn_url': 'https://github.com/ethereum/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 7317, 'watchers_count': 7317, 'language': 'JavaScript', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 2181, 'mirror_url': None, 'archived': False, 'open_issues_count': 368, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 2181, 'open_issues': 368, 'watchers': 7317, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122'}, 'html': {'href': 'https://github.com/ethereum/web3.js/pull/2122'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 724, 'deletions': 9, 'changed_files': 7}}, 'public': True, 'created_at': '2018-12-14T10:15:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754000431', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18303, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303', 'id': 238355051, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU1MDUx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18303', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18303.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18303.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303', 'number': 18303, 'state': 'closed', 'locked': False, 'title': 'core/tx_cacher: Small comment error', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This is just a comment word misspelled', 'created_at': '2018-12-13T11:27:18Z', 'updated_at': '2018-12-14T10:15:32Z', 'closed_at': '2018-12-14T10:15:32Z', 'merged_at': '2018-12-14T10:15:32Z', 'merge_commit_sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b', 'head': {'label': 'qdgogogo:master', 'ref': 'master', 'sha': '60a98b030d1bd2744c73f00830966cf2307d646b', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153065737, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTMwNjU3Mzc=', 'name': 'go-ethereum', 'full_name': 'qdgogogo/go-ethereum', 'private': False, 'owner': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/qdgogogo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/qdgogogo/go-ethereum', 'forks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/deployments', 'created_at': '2018-10-15T06:48:24Z', 'updated_at': '2018-12-13T11:22:28Z', 'pushed_at': '2018-12-13T11:22:21Z', 'git_url': 'git://github.com/qdgogogo/go-ethereum.git', 'ssh_url': 'git@github.com:qdgogogo/go-ethereum.git', 'clone_url': 'https://github.com/qdgogogo/go-ethereum.git', 'svn_url': 'https://github.com/qdgogogo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106813, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 853, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 853, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18303'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:15:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753992098', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18294, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294', 'id': 238272662, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjcyNjYy', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18294', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18294.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18294.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294', 'number': 18294, 'state': 'closed', 'locked': False, 'title': 'Update interfaces.go', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T05:52:56Z', 'updated_at': '2018-12-14T10:14:00Z', 'closed_at': '2018-12-14T10:14:00Z', 'merged_at': None, 'merge_commit_sha': '68fe4ea495ce2d9048821926bbecfe07c824fd05', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079', 'head': {'label': 'shangsony:patch-1', 'ref': 'patch-1', 'sha': '5daec733cc12f5be4e953f64bfdb788bfe731079', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161590474, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1OTA0NzQ=', 'name': 'go-ethereum', 'full_name': 'shangsony/go-ethereum', 'private': False, 'owner': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/shangsony/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/shangsony/go-ethereum', 'forks_url': 'https://api.github.com/repos/shangsony/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/shangsony/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/shangsony/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/shangsony/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/shangsony/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/shangsony/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/shangsony/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/shangsony/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/shangsony/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/shangsony/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/shangsony/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/shangsony/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/shangsony/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/shangsony/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/shangsony/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/shangsony/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/shangsony/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/shangsony/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/shangsony/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/shangsony/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/shangsony/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/shangsony/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/shangsony/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/shangsony/go-ethereum/deployments', 'created_at': '2018-12-13T05:51:54Z', 'updated_at': '2018-12-13T05:52:05Z', 'pushed_at': '2018-12-13T05:52:44Z', 'git_url': 'git://github.com/shangsony/go-ethereum.git', 'ssh_url': 'git@github.com:shangsony/go-ethereum.git', 'clone_url': 'https://github.com/shangsony/go-ethereum.git', 'svn_url': 'https://github.com/shangsony/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107603, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4e6f53ac3360c4e90fdb419e7073e4316b2a49f7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:08:12Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 854, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 854, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18294'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 0, 'changed_files': 0}}, 'public': True, 'created_at': '2018-12-14T10:14:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753984053', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523', 'pull_request_review_id': 185042776, 'id': 241703523, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMzUyMw==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': 24, 'original_position': 24, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@ekpyron Actually it does make sense the way I wrote it, here, because it eliminates the need of constructors as long as you don't need custom logic in the constructor bodies.\", 'created_at': '2018-12-14T10:12:32Z', 'updated_at': '2018-12-14T10:12:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:12:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:12:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963192', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137385470, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '3796751efcc3fab71799450f1bff370d081438ec', 'before': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'commits': [{'sha': '3796751efcc3fab71799450f1bff370d081438ec', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'rpc: add application/json-rpc as accepted content type, fixes #18293 (#18310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/3796751efcc3fab71799450f1bff370d081438ec'}]}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963172', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18293', 'id': 390408146, 'node_id': 'MDU6SXNzdWUzOTA0MDgxNDY=', 'number': 18293, 'title': 'geth should accept application/json-rpc as Content-Type', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-12T21:04:37Z', 'updated_at': '2018-12-14T10:08:43Z', 'closed_at': '2018-12-14T10:08:43Z', 'author_association': 'MEMBER', 'body': 'currently when using the content-type `application/json-rpc`\\r\\nthen the geth rpc server answers with 415 (Unsupported Media Type)\\r\\n\\r\\nBut this SHOULD be the Content-Type for json rpc as in: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963052', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358', 'pull_request_review_id': 185041327, 'id': 241702358, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMjM1OA==', 'diff_hunk': '@@ -304,7 +304,7 @@ KnownState::StoreOperation KnownState::storeInStorage(\\n \\n \\tAssemblyItem item(Instruction::SSTORE, _location);\\n \\tId id = m_expressionClasses->find(item, {_slot, _value}, true, m_sequenceNumber);\\n-\\tStoreOperation operation(StoreOperation::Storage, _slot, m_sequenceNumber, id);\\n+\\tStoreOperation operation {StoreOperation::Storage, _slot, m_sequenceNumber, id};', 'path': 'libevmasm/KnownState.cpp', 'position': 5, 'original_position': 5, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually, I personally prefer spacing here, for readability. Also goes in line with `inline class member initialization`, such as `int m_value {1234};`. it would just look unreadable in not having that space there (but that's my opinion). What do you think? Maybe we should globally revisit our coding style guidelines in general (as a team). :)\", 'created_at': '2018-12-14T10:08:42Z', 'updated_at': '2018-12-14T10:08:42Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241026062}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:08:42Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:08:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753959914', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'closed', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T10:08:11Z', 'closed_at': '2018-12-14T10:08:11Z', 'merged_at': '2018-12-14T10:08:11Z', 'merge_commit_sha': '3796751efcc3fab71799450f1bff370d081438ec', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:28:27Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137982, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:05:33Z', 'pushed_at': '2018-12-14T10:08:11Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 856, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 856, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 20, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:08:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948406', 'type': 'PushEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137378095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'before': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'commits': [{'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Teach TrinityConfig to handle sub configs\\n\\nThis commits adds sub config handling to TrinityConfig.\\nThis is needed to support different kinds of nodes\\nthat are loosely related yet different enough to\\ndemand different configurations.\\n\\nThis allows us to handle shared configs on a base\\nlevel as well as mixing in different sub configs\\ndepending on the use case.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771'}]}, 'public': True, 'created_at': '2018-12-14T10:06:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948149', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1566, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'closed', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T10:05:59Z', 'closed_at': '2018-12-14T10:05:59Z', 'merged_at': '2018-12-14T10:05:59Z', 'merge_commit_sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T10:05:59Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 28, 'maintainer_can_modify': False, 'commits': 1, 'additions': 121, 'deletions': 21, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-14T10:06:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753945736', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:05:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753940765', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:04:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753915388', 'type': 'WatchEvent', 'actor': {'id': 8391134, 'login': 'lishenglincn', 'display_login': 'lishenglincn', 'gravatar_id': '', 'url': 'https://api.github.com/users/lishenglincn', 'avatar_url': 'https://avatars.githubusercontent.com/u/8391134?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:00:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753911225', 'type': 'WatchEvent', 'actor': {'id': 10215844, 'login': 'lag945', 'display_login': 'lag945', 'gravatar_id': '', 'url': 'https://api.github.com/users/lag945', 'avatar_url': 'https://avatars.githubusercontent.com/u/10215844?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:59:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753900409', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975', 'pull_request_review_id': 185037009, 'id': 241698975, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5ODk3NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': None, 'original_position': 138, 'commit_id': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I will move this into another PR so that we can discuss this separately. I'd also be interested to hear what @carver thinks about it. Something in me really likes to treat the beacon node as a separate program here. E.g what about the `NodeKey` would the regular trinity node share that with the beacon node? It seems cleaner to me to keep the root directories of each of them clearly separated..also in terms of logs etc.\", 'created_at': '2018-12-14T09:57:31Z', 'updated_at': '2018-12-14T09:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7f8da60b68e0e2ede47ffa9a56b550564e23f09d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:53:08Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753860032', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762', 'pull_request_review_id': 185034184, 'id': 241696762, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5Njc2Mg==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Agree with the string like checks. But I'd rather keep the `Iterable` as `Sequence` would exclude generators which might be nice to have in some cases.\", 'created_at': '2018-12-14T09:50:20Z', 'updated_at': '2018-12-14T09:50:20Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}, 'in_reply_to_id': 241546881}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-14T09:50:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:50:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753811671', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:41:30Z', 'closed_at': '2018-12-14T09:41:30Z', 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:41:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753807041', 'type': 'IssueCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:40:39Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447270575', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507#issuecomment-447270575', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'id': 447270575, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI3MDU3NQ==', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:40:39Z', 'updated_at': '2018-12-14T09:40:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"Sorry for not answering until now, I didn't notice your response. \\r\\nSo, the `rpcvhosts` is not the correct protection mechanism against an attacker which can create fully custom arbitrary requests. It is solely meant to prevent attacks originating from your own browser, where the attacker (a webpage) has certain restrictions about what types of requests can be made. \\r\\n\\r\\nIf an attacker has your ip, and you are allowing network traffic over the port, then it's a bit futile to rely on rpcvhosts as a protection mechanism: the only thing preventing the attacker from interacting with your node is that he doesn't know the correct name to use. \\r\\n\\r\\nHowever, if you have a public DNS, then a simple RDNS lookup would yield it, and the attacker could also try to bruteforce names. I'm not even sure that we don't leak it ourselves in certain circumstance, e.g. if we supply origin headers in the responses and the same origin is used as the vhost. \\r\\n\\r\\nSo it's kind of solving the wrong problem and giving people a false sense of security. A better approach is to simply not allow internet access ot the port(s). \"}}, 'public': True, 'created_at': '2018-12-14T09:40:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753800921', 'type': 'WatchEvent', 'actor': {'id': 26370659, 'login': 'shimakaze-git', 'display_login': 'shimakaze-git', 'gravatar_id': '', 'url': 'https://api.github.com/users/shimakaze-git', 'avatar_url': 'https://avatars.githubusercontent.com/u/26370659?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753798202', 'type': 'WatchEvent', 'actor': {'id': 77268, 'login': 'jolestar', 'display_login': 'jolestar', 'gravatar_id': '', 'url': 'https://api.github.com/users/jolestar', 'avatar_url': 'https://avatars.githubusercontent.com/u/77268?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753785836', 'type': 'IssueCommentEvent', 'actor': {'id': 22738317, 'login': 'mratsim', 'display_login': 'mratsim', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'avatar_url': 'https://avatars.githubusercontent.com/u/22738317?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-14T09:36:43Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447269514', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447269514', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447269514, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2OTUxNA==', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:36:43Z', 'updated_at': '2018-12-14T09:36:43Z', 'author_association': 'CONTRIBUTOR', 'body': '`uint384` or `hash48` would be better'}}, 'public': True, 'created_at': '2018-12-14T09:36:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753771491', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991', 'pull_request_review_id': 185027974, 'id': 241691991, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5MTk5MQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">A lot of my reasoning is centered around how the Config classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nAh, I missed that goal to spread out the `args` into individual parameters for better testing. That sounds reasonable.\\r\\n\\r\\nI would however, still favor to at least provide an `__init__(trinity_config: TrinityConfig)__` and have child classes overwrite and extend that. Not having the `trinity_config` access standardized just doesn't sit so well with me. \", 'created_at': '2018-12-14T09:34:04Z', 'updated_at': '2018-12-14T09:34:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:34:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9b90b009eb4cef849811f2a599c69cecf6d09885', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:34:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753766430', 'type': 'WatchEvent', 'actor': {'id': 15799431, 'login': 'xiaoch05', 'display_login': 'xiaoch05', 'gravatar_id': '', 'url': 'https://api.github.com/users/xiaoch05', 'avatar_url': 'https://avatars.githubusercontent.com/u/15799431?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:33:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753763965', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/146', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/146/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/146/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/146/events', 'html_url': 'https://github.com/ethereum/hive/issues/146', 'id': 383763681, 'node_id': 'MDU6SXNzdWUzODM3NjM2ODE=', 'number': 146, 'title': 'ethereum/consensus simulator failure', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-11-23T10:05:36Z', 'updated_at': '2018-12-14T09:32:40Z', 'closed_at': '2018-12-14T09:32:40Z', 'author_association': 'COLLABORATOR', 'body': 'These pops up:\\r\\n\\r\\n```\\r\\nINFO[11-23|10:04:13] message from simulator simulator=ethereum/consensus log=\"Failed to kill node Node[75de696d]@172.18.0.10: Traceback (most recent call last):\\\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\\\n self.hive.killNode(node)\\\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\\\n\"\\r\\n```\\r\\n\\r\\n```\\r\\nFailed to kill node Node[75de696d]@172.18.0.10: \\r\\nTraceback (most recent call last):\\r\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\r\\n self.hive.killNode(node)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\r\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\r\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\r\\n```\\r\\nSo the framework is giving us a `404` on deletion'}}, 'public': True, 'created_at': '2018-12-14T09:32:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753760058', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 93610217, 'name': 'ethereum/evmlab', 'url': 'https://api.github.com/repos/ethereum/evmlab'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/evmlab/issues/102', 'repository_url': 'https://api.github.com/repos/ethereum/evmlab', 'labels_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/comments', 'events_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/events', 'html_url': 'https://github.com/ethereum/evmlab/issues/102', 'id': 371486037, 'node_id': 'MDU6SXNzdWUzNzE0ODYwMzc=', 'number': 102, 'title': 'Fuzzer engine, spurious failures', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-10-18T11:32:29Z', 'updated_at': '2018-12-14T09:31:54Z', 'closed_at': '2018-12-14T09:31:54Z', 'author_association': 'COLLABORATOR', 'body': 'Sometimes, this happens:\\r\\n```\\r\\n2018-10-18 09:33:58,001 - INFO - Starting processes for [\\'geth\\', \\'parity\\'] on test DEFAULT-Wed_09_22_38-11214-573185\\r\\n2018-10-18 09:33:58,179 - INFO - All procs finished for test DEFAULT-Wed_09_22_38-11214-573183\\r\\n2018-10-18 09:33:58,232 - INFO - Processed 3228 steps for geth on test DEFAULT-Wed_09_22_38-11214-573183, pTime:53.07 ms\\r\\nTraceback (most recent call last):\\r\\n File \"utilities/fuzzerweb.py\", line 59, in \\r\\n main()\\r\\n File \"utilities/fuzzerweb.py\", line 55, in main\\r\\n f.startFuzzing()\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 593, in startFuzzing\\r\\n self.postprocess_test(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 524, in postprocess_test\\r\\n data = end_processes(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 424, in end_processes\\r\\n with open(test.tempTraceLocation(client_name)) as output:\\r\\nFileNotFoundError: [Errno 2] No such file or directory: \\'/datadrive/evmlabtemp/logs/DEFAULT-Wed_09_22_38-11214-573183-parity.trace.log\\'\\r\\n```\\r\\nI ran the testcase in question manually inside the parity docker image, and it worked fine. But for some reason, the file didn\\'t exist. Disk was not full. It happened after `573182` testcases, so it doesn\\'t happen often. '}}, 'public': True, 'created_at': '2018-12-14T09:31:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753759531', 'type': 'IssuesEvent', 'actor': {'id': 5955411, 'login': 'cheatfate', 'display_login': 'cheatfate', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'avatar_url': 'https://avatars.githubusercontent.com/u/5955411?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/320', 'id': 391032309, 'node_id': 'MDU6SXNzdWUzOTEwMzIzMDk=', 'number': 320, 'title': 'BLS signature verification requires double hashing message.', 'user': {'login': 'cheatfate', 'id': 5955411, 'node_id': 'MDQ6VXNlcjU5NTU0MTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5955411?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'html_url': 'https://github.com/cheatfate', 'followers_url': 'https://api.github.com/users/cheatfate/followers', 'following_url': 'https://api.github.com/users/cheatfate/following{/other_user}', 'gists_url': 'https://api.github.com/users/cheatfate/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cheatfate/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cheatfate/subscriptions', 'organizations_url': 'https://api.github.com/users/cheatfate/orgs', 'repos_url': 'https://api.github.com/users/cheatfate/repos', 'events_url': 'https://api.github.com/users/cheatfate/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cheatfate/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T09:31:47Z', 'updated_at': '2018-12-14T09:31:47Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"BLS signature verification requires double hashing message.\\r\\n\\r\\nIn current version of [BLS signature verification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/bls_verify.md#hash_to_g2) present such lines:\\r\\n\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + message), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + message), 'big')\\r\\n```\\r\\n\\r\\nIn such case `message` hashing performs 2x times, this can be ineffective, because\\r\\nmessage can be big in size or data gathering process for `message` can be cpu intensive task.\\r\\n\\r\\nThis is pseudo-code for current hashing method:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(message)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(message)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see only `domain` field hashing can be cached and optimized, and `hash(message)` must be performed twice for both `xre` and `xi`.\\r\\n\\r\\nIf you change current hashing method to:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x01'), 'big')\\r\\n x_im = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x02'), 'big')\\r\\n```\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see not only `domain` argument cached, but `message` too.\\r\\nSo `hash(message)` operation performed only once.\\r\\n\\r\\nBut if you dont like scheme above, here is one more:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + hash(message)), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + hash(message)), 'big')\\r\\n```\\r\\n\\r\\nIn such way you can perform `hash(message)` only one time too.\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nvar msgdigest = ctx1.finish()\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(msgdigest)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(msgdigest)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753758636', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/129', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/129/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/129/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/129/events', 'html_url': 'https://github.com/ethereum/hive/issues/129', 'id': 367139971, 'node_id': 'MDU6SXNzdWUzNjcxMzk5NzE=', 'number': 129, 'title': 'Multistage docker build does not reload base image', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-10-05T09:55:13Z', 'updated_at': '2018-12-14T09:31:38Z', 'closed_at': '2018-12-14T09:31:38Z', 'author_association': 'COLLABORATOR', 'body': \"aleth seems to only ever run on `40566e5` : http://hivetests.ethstats.net/. Seems there's some problem with caching in hive, where it doesn't refetch the base image when building\\r\\n\\r\\nhttps://github.com/karalabe/hive/blob/master/clients/aleth:nightly/Dockerfile#L10\\r\\n\\r\\ncc @chfast \"}}, 'public': True, 'created_at': '2018-12-14T09:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753757292', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18181', 'id': 384269858, 'node_id': 'MDU6SXNzdWUzODQyNjk4NTg=', 'number': 18181, 'title': 'Performance: disable EvictNS', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 72233652, 'node_id': 'MDU6TGFiZWw3MjIzMzY1Mg==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-11-26T10:39:56Z', 'updated_at': '2018-12-14T09:31:22Z', 'closed_at': '2018-12-14T09:31:22Z', 'author_association': 'CONTRIBUTOR', 'body': 'See https://github.com/syndtr/goleveldb/issues/245 \\r\\n\\r\\nProfiling done while importing blocks during a full sync, somewhere around the 4M -range. \\r\\n![profile002](https://user-images.githubusercontent.com/142290/49008933-6d2b0580-f16f-11e8-8869-a15f6c1788c2.gif)\\r\\n\\r\\nEvictNS responsible for `10.28s` , which is more than double the time spent on `keccakF1600`'}}, 'public': True, 'created_at': '2018-12-14T09:31:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753557', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753536', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447267963', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583#issuecomment-447267963', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'id': 447267963, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Nzk2Mw==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:30:39Z', 'updated_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues. My best bet right now is that there may be something in our `networking` process that can lead to a stalled event loop in general (which could explain the described symptoms) but there's no strong evidence that this would be caused by the `EventBus`. That doesn't mean it isn't, just that I couldn't find strong evidence for it.\\r\\n\\r\\nI will close this for now.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753739327', 'type': 'WatchEvent', 'actor': {'id': 45157707, 'login': 'Dreampursers', 'display_login': 'Dreampursers', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dreampursers', 'avatar_url': 'https://avatars.githubusercontent.com/u/45157707?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:28:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734627', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1584, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'id': 238000103, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'number': 1584, 'state': 'closed', 'locked': False, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 ', 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:18Z', 'closed_at': '2018-12-14T09:27:17Z', 'merged_at': None, 'merge_commit_sha': '9c9a46da881c6c3ae87017dd59eb90b33736c1ba', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'head': {'label': 'cburgdorf:christoph/debug/debug-lahja-stability', 'ref': 'christoph/debug/debug-lahja-stability', 'sha': 'c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '5055f5be75c0a784158df4f35bd2990afddb49c9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1584'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 142, 'deletions': 0, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734593', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'id': 390179066, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'number': 1584, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:17Z', 'closed_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch'}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447266996', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584#issuecomment-447266996', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'id': 447266996, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Njk5Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:27:17Z', 'updated_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues stated in #1583. \"}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753689564', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240', 'pull_request_review_id': 185021965, 'id': 241687240, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY4NzI0MA==', 'diff_hunk': '@@ -36,11 +36,14 @@ import (\\n )\\n \\n const (\\n-\\tcontentType = \"application/json\"\\n \\tmaxRequestContentLength = 1024 * 512\\n )\\n \\n-var nullAddr, _ = net.ResolveTCPAddr(\"tcp\", \"127.0.0.1:0\")\\n+var (\\n+\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\"}', 'path': 'rpc/http.go', 'position': 10, 'original_position': 10, 'commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'original_commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\", \"application/jsonrequest\"}\\r\\n```\\r\\n\\r\\nlet\\'s directly add application/jsonrequest so we cover the full set given here: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header', 'created_at': '2018-12-14T09:18:48Z', 'updated_at': '2018-12-14T09:18:48Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:18:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e33ed2b0216ada4345f15254a29395f9ebbed2a6', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:18:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753659310', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137228247, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'before': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'commits': [{'sha': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/08ecb90922c87a21d22aad7396958e718e04d2a9'}]}, 'public': True, 'created_at': '2018-12-14T09:12:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753648846', 'type': 'ForkEvent', 'actor': {'id': 39949991, 'login': 'Drunpi', 'display_login': 'Drunpi', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'avatar_url': 'https://avatars.githubusercontent.com/u/39949991?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161759923, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTk5MjM=', 'name': 'go-ethereum', 'full_name': 'Drunpi/go-ethereum', 'private': False, 'owner': {'login': 'Drunpi', 'id': 39949991, 'node_id': 'MDQ6VXNlcjM5OTQ5OTkx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/39949991?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'html_url': 'https://github.com/Drunpi', 'followers_url': 'https://api.github.com/users/Drunpi/followers', 'following_url': 'https://api.github.com/users/Drunpi/following{/other_user}', 'gists_url': 'https://api.github.com/users/Drunpi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Drunpi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Drunpi/subscriptions', 'organizations_url': 'https://api.github.com/users/Drunpi/orgs', 'repos_url': 'https://api.github.com/users/Drunpi/repos', 'events_url': 'https://api.github.com/users/Drunpi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Drunpi/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Drunpi/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Drunpi/go-ethereum', 'forks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Drunpi/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Drunpi/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Drunpi/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Drunpi/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Drunpi/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Drunpi/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Drunpi/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Drunpi/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Drunpi/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Drunpi/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Drunpi/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Drunpi/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Drunpi/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Drunpi/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Drunpi/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/deployments', 'created_at': '2018-12-14T09:10:43Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/Drunpi/go-ethereum.git', 'ssh_url': 'git@github.com:Drunpi/go-ethereum.git', 'clone_url': 'https://github.com/Drunpi/go-ethereum.git', 'svn_url': 'https://github.com/Drunpi/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:10:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753632721', 'type': 'WatchEvent', 'actor': {'id': 20773978, 'login': 'jinhokong', 'display_login': 'jinhokong', 'gravatar_id': '', 'url': 'https://api.github.com/users/jinhokong', 'avatar_url': 'https://avatars.githubusercontent.com/u/20773978?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:07:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753621503', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:05:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7711, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7711, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 19, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T09:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753608354', 'type': 'ForkEvent', 'actor': {'id': 9623159, 'login': 'aj07', 'display_login': 'aj07', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'avatar_url': 'https://avatars.githubusercontent.com/u/9623159?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161758859, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTg4NTk=', 'name': 'web3.js', 'full_name': 'aj07/web3.js', 'private': False, 'owner': {'login': 'aj07', 'id': 9623159, 'node_id': 'MDQ6VXNlcjk2MjMxNTk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9623159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'html_url': 'https://github.com/aj07', 'followers_url': 'https://api.github.com/users/aj07/followers', 'following_url': 'https://api.github.com/users/aj07/following{/other_user}', 'gists_url': 'https://api.github.com/users/aj07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/aj07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/aj07/subscriptions', 'organizations_url': 'https://api.github.com/users/aj07/orgs', 'repos_url': 'https://api.github.com/users/aj07/repos', 'events_url': 'https://api.github.com/users/aj07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/aj07/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/aj07/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/aj07/web3.js', 'forks_url': 'https://api.github.com/repos/aj07/web3.js/forks', 'keys_url': 'https://api.github.com/repos/aj07/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/aj07/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/aj07/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/aj07/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/aj07/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/aj07/web3.js/events', 'assignees_url': 'https://api.github.com/repos/aj07/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/aj07/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/aj07/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/aj07/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/aj07/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/aj07/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/aj07/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/aj07/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/aj07/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/aj07/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/aj07/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/aj07/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/aj07/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/aj07/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/aj07/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/aj07/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/aj07/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/aj07/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/aj07/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/aj07/web3.js/merges', 'archive_url': 'https://api.github.com/repos/aj07/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/aj07/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/aj07/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/aj07/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/aj07/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/aj07/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/aj07/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/aj07/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/aj07/web3.js/deployments', 'created_at': '2018-12-14T09:02:35Z', 'updated_at': '2018-12-14T07:49:34Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/aj07/web3.js.git', 'ssh_url': 'git@github.com:aj07/web3.js.git', 'clone_url': 'https://github.com/aj07/web3.js.git', 'svn_url': 'https://github.com/aj07/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:02:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753598685', 'type': 'PullRequestEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1163, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163', 'id': 238651451, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUxNDUx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1163', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1163.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1163.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163', 'number': 1163, 'state': 'open', 'locked': False, 'title': 'WIP Remove 3.5 support and update eth-abiV2', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWIP\\r\\n\\r\\nRelated to Issue #\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->]()\\r\\n', 'created_at': '2018-12-14T09:00:38Z', 'updated_at': '2018-12-14T09:00:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1', 'head': {'label': 'njgheorghita:v5-update', 'ref': 'v5-update', 'sha': '4344c565cee977b0ce61b19195b22adb84da53f1', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 89746051, 'node_id': 'MDEwOlJlcG9zaXRvcnk4OTc0NjA1MQ==', 'name': 'web3.py', 'full_name': 'njgheorghita/web3.py', 'private': False, 'owner': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/njgheorghita/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/njgheorghita/web3.py', 'forks_url': 'https://api.github.com/repos/njgheorghita/web3.py/forks', 'keys_url': 'https://api.github.com/repos/njgheorghita/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/njgheorghita/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/njgheorghita/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/njgheorghita/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/njgheorghita/web3.py/events', 'assignees_url': 'https://api.github.com/repos/njgheorghita/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/njgheorghita/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/njgheorghita/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/njgheorghita/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/njgheorghita/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/njgheorghita/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/njgheorghita/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/njgheorghita/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/njgheorghita/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/njgheorghita/web3.py/merges', 'archive_url': 'https://api.github.com/repos/njgheorghita/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/njgheorghita/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/njgheorghita/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/njgheorghita/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/njgheorghita/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/njgheorghita/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/njgheorghita/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/njgheorghita/web3.py/deployments', 'created_at': '2017-04-28T21:27:28Z', 'updated_at': '2018-12-14T08:50:09Z', 'pushed_at': '2018-12-14T08:59:51Z', 'git_url': 'git://github.com/njgheorghita/web3.py.git', 'ssh_url': 'git@github.com:njgheorghita/web3.py.git', 'clone_url': 'https://github.com/njgheorghita/web3.py.git', 'svn_url': 'https://github.com/njgheorghita/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-14T05:20:57Z', 'pushed_at': '2018-12-14T08:53:26Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3088, 'stargazers_count': 1218, 'watchers_count': 1218, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1218, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1163'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 9, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:00:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578638', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137185723, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'before': '751c856953060d68ae7be2c62306d11935e32345', 'commits': [{'sha': '6fa7b83832c7c40221b756814d372b828cdb96ea', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Add `get_fork_version` and `get_domain`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/6fa7b83832c7c40221b756814d372b828cdb96ea'}, {'sha': 'dfdde18bb7953a787e479a188d429f3a42ae00b6', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Put eth/beacon/enums/ objects in one file', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dfdde18bb7953a787e479a188d429f3a42ae00b6'}, {'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'author': {'email': 'chihchengliang@gmail.com', 'name': 'Chih Cheng Liang'}, 'message': 'Apply suggestions from code review: update enums\\n\\nCo-Authored-By: hwwhww ', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8bfef33798e69f214473c941d1263cb4075ea7a2'}, {'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #1591 from hwwhww/get_fork\\n\\nAdd `get_fork_version` and `get_domain` helpers', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dae7910b84c6c5f3d5ab0594ddb550f92a4fb072'}]}, 'public': True, 'created_at': '2018-12-14T08:56:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578392', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1591, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'closed', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:56:31Z', 'closed_at': '2018-12-14T08:56:31Z', 'merged_at': '2018-12-14T08:56:31Z', 'merge_commit_sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T08:44:44Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T08:56:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 9, 'maintainer_can_modify': False, 'commits': 3, 'additions': 123, 'deletions': 39, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-14T08:56:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753563402', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137177774, 'size': 52, 'distinct_size': 21, 'ref': 'refs/heads/pm-api', 'head': '62aa0131c4506f40795f1e5102bdf405740f1054', 'before': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'commits': [{'sha': 'e013febcef6fd538ed2620646317feea66abb07e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Add default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e013febcef6fd538ed2620646317feea66abb07e'}, {'sha': '4c52f0d592571077ad2573cefe0587a336685d44', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1121 from carver/trinity-auto-ipc\\n\\nAdd default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4c52f0d592571077ad2573cefe0587a336685d44'}, {'sha': '94b8b40d6df51730243a713c14cf174bcb14bb32', 'author': {'email': 'michael.razoumovitch@gmail.com', 'name': 'Michael Razoumovitch'}, 'message': \"removed _function_names and _event_names\\n\\nContractEvents and ContractFunctions have not used lists _event_names / _function_names.\\r\\nEach time a contract is created through the factory method, the _event_names list and the _function_names list are extended.\\r\\nCreating many contract's results in high memory usage.\", 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/94b8b40d6df51730243a713c14cf174bcb14bb32'}, {'sha': 'acfd3d548336d3560d746fbf96156c3fd98d4dda', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Write docs for construct_sign_and_send_raw_middleware', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/acfd3d548336d3560d746fbf96156c3fd98d4dda'}, {'sha': 'feb67fee5e7ed5e8aeaa91118176698bfb479d22', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Merge pull request #1137 from njgheorghita/signing-documentation\\n\\nWrite docs for `construct_sign_and_send_raw_middleware`', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/feb67fee5e7ed5e8aeaa91118176698bfb479d22'}, {'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1135 from MichaelRazum/master\\n\\nremoved _function_names and _event_names', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8'}, {'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': '101b5712fc993ed8104d3510ac731067ceda8c5f', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add a listStorageKeys RPC (parity-specific one)', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/101b5712fc993ed8104d3510ac731067ceda8c5f'}, {'sha': 'ea439e1481322c1014515c6213761d0ac413edad', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add tests for list_storage_keys when --fat-db is off.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ea439e1481322c1014515c6213761d0ac413edad'}, {'sha': 'a362bb8f61af05ea4533f7ea53758b7e6c99df6d', 'author': {'email': 'freeatnet@freeatnet.com', 'name': 'Arseniy Ivanov'}, 'message': 'Bump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/a362bb8f61af05ea4533f7ea53758b7e6c99df6d'}, {'sha': '5f8198cc52ed4b4d980297d61a2d96d4b8d6d816', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Correctly convert the address for the listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/5f8198cc52ed4b4d980297d61a2d96d4b8d6d816'}, {'sha': 'e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1145 from palkeo/master\\n\\nAdd parity-specific listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3'}, {'sha': '1fea824b089ac186824e1c6ded2127e7fa64333f', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1146 from forkdelta/websockets-7.0.0\\n\\nBump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/1fea824b089ac186824e1c6ded2127e7fa64333f'}, {'sha': 'ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix doc typos', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5'}, {'sha': '0eb804188a51415f2b985d31fd2db526da46efd2', 'author': {'email': 'fubuloubu@gmail.com', 'name': 'Bryant Eisenbach'}, 'message': 'Added other network options', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0eb804188a51415f2b985d31fd2db526da46efd2'}, {'sha': '31310f91f284f84ab1f9835c8d7133b16dea04dd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix unicorn contract doctest failure', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/31310f91f284f84ab1f9835c8d7133b16dea04dd'}, {'sha': '3b93236994cd5643b144b77d5b536d3e2e95023d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1150 from fubuloubu/moar-infura\\n\\nMoar infura', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b93236994cd5643b144b77d5b536d3e2e95023d'}]}, 'public': True, 'created_at': '2018-12-14T08:53:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753543621', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137167346, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/pm-api', 'head': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'before': '0491779fe5fb7d9fd98b9c02943794b7acf69b63', 'commits': [{'sha': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Minor adjustments from pr comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20'}]}, 'public': True, 'created_at': '2018-12-14T08:49:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753536725', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137163795, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'before': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'commits': [{'sha': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'fix `exit_validator`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/4b4311fa8dcefb21819517d2449658bc6fbb2323'}]}, 'public': True, 'created_at': '2018-12-14T08:47:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451878', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Introduction', 'title': 'Ethereum Introduction', 'summary': None, 'action': 'edited', 'sha': 'c87be54da0b86e702a0434741fd12c0e13eecd78', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Introduction'}]}, 'public': True, 'created_at': '2018-12-14T08:28:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451198', 'type': 'IssuesEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451187', 'type': 'IssueCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447252468', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447252468', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447252468, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI1MjQ2OA==', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:28:44Z', 'updated_at': '2018-12-14T08:28:44Z', 'author_association': 'MEMBER', 'body': 'Please help to keep this issue-tracker clean and only for real issues with go-ethereum. For questions please go to http://ethereum.stackexchange.com\\r\\n\\r\\nIf the issue-tracker gets littered with questions - it is really hard to keep track of real issues. So I am sorry to close this issue - but feel free to answer here with the link to your question on stackexchange. Thanks!'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753450471', 'type': 'IssuesEvent', 'actor': {'id': 33201827, 'login': 'nisdas', 'display_login': 'nisdas', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'avatar_url': 'https://avatars.githubusercontent.com/u/33201827?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/319', 'id': 391012090, 'node_id': 'MDU6SXNzdWUzOTEwMTIwOTA=', 'number': 319, 'title': 'RandaoLayers Should Not Be Incremented Every Slot', 'user': {'login': 'nisdas', 'id': 33201827, 'node_id': 'MDQ6VXNlcjMzMjAxODI3', 'avatar_url': 'https://avatars2.githubusercontent.com/u/33201827?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'html_url': 'https://github.com/nisdas', 'followers_url': 'https://api.github.com/users/nisdas/followers', 'following_url': 'https://api.github.com/users/nisdas/following{/other_user}', 'gists_url': 'https://api.github.com/users/nisdas/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nisdas/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nisdas/subscriptions', 'organizations_url': 'https://api.github.com/users/nisdas/orgs', 'repos_url': 'https://api.github.com/users/nisdas/repos', 'events_url': 'https://api.github.com/users/nisdas/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nisdas/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T08:28:33Z', 'updated_at': '2018-12-14T08:28:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"In the spec over here: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#misc-counters, \\r\\n\\r\\nThe block proposer has their `randao layers` incremented every slot when they should only have it incremented in the case where the proposer doesn't propose a block in that particular slot instead of every slot. \\r\\n```\\r\\nSet state.validator_registry[get_beacon_proposer_index(state, state.slot)].randao_layers += 1.\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-14T08:28:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431687', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809', 'pull_request_review_id': 185002359, 'id': 241672809, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MjgwOQ==', 'diff_hunk': \"@@ -661,3 +664,68 @@ def test_get_new_validator_registry_delta_chain_tip(index,\\n flag=flag,\\n )\\n assert result == expected\\n+\\n+\\n+@pytest.mark.parametrize(\\n+ (\\n+ 'pre_fork_version,'\\n+ 'post_fork_version,'\\n+ 'fork_slot,'\\n+ 'current_slot,'\\n+ 'expected'\\n+ ),\\n+ [\\n+ (0, 0, 0, 0, 0),\\n+ (0, 0, 0, 1, 0),\\n+ (0, 0, 20, 10, 0),\", 'path': 'tests/beacon/test_helpers.py', 'position': 39, 'original_position': 39, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': 'would it be more meaningful if\\r\\n```suggestion\\r\\n (0, 1, 20, 10, 0),\\r\\n```', 'created_at': '2018-12-14T08:20:17Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:20:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431686', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446', 'pull_request_review_id': 185002359, 'id': 241671446, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTQ0Ng==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2\\n+ EXITED_WITHOUT_PENALTY = 3\\n+ EXITED_WITH_PENALTY = 4\\n+\\n+\\n+class ValidatorRegistryDeltaFlag(IntEnum):\\n+ ACTIVATION = 0\\n+ EXIT = 1\\n+\\n+\\n+class SignatureDomain(IntEnum):\\n+ DOMAIN_DEPOSIT = 0\\n+ DOMAIN_ATTESTATION = 1\\n+ DOMAIN_PROPOSAL = 2\\n+ DOMAIN_LOGOUT = 3', 'path': 'eth/beacon/enums.py', 'position': 21, 'original_position': 21, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n DOMAIN_EXIT = 3\\r\\n```', 'created_at': '2018-12-14T08:14:37Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:14:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753426087', 'type': 'ForkEvent', 'actor': {'id': 508559, 'login': 'cderong', 'display_login': 'cderong', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'avatar_url': 'https://avatars.githubusercontent.com/u/508559?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161754139, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTQxMzk=', 'name': 'go-ethereum', 'full_name': 'cderong/go-ethereum', 'private': False, 'owner': {'login': 'cderong', 'id': 508559, 'node_id': 'MDQ6VXNlcjUwODU1OQ==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/508559?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'html_url': 'https://github.com/cderong', 'followers_url': 'https://api.github.com/users/cderong/followers', 'following_url': 'https://api.github.com/users/cderong/following{/other_user}', 'gists_url': 'https://api.github.com/users/cderong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cderong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cderong/subscriptions', 'organizations_url': 'https://api.github.com/users/cderong/orgs', 'repos_url': 'https://api.github.com/users/cderong/repos', 'events_url': 'https://api.github.com/users/cderong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cderong/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cderong/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/cderong/go-ethereum', 'forks_url': 'https://api.github.com/repos/cderong/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/cderong/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cderong/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cderong/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/cderong/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cderong/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/cderong/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cderong/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cderong/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cderong/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cderong/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cderong/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cderong/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/cderong/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/cderong/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/cderong/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/cderong/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/cderong/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cderong/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cderong/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cderong/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cderong/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cderong/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/cderong/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cderong/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/cderong/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cderong/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cderong/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cderong/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cderong/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/cderong/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cderong/go-ethereum/deployments', 'created_at': '2018-12-14T08:22:56Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/cderong/go-ethereum.git', 'ssh_url': 'git@github.com:cderong/go-ethereum.git', 'clone_url': 'https://github.com/cderong/go-ethereum.git', 'svn_url': 'https://github.com/cderong/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T08:22:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753400068', 'type': 'WatchEvent', 'actor': {'id': 8707532, 'login': 'serical', 'display_login': 'serical', 'gravatar_id': '', 'url': 'https://api.github.com/users/serical', 'avatar_url': 'https://avatars.githubusercontent.com/u/8707532?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:16:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386879', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245', 'pull_request_review_id': 185002110, 'id': 241671245, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTI0NQ==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2', 'path': 'eth/beacon/enums.py', 'position': 7, 'original_position': 7, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n ACTIVE_PENDING_EXIT = 2\\r\\n```', 'created_at': '2018-12-14T08:13:43Z', 'updated_at': '2018-12-14T08:13:44Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:13:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386498', 'type': 'PullRequestEvent', 'actor': {'id': 20079910, 'login': 'yahtoo', 'display_login': 'yahtoo', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'avatar_url': 'https://avatars.githubusercontent.com/u/20079910?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18309, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309', 'id': 238641377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjQxMzc3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18309', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18309.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18309.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309', 'number': 18309, 'state': 'open', 'locked': False, 'title': 'p2p/discv5: Fix target id repeat hash error', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'q.target is the hash that needs to be found, no need to hash again.', 'created_at': '2018-12-14T08:13:39Z', 'updated_at': '2018-12-14T08:13:39Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'head': {'label': 'yahtoo:discv5', 'ref': 'discv5', 'sha': 'b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 113520981, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTM1MjA5ODE=', 'name': 'go-ethereum', 'full_name': 'yahtoo/go-ethereum', 'private': False, 'owner': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/yahtoo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/yahtoo/go-ethereum', 'forks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/yahtoo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/yahtoo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/yahtoo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/yahtoo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/yahtoo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/yahtoo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/yahtoo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/yahtoo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/yahtoo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/yahtoo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/yahtoo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/yahtoo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/yahtoo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/yahtoo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/yahtoo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/deployments', 'created_at': '2017-12-08T02:20:59Z', 'updated_at': '2018-12-14T07:55:57Z', 'pushed_at': '2018-12-14T08:10:12Z', 'git_url': 'git://github.com/yahtoo/go-ethereum.git', 'ssh_url': 'git@github.com:yahtoo/go-ethereum.git', 'clone_url': 'https://github.com/yahtoo/go-ethereum.git', 'svn_url': 'https://github.com/yahtoo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 90889, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22058, 'watchers_count': 22058, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22058, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18309'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T08:13:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753378866', 'type': 'WatchEvent', 'actor': {'id': 25615578, 'login': 'ByLuxury', 'display_login': 'ByLuxury', 'gravatar_id': '', 'url': 'https://api.github.com/users/ByLuxury', 'avatar_url': 'https://avatars.githubusercontent.com/u/25615578?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:11:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753352327', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T08:05:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447247081', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447247081', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447247081, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NzA4MQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:05:16Z', 'updated_at': '2018-12-14T08:05:16Z', 'author_association': 'CONTRIBUTOR', 'body': '`Type Hinting` is done now.'}}, 'public': True, 'created_at': '2018-12-14T08:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753322823', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-14T07:57:53Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447245506', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447245506', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447245506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NTUwNg==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T07:57:53Z', 'updated_at': '2018-12-14T07:57:53Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah the reframing is very helpful, thank you 😊I think we were talking past each other a bit but I'm on the same page now 😅\\r\\n\\r\\nGoing off your suggestion above, what're your thoughts on something like this:\\r\\n\\r\\n```python\\r\\ndef foo(a: uint256[2...4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n\\r\\n# Produces ABI type: 'uint256[]', with optionals 'min=2', and 'max=4'\\r\\n```\\r\\n\\r\\nCould pre-parse the `...` to `:` and then it parses fine. Also going about it this way would in-turn remove `...` from Vyper syntax which is probably a reasonable thing to do anyway as it seems better to make people use `pass`, which is much more explicit and readable and `...`.\"}}, 'public': True, 'created_at': '2018-12-14T07:57:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753303900', 'type': 'ForkEvent', 'actor': {'id': 42035461, 'login': 'ParkIan', 'display_login': 'ParkIan', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'avatar_url': 'https://avatars.githubusercontent.com/u/42035461?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161750627, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA2Mjc=', 'name': 'solc-js', 'full_name': 'ParkIan/solc-js', 'private': False, 'owner': {'login': 'ParkIan', 'id': 42035461, 'node_id': 'MDQ6VXNlcjQyMDM1NDYx', 'avatar_url': 'https://avatars1.githubusercontent.com/u/42035461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'html_url': 'https://github.com/ParkIan', 'followers_url': 'https://api.github.com/users/ParkIan/followers', 'following_url': 'https://api.github.com/users/ParkIan/following{/other_user}', 'gists_url': 'https://api.github.com/users/ParkIan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ParkIan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ParkIan/subscriptions', 'organizations_url': 'https://api.github.com/users/ParkIan/orgs', 'repos_url': 'https://api.github.com/users/ParkIan/repos', 'events_url': 'https://api.github.com/users/ParkIan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ParkIan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ParkIan/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ParkIan/solc-js', 'forks_url': 'https://api.github.com/repos/ParkIan/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ParkIan/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ParkIan/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ParkIan/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ParkIan/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ParkIan/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ParkIan/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ParkIan/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ParkIan/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ParkIan/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ParkIan/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ParkIan/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ParkIan/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ParkIan/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ParkIan/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ParkIan/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ParkIan/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ParkIan/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ParkIan/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ParkIan/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ParkIan/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ParkIan/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ParkIan/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ParkIan/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ParkIan/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ParkIan/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ParkIan/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ParkIan/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ParkIan/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ParkIan/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ParkIan/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ParkIan/solc-js/deployments', 'created_at': '2018-12-14T07:53:10Z', 'updated_at': '2018-12-14T07:37:29Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ParkIan/solc-js.git', 'ssh_url': 'git@github.com:ParkIan/solc-js.git', 'clone_url': 'https://github.com/ParkIan/solc-js.git', 'svn_url': 'https://github.com/ParkIan/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:53:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753297612', 'type': 'ForkEvent', 'actor': {'id': 28505705, 'login': 'Bytom', 'display_login': 'Bytom', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'avatar_url': 'https://avatars.githubusercontent.com/u/28505705?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161750468, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA0Njg=', 'name': 'go-ethereum', 'full_name': 'Bytom/go-ethereum', 'private': False, 'owner': {'login': 'Bytom', 'id': 28505705, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjI4NTA1NzA1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/28505705?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'html_url': 'https://github.com/Bytom', 'followers_url': 'https://api.github.com/users/Bytom/followers', 'following_url': 'https://api.github.com/users/Bytom/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bytom/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bytom/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bytom/subscriptions', 'organizations_url': 'https://api.github.com/users/Bytom/orgs', 'repos_url': 'https://api.github.com/users/Bytom/repos', 'events_url': 'https://api.github.com/users/Bytom/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bytom/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/Bytom/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Bytom/go-ethereum', 'forks_url': 'https://api.github.com/repos/Bytom/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Bytom/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bytom/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bytom/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Bytom/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bytom/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Bytom/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bytom/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bytom/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bytom/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Bytom/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Bytom/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bytom/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bytom/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bytom/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bytom/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Bytom/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bytom/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bytom/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bytom/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bytom/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bytom/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bytom/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bytom/go-ethereum/deployments', 'created_at': '2018-12-14T07:51:34Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/Bytom/go-ethereum.git', 'ssh_url': 'git@github.com:Bytom/go-ethereum.git', 'clone_url': 'https://github.com/Bytom/go-ethereum.git', 'svn_url': 'https://github.com/Bytom/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753289770', 'type': 'WatchEvent', 'actor': {'id': 15043067, 'login': 'RichardLai88', 'display_login': 'RichardLai88', 'gravatar_id': '', 'url': 'https://api.github.com/users/RichardLai88', 'avatar_url': 'https://avatars.githubusercontent.com/u/15043067?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:49:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753270322', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'f364c47d08af2766507c808327e2c9266ef44501', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753261377', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd2c96d0fb6736540b5d6545b6ed9a005d9ccf2ec', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:42:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753257146', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd15a828414b6f1820d4820ae9cf3789a70f5a961', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:41:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753252577', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137015669, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'before': '0e669e2319a8baba5bac14d5ef8de402874641fe', 'commits': [{'sha': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Fix genesis block', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9b25615691299e1050d83a2453eeba3cdb11e78e'}]}, 'public': True, 'created_at': '2018-12-14T07:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242976', 'type': 'WatchEvent', 'actor': {'id': 15884902, 'login': 'chrislo2004', 'display_login': 'chrislo2004', 'gravatar_id': '', 'url': 'https://api.github.com/users/chrislo2004', 'avatar_url': 'https://avatars.githubusercontent.com/u/15884902?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242885', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '782fb523d673ccbcb024a80f80e1d6a51334d0d6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:37:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753240565', 'type': 'WatchEvent', 'actor': {'id': 36795293, 'login': 'jeikhan', 'display_login': 'jeikhan', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeikhan', 'avatar_url': 'https://avatars.githubusercontent.com/u/36795293?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:36:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753237508', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137007689, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'before': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'commits': [{'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'author': {'email': 'Frank@franks.technology', 'name': 'Frank Szendzielarz'}, 'message': 'Include devp2p fix to compensate for modified API', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/b8ce9f2d228d4e3b262eae17493dde5626b41647'}]}, 'public': True, 'created_at': '2018-12-14T07:35:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753215672', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390', 'pull_request_review_id': 184992539, 'id': 241663390, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY2MzM5MA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': None, 'original_position': 5, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '@cburgdorf I put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py` now. (using plural for being aligned with `constants.py`)\\r\\nI hope that we will use SSZ before the stable beacon chain release. 😊\\r\\n', 'created_at': '2018-12-14T07:30:08Z', 'updated_at': '2018-12-14T07:30:08Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T07:30:08Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T07:30:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753205354', 'type': 'WatchEvent', 'actor': {'id': 17264431, 'login': 'IExpo', 'display_login': 'IExpo', 'gravatar_id': '', 'url': 'https://api.github.com/users/IExpo', 'avatar_url': 'https://avatars.githubusercontent.com/u/17264431?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:27:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753201242', 'type': 'WatchEvent', 'actor': {'id': 2927849, 'login': 'zhiyul', 'display_login': 'zhiyul', 'gravatar_id': '', 'url': 'https://api.github.com/users/zhiyul', 'avatar_url': 'https://avatars.githubusercontent.com/u/2927849?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:26:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753199403', 'type': 'WatchEvent', 'actor': {'id': 18085237, 'login': 'novemberde', 'display_login': 'novemberde', 'gravatar_id': '', 'url': 'https://api.github.com/users/novemberde', 'avatar_url': 'https://avatars.githubusercontent.com/u/18085237?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:25:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753193646', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'ebbf6ab750c3f8c957fe773084d913f5f910c964', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:24:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753184451', 'type': 'WatchEvent', 'actor': {'id': 9201851, 'login': 'naveen7252', 'display_login': 'naveen7252', 'gravatar_id': '', 'url': 'https://api.github.com/users/naveen7252', 'avatar_url': 'https://avatars.githubusercontent.com/u/9201851?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:21:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753168859', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '9c075526b1f08aec2d3f66840f4faf5f58c44326', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:17:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753166735', 'type': 'ForkEvent', 'actor': {'id': 43934934, 'login': 'quangdo3112', 'display_login': 'quangdo3112', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'avatar_url': 'https://avatars.githubusercontent.com/u/43934934?'}, 'repo': {'id': 30197536, 'name': 'ethereum/meteor-dapp-wallet', 'url': 'https://api.github.com/repos/ethereum/meteor-dapp-wallet'}, 'payload': {'forkee': {'id': 161746724, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDY3MjQ=', 'name': 'meteor-dapp-wallet', 'full_name': 'quangdo3112/meteor-dapp-wallet', 'private': False, 'owner': {'login': 'quangdo3112', 'id': 43934934, 'node_id': 'MDQ6VXNlcjQzOTM0OTM0', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43934934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'html_url': 'https://github.com/quangdo3112', 'followers_url': 'https://api.github.com/users/quangdo3112/followers', 'following_url': 'https://api.github.com/users/quangdo3112/following{/other_user}', 'gists_url': 'https://api.github.com/users/quangdo3112/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/quangdo3112/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/quangdo3112/subscriptions', 'organizations_url': 'https://api.github.com/users/quangdo3112/orgs', 'repos_url': 'https://api.github.com/users/quangdo3112/repos', 'events_url': 'https://api.github.com/users/quangdo3112/events{/privacy}', 'received_events_url': 'https://api.github.com/users/quangdo3112/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet', 'forks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/forks', 'keys_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/teams', 'hooks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/hooks', 'issue_events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/events', 'assignees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/tags', 'blobs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/languages', 'stargazers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/stargazers', 'contributors_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contributors', 'subscribers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscribers', 'subscription_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscription', 'commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/merges', 'archive_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/downloads', 'issues_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/labels{/name}', 'releases_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/deployments', 'created_at': '2018-12-14T07:16:49Z', 'updated_at': '2018-12-08T23:55:17Z', 'pushed_at': '2018-12-02T21:00:45Z', 'git_url': 'git://github.com/quangdo3112/meteor-dapp-wallet.git', 'ssh_url': 'git@github.com:quangdo3112/meteor-dapp-wallet.git', 'clone_url': 'https://github.com/quangdo3112/meteor-dapp-wallet.git', 'svn_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'homepage': 'https://wallet.ethereum.org', 'size': 16875, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:16:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753155933', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'hwwhww-patch-2', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T07:13:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753146586', 'type': 'WatchEvent', 'actor': {'id': 19973971, 'login': 'bhalla98', 'display_login': 'bhalla98', 'gravatar_id': '', 'url': 'https://api.github.com/users/bhalla98', 'avatar_url': 'https://avatars.githubusercontent.com/u/19973971?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:11:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753127401', 'type': 'WatchEvent', 'actor': {'id': 1203972, 'login': 'rexshihaoren', 'display_login': 'rexshihaoren', 'gravatar_id': '', 'url': 'https://api.github.com/users/rexshihaoren', 'avatar_url': 'https://avatars.githubusercontent.com/u/1203972?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:05:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753111443', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Natural-Specification-Format', 'title': 'Ethereum Natural Specification Format', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format'}, {'page_name': 'FAQ', 'title': 'FAQ', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/FAQ'}, {'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}, {'page_name': 'JSON-RPC', 'title': 'JSON RPC', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JSON-RPC'}, {'page_name': 'JavaScript-API', 'title': 'JavaScript API', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JavaScript-API'}, {'page_name': 'Proof-of-Stake-FAQs', 'title': 'Proof of Stake FAQs', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs'}, {'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}, {'page_name': '[Chinese-Simplified]-Ethash-Design-Rationale中文翻译', 'title': '[Chinese Simplified] Ethash Design Rationale中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash-Design-Rationale%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethash中文翻译', 'title': '[Chinese Simplified] Ethash中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethereum-白皮书中文版', 'title': '[Chinese Simplified] Ethereum 白皮书中文版', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethereum-%E7%99%BD%E7%9A%AE%E4%B9%A6%E4%B8%AD%E6%96%87%E7%89%88'}]}, 'public': True, 'created_at': '2018-12-14T07:00:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753099469', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': 'f01b98128a365d01104d342b3a496d4b3bbd9410', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:57:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753066489', 'type': 'WatchEvent', 'actor': {'id': 39462187, 'login': 'lola73', 'display_login': 'lola73', 'gravatar_id': '', 'url': 'https://api.github.com/users/lola73', 'avatar_url': 'https://avatars.githubusercontent.com/u/39462187?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:47:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753056941', 'type': 'WatchEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753020567', 'type': 'PullRequestEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1602, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602', 'id': 238623634, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjIzNjM0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1602', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1602.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1602.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602', 'number': 1602, 'state': 'open', 'locked': False, 'title': 'Replaces set with frozenset', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1601\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nReplaces set with frozenset\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n', 'created_at': '2018-12-14T06:34:19Z', 'updated_at': '2018-12-14T06:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'head': {'label': 'vardan10:vardan/setFix', 'ref': 'vardan/setFix', 'sha': '33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T06:18:38Z', 'pushed_at': '2018-12-14T06:26:02Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1602'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T06:34:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753016058', 'type': 'PullRequestEvent', 'actor': {'id': 8636562, 'login': 'YaoZengzeng', 'display_login': 'YaoZengzeng', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'avatar_url': 'https://avatars.githubusercontent.com/u/8636562?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 17517, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517', 'id': 210947844, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjEwOTQ3ODQ0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/17517', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/17517.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/17517.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517', 'number': 17517, 'state': 'closed', 'locked': False, 'title': 'eth,miner: encapsulate the mining-related options of eth config', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Encapsulate the mining-related options in `eth.Config` to `miner.Config`', 'created_at': '2018-08-26T11:56:23Z', 'updated_at': '2018-12-14T06:32:55Z', 'closed_at': '2018-12-14T06:32:55Z', 'merged_at': None, 'merge_commit_sha': 'c34698f1f91fdb6d7cb8441008729d1722d00577', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}, {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'head': {'label': 'YaoZengzeng:encap-mining', 'ref': 'encap-mining', 'sha': '8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 144448340, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDQ0NDgzNDA=', 'name': 'go-ethereum', 'full_name': 'YaoZengzeng/go-ethereum', 'private': False, 'owner': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/YaoZengzeng/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum', 'forks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/deployments', 'created_at': '2018-08-12T07:54:54Z', 'updated_at': '2018-08-12T07:55:03Z', 'pushed_at': '2018-10-01T13:04:45Z', 'git_url': 'git://github.com/YaoZengzeng/go-ethereum.git', 'ssh_url': 'git@github.com:YaoZengzeng/go-ethereum.git', 'clone_url': 'https://github.com/YaoZengzeng/go-ethereum.git', 'svn_url': 'https://github.com/YaoZengzeng/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106850, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '70398d300d4da97c89f96f5c9629caa327de5c39', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T04:00:25Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22057, 'watchers_count': 22057, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 858, 'watchers': 22057, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/17517'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 135, 'deletions': 84, 'changed_files': 8}}, 'public': True, 'created_at': '2018-12-14T06:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753013016', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '7566458f9aa49c06faa8d2804536c1464b911e00', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:31:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007103', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038', 'pull_request_review_id': 184974719, 'id': 241652038, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MjAzOA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\n+ logs = log_filter.get_new_entries()\\n+ # ChainStart event should not be triggered\\n+ assert len(logs) == 0\\n \\n+ # Make 1 more deposit with value MAX_DEPOSIT to trigger ChainStart event\\n+ deposit_parameters = b\\'\\\\x06\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 126, 'original_position': 126, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:56Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007098', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969', 'pull_request_review_id': 184974719, 'id': 241651969, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTk2OQ==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 118, 'original_position': 118, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:24Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007097', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680', 'pull_request_review_id': 184974719, 'id': 241651680, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTY4MA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9', 'path': 'tests/contracts/test_deposit.py', 'position': 113, 'original_position': 113, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n max_deposit_amount = MAX_DEPOSIT * eth_utils.denoms.gwei # in gwei\\r\\n```', 'created_at': '2018-12-14T06:06:39Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007093', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416', 'pull_request_review_id': 184974719, 'id': 241651416, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTQxNg==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Then this line would be:\\r\\n```suggestion\\r\\n (False, MAX_DEPOSIT + 1)\\r\\n```', 'created_at': '2018-12-14T06:04:17Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:04:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007092', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348', 'pull_request_review_id': 184974719, 'id': 241651348, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTM0OA==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'What do you think about defining the constants in `conftest.py`?\\r\\n```\\r\\nMIN_DEPOSIT: constant(uint256) = 1 # ETH\\r\\nMAX_DEPOSIT: constant(uint256) = 32 # ETH\\r\\nGWEI_PER_ETH: constant(uint256) = 1000000000 # 10**9\\r\\nCHAIN_START_FULL_DEPOSIT_THRESHOLD: constant(uint256) = 16384 # 2**14\\r\\nDEPOSIT_CONTRACT_TREE_DEPTH: constant(uint256) = 32\\r\\n```\\r\\n\\r\\n', 'created_at': '2018-12-14T06:03:37Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:03:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007088', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423', 'pull_request_review_id': 184974719, 'id': 241649423, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY0OTQyMw==', 'diff_hunk': \"@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock='latest')\", 'path': 'tests/contracts/test_deposit.py', 'position': 49, 'original_position': 49, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': \"nitpick\\r\\n```python\\r\\n log_filter = registration_contract.events.Eth1Deposit.createFilter(\\r\\n fromBlock='latest',\\r\\n )\\r\\n```\", 'created_at': '2018-12-14T05:46:02Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T05:46:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753004100', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': '_Sidebar', 'title': '_Sidebar', 'summary': None, 'action': 'edited', 'sha': 'b6f6576795708794795eda15345e139dd116e9a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/_Sidebar'}]}, 'public': True, 'created_at': '2018-12-14T06:29:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753003206', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '93df733d97f7b773d62b64a6fbac3f2f289bfbe1', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752999575', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '793fc15fe4b50dda8bd0fb6ec000b7d6de9f5a29', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:27:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752975271', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '2073b0d741754ee81fcabd3f18fdf771dc0100d8', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:20:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752970116', 'type': 'ForkEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T06:18:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752969043', 'type': 'IssueCommentEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T06:18:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types in `subscription_msg_types`. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447226645', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601#issuecomment-447226645', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'id': 447226645, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyNjY0NQ==', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T06:18:13Z', 'updated_at': '2018-12-14T06:18:13Z', 'author_association': 'NONE', 'body': \"@carver I only found 2 instances where ```set()``` is used. [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/state.py#L104) and [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/chain.py#L143).\\r\\n\\r\\nPlease let me know if I have missed anything. I'll Raise a PR for this.\"}}, 'public': True, 'created_at': '2018-12-14T06:18:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752963589', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '9948c5bbf5c32169ef05c24c41751eb8956ea4ab', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752957503', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '18e82785b342a4a9be330fadf416ca31b73b98a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:14:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752956003', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '3cf1b1cddb92f9acfa0c681727cf842b78681a4c', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:13:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752900486', 'type': 'IssueCommentEvent', 'actor': {'id': 20085459, 'login': 'amitOodles', 'display_login': 'amitOodles', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'avatar_url': 'https://avatars.githubusercontent.com/u/20085459?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T05:56:27Z', 'closed_at': None, 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447222357', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447222357', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447222357, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyMjM1Nw==', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:56:27Z', 'updated_at': '2018-12-14T05:56:27Z', 'author_association': 'NONE', 'body': 'Ran the geth node with the following version \\r\\n`Geth/v1.8.20-stable-24d727b6/linux-amd64/go1.9.7` and in --nodiscover mode\\r\\n\\r\\nAdded the peers stated in the following gist \\r\\n`https://gist.github.com/rfikki/31393c66b59f906a9a2e5a84215e8b00/5a5a0503f83773e19035577dab0f861ef993e87f`\\r\\n\\r\\nAnd was able to sync completely last night. There is one issue\\r\\n\\r\\n1) I have production nodes running with the previous versions (version - `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7` which are connected to mainnet unlike this node) , will i need to update the version on that node too? What is the issue here ?\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T05:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752897010', 'type': 'ForkEvent', 'actor': {'id': 10784863, 'login': 'nanjia', 'display_login': 'nanjia', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'avatar_url': 'https://avatars.githubusercontent.com/u/10784863?'}, 'repo': {'id': 96542036, 'name': 'ethereum/sharding', 'url': 'https://api.github.com/repos/ethereum/sharding'}, 'payload': {'forkee': {'id': 161738241, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzgyNDE=', 'name': 'sharding', 'full_name': 'nanjia/sharding', 'private': False, 'owner': {'login': 'nanjia', 'id': 10784863, 'node_id': 'MDQ6VXNlcjEwNzg0ODYz', 'avatar_url': 'https://avatars2.githubusercontent.com/u/10784863?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'html_url': 'https://github.com/nanjia', 'followers_url': 'https://api.github.com/users/nanjia/followers', 'following_url': 'https://api.github.com/users/nanjia/following{/other_user}', 'gists_url': 'https://api.github.com/users/nanjia/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nanjia/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nanjia/subscriptions', 'organizations_url': 'https://api.github.com/users/nanjia/orgs', 'repos_url': 'https://api.github.com/users/nanjia/repos', 'events_url': 'https://api.github.com/users/nanjia/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nanjia/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/nanjia/sharding', 'description': 'Sharding manager contract, and related software and tests', 'fork': True, 'url': 'https://api.github.com/repos/nanjia/sharding', 'forks_url': 'https://api.github.com/repos/nanjia/sharding/forks', 'keys_url': 'https://api.github.com/repos/nanjia/sharding/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/nanjia/sharding/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/nanjia/sharding/teams', 'hooks_url': 'https://api.github.com/repos/nanjia/sharding/hooks', 'issue_events_url': 'https://api.github.com/repos/nanjia/sharding/issues/events{/number}', 'events_url': 'https://api.github.com/repos/nanjia/sharding/events', 'assignees_url': 'https://api.github.com/repos/nanjia/sharding/assignees{/user}', 'branches_url': 'https://api.github.com/repos/nanjia/sharding/branches{/branch}', 'tags_url': 'https://api.github.com/repos/nanjia/sharding/tags', 'blobs_url': 'https://api.github.com/repos/nanjia/sharding/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/nanjia/sharding/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/nanjia/sharding/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/nanjia/sharding/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/nanjia/sharding/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/nanjia/sharding/languages', 'stargazers_url': 'https://api.github.com/repos/nanjia/sharding/stargazers', 'contributors_url': 'https://api.github.com/repos/nanjia/sharding/contributors', 'subscribers_url': 'https://api.github.com/repos/nanjia/sharding/subscribers', 'subscription_url': 'https://api.github.com/repos/nanjia/sharding/subscription', 'commits_url': 'https://api.github.com/repos/nanjia/sharding/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/nanjia/sharding/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/nanjia/sharding/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/nanjia/sharding/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/nanjia/sharding/contents/{+path}', 'compare_url': 'https://api.github.com/repos/nanjia/sharding/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/nanjia/sharding/merges', 'archive_url': 'https://api.github.com/repos/nanjia/sharding/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/nanjia/sharding/downloads', 'issues_url': 'https://api.github.com/repos/nanjia/sharding/issues{/number}', 'pulls_url': 'https://api.github.com/repos/nanjia/sharding/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/nanjia/sharding/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/nanjia/sharding/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/nanjia/sharding/labels{/name}', 'releases_url': 'https://api.github.com/repos/nanjia/sharding/releases{/id}', 'deployments_url': 'https://api.github.com/repos/nanjia/sharding/deployments', 'created_at': '2018-12-14T05:55:29Z', 'updated_at': '2018-12-07T04:33:37Z', 'pushed_at': '2018-06-21T15:54:19Z', 'git_url': 'git://github.com/nanjia/sharding.git', 'ssh_url': 'git@github.com:nanjia/sharding.git', 'clone_url': 'https://github.com/nanjia/sharding.git', 'svn_url': 'https://github.com/nanjia/sharding', 'homepage': '', 'size': 624, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752885025', 'type': 'WatchEvent', 'actor': {'id': 10951677, 'login': 'xuefengyuan', 'display_login': 'xuefengyuan', 'gravatar_id': '', 'url': 'https://api.github.com/users/xuefengyuan', 'avatar_url': 'https://avatars.githubusercontent.com/u/10951677?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:51:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865628', 'type': 'ForkEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161737264, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzcyNjQ=', 'name': 'wiki', 'full_name': 'totaking/wiki', 'private': False, 'owner': {'login': 'totaking', 'id': 45840931, 'node_id': 'MDQ6VXNlcjQ1ODQwOTMx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45840931?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'html_url': 'https://github.com/totaking', 'followers_url': 'https://api.github.com/users/totaking/followers', 'following_url': 'https://api.github.com/users/totaking/following{/other_user}', 'gists_url': 'https://api.github.com/users/totaking/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/totaking/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/totaking/subscriptions', 'organizations_url': 'https://api.github.com/users/totaking/orgs', 'repos_url': 'https://api.github.com/users/totaking/repos', 'events_url': 'https://api.github.com/users/totaking/events{/privacy}', 'received_events_url': 'https://api.github.com/users/totaking/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/totaking/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/totaking/wiki', 'forks_url': 'https://api.github.com/repos/totaking/wiki/forks', 'keys_url': 'https://api.github.com/repos/totaking/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/totaking/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/totaking/wiki/teams', 'hooks_url': 'https://api.github.com/repos/totaking/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/totaking/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/totaking/wiki/events', 'assignees_url': 'https://api.github.com/repos/totaking/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/totaking/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/totaking/wiki/tags', 'blobs_url': 'https://api.github.com/repos/totaking/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/totaking/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/totaking/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/totaking/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/totaking/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/totaking/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/totaking/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/totaking/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/totaking/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/totaking/wiki/subscription', 'commits_url': 'https://api.github.com/repos/totaking/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/totaking/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/totaking/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/totaking/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/totaking/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/totaking/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/totaking/wiki/merges', 'archive_url': 'https://api.github.com/repos/totaking/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/totaking/wiki/downloads', 'issues_url': 'https://api.github.com/repos/totaking/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/totaking/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/totaking/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/totaking/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/totaking/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/totaking/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/totaking/wiki/deployments', 'created_at': '2018-12-14T05:44:41Z', 'updated_at': '2018-12-14T02:12:18Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/totaking/wiki.git', 'ssh_url': 'git@github.com:totaking/wiki.git', 'clone_url': 'https://github.com/totaking/wiki.git', 'svn_url': 'https://github.com/totaking/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:44:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865281', 'type': 'DeleteEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T05:44:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865194', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136815396, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'before': '9e74043a1737b1a792e259ef93c995e0634df086', 'commits': [{'sha': 'c43724132b06086ae51a11001794dce802c74644', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Clarify block hash -> block root', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/c43724132b06086ae51a11001794dce802c74644'}, {'sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #318 from ethereum/vbuterin-patch-16\\n\\nClarify block hash -> block root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/357167d8c201b0106a50e6cd62b81fc795eaa0f1'}]}, 'public': True, 'created_at': '2018-12-14T05:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865139', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'closed', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T05:44:32Z', 'closed_at': '2018-12-14T05:44:32Z', 'merged_at': '2018-12-14T05:44:32Z', 'merge_commit_sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T05:44:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752854205', 'type': 'WatchEvent', 'actor': {'id': 17971842, 'login': 'Tinycl', 'display_login': 'Tinycl', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tinycl', 'avatar_url': 'https://avatars.githubusercontent.com/u/17971842?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:40:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802462', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802390', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752770962', 'type': 'ForkEvent', 'actor': {'id': 19933442, 'login': 'ArnauSantamaria', 'display_login': 'ArnauSantamaria', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'avatar_url': 'https://avatars.githubusercontent.com/u/19933442?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161734300, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzQzMDA=', 'name': 'solc-js', 'full_name': 'ArnauSantamaria/solc-js', 'private': False, 'owner': {'login': 'ArnauSantamaria', 'id': 19933442, 'node_id': 'MDQ6VXNlcjE5OTMzNDQy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/19933442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'html_url': 'https://github.com/ArnauSantamaria', 'followers_url': 'https://api.github.com/users/ArnauSantamaria/followers', 'following_url': 'https://api.github.com/users/ArnauSantamaria/following{/other_user}', 'gists_url': 'https://api.github.com/users/ArnauSantamaria/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ArnauSantamaria/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ArnauSantamaria/subscriptions', 'organizations_url': 'https://api.github.com/users/ArnauSantamaria/orgs', 'repos_url': 'https://api.github.com/users/ArnauSantamaria/repos', 'events_url': 'https://api.github.com/users/ArnauSantamaria/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ArnauSantamaria/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ArnauSantamaria/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ArnauSantamaria/solc-js', 'forks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/deployments', 'created_at': '2018-12-14T05:08:09Z', 'updated_at': '2018-12-13T11:30:06Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ArnauSantamaria/solc-js.git', 'ssh_url': 'git@github.com:ArnauSantamaria/solc-js.git', 'clone_url': 'https://github.com/ArnauSantamaria/solc-js.git', 'svn_url': 'https://github.com/ArnauSantamaria/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752769047', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T05:07:22Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447214936', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447214936', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447214936, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxNDkzNg==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:07:22Z', 'updated_at': '2018-12-14T05:07:22Z', 'author_association': 'CONTRIBUTOR', 'body': \"@pipermerriam the following issues still have not been addressed till this point and I have some questions.\\r\\n* Instead of using `classmethod` or `staticmethod` decorators, I was thinking that maybe we could instantiate an object in `_init__.py` like `bn128 = BN128_Curve()`, and the users could use this object itself directly. Need your suggestion on this.\\r\\n* I still haven't received a response to the comments raised by me [here](https://github.com/ethereum/py_ecc/issues/24#issuecomment-446088199), and hence I am reverting back to the old phase itself (where instead of `division` we would be doing `multiplication`). I will open an issue for this bug and leave the code and tests unchanged in this issue.\\r\\n* I still haven't done the type hinting completely and hence didn't include it in `tox`.\\r\\n* Still have to replace `asserts` with `Exceptions`.\\r\\n* `circleci` was annoying with the installation of `mypy-extensions`, and hence I have flooded `tox.ini` with the installation of `mypy-extensions`. It's working for now, but might not be suboptimal.\\r\\n* Last but not least, we need a mechanism to validate the `constants` of the curves. For example, we need to be sure that the `field_modulus` is a prime number. I feel that these shouldn't be part of the `tests` and maybe we have to test the `validity` of these constants everytime we import the whole module or it's submodule. I was thinking maybe we can validate these constants in `__init__.py`. What do you say?\"}}, 'public': True, 'created_at': '2018-12-14T05:07:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752739093', 'type': 'IssueCommentEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/events', 'html_url': 'https://github.com/ethereum/vyper/issues/1140', 'id': 390449234, 'node_id': 'MDU6SXNzdWUzOTA0NDkyMzQ=', 'number': 1140, 'title': 'Monday 17th December 2018', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 962355094, 'node_id': 'MDU6TGFiZWw5NjIzNTUwOTQ=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/meeting', 'name': 'meeting', 'color': '7ff9e3', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T23:12:04Z', 'updated_at': '2018-12-14T04:55:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Start: Monday 17th December 2018, 13:00 UTC (https://time.is/UTC)\\r\\nHangouts: https://meet.google.com/czc-kuep-jda\\r\\n\\r\\nAgenda:\\r\\n- Slithr'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447213087', 'html_url': 'https://github.com/ethereum/vyper/issues/1140#issuecomment-447213087', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'id': 447213087, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxMzA4Nw==', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:55:28Z', 'updated_at': '2018-12-14T04:55:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Another agenda topic I'd like to add - struct calling convention / ABI issues / scope of #1019\"}}, 'public': True, 'created_at': '2018-12-14T04:55:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752730925', 'type': 'WatchEvent', 'actor': {'id': 26325992, 'login': 'hsauers5', 'display_login': 'hsauers5', 'gravatar_id': '', 'url': 'https://api.github.com/users/hsauers5', 'avatar_url': 'https://avatars.githubusercontent.com/u/26325992?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:52:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752690782', 'type': 'WatchEvent', 'actor': {'id': 1610828, 'login': 'vinaymavi', 'display_login': 'vinaymavi', 'gravatar_id': '', 'url': 'https://api.github.com/users/vinaymavi', 'avatar_url': 'https://avatars.githubusercontent.com/u/1610828?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:35:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620924', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620912', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447206906', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305#issuecomment-447206906', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'id': 447206906, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIwNjkwNg==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:07:36Z', 'updated_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'closing in favor of #314'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604667', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'open', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T04:01:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T04:01:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604442', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T04:01:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601400', 'type': 'WatchEvent', 'actor': {'id': 2513446, 'login': 'anirudh-chhangani', 'display_login': 'anirudh-chhangani', 'gravatar_id': '', 'url': 'https://api.github.com/users/anirudh-chhangani', 'avatar_url': 'https://avatars.githubusercontent.com/u/2513446?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601144', 'type': 'WatchEvent', 'actor': {'id': 7011738, 'login': 'hiro8ma', 'display_login': 'hiro8ma', 'gravatar_id': '', 'url': 'https://api.github.com/users/hiro8ma', 'avatar_url': 'https://avatars.githubusercontent.com/u/7011738?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586965', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180', 'pull_request_review_id': 184961540, 'id': 241638180, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzODE4MA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'One of the operations involving aggregate signatures _is_ aggregate signature verification. So I guess this depends what we want the order to be: simple sig verification first, then all aggregate sig stuff, or pubkey and sig aggregation first, then all sig verification?', 'created_at': '2018-12-14T03:55:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}, 'in_reply_to_id': 241634854}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586432', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667', 'pull_request_review_id': 184960929, 'id': 241637667, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNzY2Nw==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,', 'path': 'specs/core/0_beacon-chain.md', 'position': 56, 'original_position': 56, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, need to update the keyword argument where that this function is being called.\\r\\n(in `def activate_validator()` and in `def exit_validator()`)', 'created_at': '2018-12-14T03:50:16Z', 'updated_at': '2018-12-14T03:55:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-14T03:55:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:50:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752567103', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136657017, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '1683c108885da84f8b81b3669b6e40e9111e147b', 'before': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'commits': [{'sha': '1683c108885da84f8b81b3669b6e40e9111e147b', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: package config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/1683c108885da84f8b81b3669b6e40e9111e147b'}]}, 'public': True, 'created_at': '2018-12-14T03:48:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752564560', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136655721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'before': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'commits': [{'sha': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: disabling package cache', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d7dfa4faa2d41ac42b641a6cfe3a13f529eac853'}]}, 'public': True, 'created_at': '2018-12-14T03:47:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752562158', 'type': 'PullRequestEvent', 'actor': {'id': 17670147, 'login': 'NIC619', 'display_login': 'NIC619', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'avatar_url': 'https://avatars.githubusercontent.com/u/17670147?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'opened', 'number': 137, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T03:46:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 78, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-11-23T13:37:58Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 138, 'deletions': 57, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-14T03:46:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752498077', 'type': 'WatchEvent', 'actor': {'id': 7344025, 'login': 'jeojoe', 'display_login': 'jeojoe', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeojoe', 'avatar_url': 'https://avatars.githubusercontent.com/u/7344025?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T03:23:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752497430', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854', 'pull_request_review_id': 184957523, 'id': 241634854, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNDg1NA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Perhaps move \"## Signature verification\" section after \"## Operations involving aggregate signatures\" section.', 'created_at': '2018-12-14T03:22:34Z', 'updated_at': '2018-12-14T03:23:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:23:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:22:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752385152', 'type': 'ForkEvent', 'actor': {'id': 19542680, 'login': 'dctlsk', 'display_login': 'dctlsk', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19542680?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'forkee': {'id': 161722668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MjI2Njg=', 'name': 'eth2.0-specs', 'full_name': 'dctlsk/eth2.0-specs', 'private': False, 'owner': {'login': 'dctlsk', 'id': 19542680, 'node_id': 'MDQ6VXNlcjE5NTQyNjgw', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19542680?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'html_url': 'https://github.com/dctlsk', 'followers_url': 'https://api.github.com/users/dctlsk/followers', 'following_url': 'https://api.github.com/users/dctlsk/following{/other_user}', 'gists_url': 'https://api.github.com/users/dctlsk/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dctlsk/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dctlsk/subscriptions', 'organizations_url': 'https://api.github.com/users/dctlsk/orgs', 'repos_url': 'https://api.github.com/users/dctlsk/repos', 'events_url': 'https://api.github.com/users/dctlsk/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dctlsk/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dctlsk/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/dctlsk/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/deployments', 'created_at': '2018-12-14T02:45:29Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/dctlsk/eth2.0-specs.git', 'ssh_url': 'git@github.com:dctlsk/eth2.0-specs.git', 'clone_url': 'https://github.com/dctlsk/eth2.0-specs.git', 'svn_url': 'https://github.com/dctlsk/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752377568', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'id': 390934833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'number': 5399, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T02:43:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch'}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447194231', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#issuecomment-447194231', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'id': 447194231, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE5NDIzMQ==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T02:43:04Z', 'updated_at': '2018-12-14T02:43:04Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=h1) Report\\n> Merging [#5399](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/aleth/commit/ec3886029393fc9927b130ba8f8671480d810391?src=pr&el=desc) will **decrease** coverage by `0.48%`.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/aleth/pull/5399/graphs/tree.svg?width=650&token=FLNAK13ErJ&height=150&src=pr)](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #5399 +/- ##\\n==========================================\\n- Coverage 61.24% 60.75% -0.49% \\n==========================================\\n Files 344 344 \\n Lines 28178 28184 +6 \\n Branches 3245 3247 +2 \\n==========================================\\n- Hits 17257 17123 -134 \\n- Misses 9792 9925 +133 \\n- Partials 1129 1136 +7\\n```\\n'}}, 'public': True, 'created_at': '2018-12-14T02:43:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752283212', 'type': 'WatchEvent', 'actor': {'id': 38976, 'login': 'yorzi', 'display_login': 'yorzi', 'gravatar_id': '', 'url': 'https://api.github.com/users/yorzi', 'avatar_url': 'https://avatars.githubusercontent.com/u/38976?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:12:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752249772', 'type': 'WatchEvent', 'actor': {'id': 15381920, 'login': 'chiaki-i', 'display_login': 'chiaki-i', 'gravatar_id': '', 'url': 'https://api.github.com/users/chiaki-i', 'avatar_url': 'https://avatars.githubusercontent.com/u/15381920?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:01:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752245403', 'type': 'ForkEvent', 'actor': {'id': 13427145, 'login': 'coolhackboy', 'display_login': 'coolhackboy', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'avatar_url': 'https://avatars.githubusercontent.com/u/13427145?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161718404, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTg0MDQ=', 'name': 'go-ethereum', 'full_name': 'coolhackboy/go-ethereum', 'private': False, 'owner': {'login': 'coolhackboy', 'id': 13427145, 'node_id': 'MDQ6VXNlcjEzNDI3MTQ1', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13427145?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'html_url': 'https://github.com/coolhackboy', 'followers_url': 'https://api.github.com/users/coolhackboy/followers', 'following_url': 'https://api.github.com/users/coolhackboy/following{/other_user}', 'gists_url': 'https://api.github.com/users/coolhackboy/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coolhackboy/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coolhackboy/subscriptions', 'organizations_url': 'https://api.github.com/users/coolhackboy/orgs', 'repos_url': 'https://api.github.com/users/coolhackboy/repos', 'events_url': 'https://api.github.com/users/coolhackboy/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coolhackboy/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/coolhackboy/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/coolhackboy/go-ethereum', 'forks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/deployments', 'created_at': '2018-12-14T02:00:14Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/coolhackboy/go-ethereum.git', 'ssh_url': 'git@github.com:coolhackboy/go-ethereum.git', 'clone_url': 'https://github.com/coolhackboy/go-ethereum.git', 'svn_url': 'https://github.com/coolhackboy/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:00:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752240909', 'type': 'PullRequestEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'opened', 'number': 5399, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local arg to aleth/aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones\\r\\nlocal machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T01:58:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 3, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:58:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752217273', 'type': 'IssueCommentEvent', 'actor': {'id': 1195159, 'login': 'dete', 'display_login': 'dete', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'avatar_url': 'https://avatars.githubusercontent.com/u/1195159?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654', 'id': 390492191, 'node_id': 'MDU6SXNzdWUzOTA0OTIxOTE=', 'number': 1654, 'title': 'ERC-1654 Dapp-wallet authentication process with contract wallets support', 'user': {'login': 'pazams', 'id': 9962080, 'node_id': 'MDQ6VXNlcjk5NjIwODA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9962080?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pazams', 'html_url': 'https://github.com/pazams', 'followers_url': 'https://api.github.com/users/pazams/followers', 'following_url': 'https://api.github.com/users/pazams/following{/other_user}', 'gists_url': 'https://api.github.com/users/pazams/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pazams/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pazams/subscriptions', 'organizations_url': 'https://api.github.com/users/pazams/orgs', 'repos_url': 'https://api.github.com/users/pazams/repos', 'events_url': 'https://api.github.com/users/pazams/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pazams/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T02:31:17Z', 'updated_at': '2018-12-14T01:51:34Z', 'closed_at': None, 'author_association': 'NONE', 'body': '---\\r\\neip: \\r\\ntitle: Dapp-wallet authentication process with contract wallets support\\r\\nauthor: Maor Zamski (@pazams)\\r\\ndiscussions-to: \\r\\nstatus: Draft\\r\\ntype: Meta\\r\\ncreated: 2018-12-12\\r\\n---\\r\\n\\r\\n\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nAn off-chain process for dapps to prove actionable control (informally, \"ownership\") over a public Ethereum address using `eth_sign`. Supports both external wallets and contract wallets.\\r\\n\\r\\n## Definitions\\r\\n- `contract wallet` A contract [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts) deployed with the intent to be used as the ownership address for on-chain assets (including ether, ERC-20 tokens, and ERC-721 NFTs). It has the ability to transfer ether or dynamically execute actions on other contracts (acting as the owner of assets controlled by those contracts). Common examples of contract wallets are `multisig wallets` (such as the ones provided by [Gnosis](https://github.com/Gnosis/MultiSigWallet) and [Parity](https://github.com/ConsenSys/MultiSigWallet)) and `identity contracts`, as defined in [ERC-725](https://github.com/ethereum/EIPs/issues/725).\\r\\n- `external wallet` An externally owned [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts), controlled by a private key. Currently, most on-chain assets are owned by such accounts. A common example for an external wallet are the wallets generated by MetaMask.\\r\\n- `actionable control` A public key is defined to have actionable control over an address if either:\\r\\n - It is an external wallet AND the key is determined to correspond to the address.\\r\\n - It is a contract wallet AND the key exists in the contract account state and has a purpose of `ACTION` as defined in EIP-725.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe authentication process starts with the dapp client component requesting a message signature from the wallet.\\r\\nThe client then proceeds to send the result to the dapp backend component along with the requested address to be used for authentication. The dapp backend recovers a public key from the signature, and checks if it has actionable control over the requested address. This check is done under consideration that the address may represent either an external wallet or a contract wallet. This process works with external wallets and EIP-725 contract wallets. For this process to be compatible with any other contract wallet, it requires the wallet to implement a small subset of EIP-725.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nDapps frequently offer a customised off-chain user experience in addition to their smart-contract interface. For example, a dapp may provide a push notification feature to their users, allowing them to stay notified about successful state changes associated with their public addresses. For these type of features, a dapp needs a way to authenticate that a user has actionable control over the public address associated with their account.\\r\\n\\r\\nA common practice dapps use in an authentication process is to only check if a recovered public key matches the requested authentication address. For contract wallets, this check is broken, as there is no corresponding private key to which to generate a signed message, and hence why some dapps are inaccessible for contract wallet users. It is therefore argued that a more broader approach is needed.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Dapp\\r\\n\\r\\nOn the dapp side, the dapp-wallet authentication process MUST follow these steps:\\r\\n1. Dapp client requests the wallet software to sign a challenge message via [`eth_sign`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign).\\r\\n2. Dapp client sends the signature to the dapp\\'s backend component, along with the wallet address to be authenticated with. The address may be obtained via [`eth_accounts`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts).\\r\\n3. Dapp backend recovers a public key from the signature.\\r\\n4. Dapp backend checks if the recovered key has actionable control over the provided wallet address under the assumption it could represent an external wallet OR a contract wallet. For the case of a contract wallet, it MUST be determined it supports the entirety of the EIP-725 interface via a EIP-165 interfaceID `0xdc3d2a7b` or just the `keyHasPurpose` method as a subset of it using the EIP-165 interfaceID `0xd202158d`.\\r\\n5. The result of the actionable control check is returned as the result of the authentication and the flow is complete.\\r\\n\\r\\nA challenge message SHOULD contain a random component. This will reduce the risk of replay attacks.\\r\\n\\r\\nA challenge message SHOULD be generated by the dapp backend AND not get sent back as input from the dapp client, but be persisted in the backend for at least the entirety of the authentication process. This will remove the risk of accepting forged challenges.\\r\\n\\r\\nThe following algorithm MAY be used by dapp backend when authenticating users with personal signed messages:\\r\\n\\r\\n```\\r\\nFUNCTION isSignerActionableOnAddress(challengeString, signature, walletAddress) RETURNS (successFlag, errorMsg)\\r\\n\\r\\n SET challengeHash to the hash of: challengeString prepended with `\"\\\\x19Ethereum Signed Message:\\\\n\" + len(challengeString)`\\r\\n\\r\\n SET recoveredKey to the public key recovered from signature and challengeHash\\r\\n\\r\\n SET recoveredAddress to the address corresponding with recoveredKey\\r\\n\\r\\n // try external wallet\\r\\n IF walletAddress EQUALS recoveredAddress\\r\\n RETURN true, nil\\r\\n END IF\\r\\n\\r\\n // else try contract wallet\\r\\n SET isSupportedContract to TRUE IF walletAddress is a smart contract AND (has interfaceID 0xd202158d OR has interfaceID 0xdc3d2a7b)\\r\\n\\r\\n IF isSupportedContract resulted in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n IF isSupportedContract equals FALSE\\r\\n RETURN false, nil\\r\\n END IF\\r\\n\\r\\n SET keyHasActionPurpose to the result of calling a contract method keyHasPurpose with recoveredKey and ACTION parameters\\r\\n\\r\\n IF keyHasActionPurpose in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n RETURN keyHasActionPurpose, nil\\r\\n\\r\\nEND FUNCTION\\r\\n```\\r\\n\\r\\n### Wallet\\r\\n\\r\\n#### External wallet\\r\\nAny software agents managing external wallets are not required to make any changes to continue to work with this process.\\r\\n\\r\\n#### Contract wallet\\r\\n\\r\\n1. The contract MUST implement the [keyHasPurpose](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-725.md#keyhaspurpose) method as in EIP-725:\\r\\n\\r\\n ```Solidity\\r\\n function keyHasPurpose(bytes32 _key, uint256 purpose) constant returns(bool exists);\\r\\n ```\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `true` if a key is present AND it can perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `false` if a key is not present OR it cannot perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n2. The contract MUST implement the EIP-165 method:\\r\\n\\r\\n ```Solidity\\r\\n function supportsInterface(bytes4 interfaceID) external view returns (bool);\\r\\n ```\\r\\n\\r\\n It MUST return `true` if passed an `interfaceID` of `0xd202158d` OR `0xdc3d2a7b`. The former value represents a minimal subset of EIP-725 with just the `keyHasPurpose` method, while the later represents the full EIP-725 interface.\\r\\n\\r\\n## Rationale\\r\\n\\r\\nThere has been a great body of work in standardizing contracts wallets, namely https://github.com/ethereum/EIPs/issues/725. However, for the current process of dapp-wallet authentication, interfaces for claims and key management are not required. Instead, a single contract method and a modification for the current process suffices. The small surface area of this proposal should allow it to be easily compatible across different types of contract wallets.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\n- external wallets are backwards compatible with this process.\\r\\n- contract wallets with EIP-725 support, are compatible with this process without modification.\\r\\n- contract wallets without EIP-725 support must implement the proposed subset of EIP-725 to be compatible with this process.\\r\\n\\r\\n## Implementation\\r\\n\\r\\nPackages implementing the purposed algorithm: \\r\\n- Javascript: https://github.com/dapperlabs/dappauth.js\\r\\n- Go: https://github.com/dapperlabs/dappauth\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n\\r\\n---\\r\\nThanks to @dete @Arachnid @chrisaxiom @igorbarbashin @turbolent @jordanschalm @hwrdtm for feedback and suggestions'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447185503', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654#issuecomment-447185503', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'id': 447185503, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE4NTUwMw==', 'user': {'login': 'dete', 'id': 1195159, 'node_id': 'MDQ6VXNlcjExOTUxNTk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1195159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'html_url': 'https://github.com/dete', 'followers_url': 'https://api.github.com/users/dete/followers', 'following_url': 'https://api.github.com/users/dete/following{/other_user}', 'gists_url': 'https://api.github.com/users/dete/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dete/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dete/subscriptions', 'organizations_url': 'https://api.github.com/users/dete/orgs', 'repos_url': 'https://api.github.com/users/dete/repos', 'events_url': 'https://api.github.com/users/dete/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dete/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:51:34Z', 'updated_at': '2018-12-14T01:51:34Z', 'author_association': 'NONE', 'body': 'Thanks to @pazams for writing this up. We think that there are lots of good reasons to use smart contract wallets, even for individual users. Hopefully, lots of Dapps will make this simple change to make that use-case viable (as we will for [CryptoKitties](https://www.cryptokitties.co/)!).'}}, 'public': True, 'created_at': '2018-12-14T01:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752196298', 'type': 'WatchEvent', 'actor': {'id': 863281, 'login': 'zouguangxian', 'display_login': 'zouguangxian', 'gravatar_id': '', 'url': 'https://api.github.com/users/zouguangxian', 'avatar_url': 'https://avatars.githubusercontent.com/u/863281?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T01:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752181948', 'type': 'IssuesEvent', 'actor': {'id': 32337870, 'login': 'landedexperts', 'display_login': 'landedexperts', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'avatar_url': 'https://avatars.githubusercontent.com/u/32337870?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/322', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/322', 'id': 390931434, 'node_id': 'MDU6SXNzdWUzOTA5MzE0MzQ=', 'number': 322, 'title': 'Which pragma version for compiler 0.5.1+commit.c8a2cb62.Emscripten.clang', 'user': {'login': 'landedexperts', 'id': 32337870, 'node_id': 'MDQ6VXNlcjMyMzM3ODcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/32337870?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'html_url': 'https://github.com/landedexperts', 'followers_url': 'https://api.github.com/users/landedexperts/followers', 'following_url': 'https://api.github.com/users/landedexperts/following{/other_user}', 'gists_url': 'https://api.github.com/users/landedexperts/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/landedexperts/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/landedexperts/subscriptions', 'organizations_url': 'https://api.github.com/users/landedexperts/orgs', 'repos_url': 'https://api.github.com/users/landedexperts/repos', 'events_url': 'https://api.github.com/users/landedexperts/events{/privacy}', 'received_events_url': 'https://api.github.com/users/landedexperts/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:40:20Z', 'updated_at': '2018-12-14T01:40:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi,\\r\\n\\r\\nI am trying to compile the following SC:\\r\\n`pragma solidity ^0.5.1\\r\\n\\r\\ncontract x {\\r\\n\\tfunction f() {}\\r\\n};\\r\\n`\\r\\nin JavaScript using the following code:\\r\\n`const fs = require(\"fs\")\\r\\nconst solc = require(\"solc\")\\r\\n\\r\\nconst source = fs.readFileSync(\\'contract.sol\\', \"utf8\")\\r\\n\\r\\nconsole.log(source)\\r\\n\\r\\nconst compiled = solc.compile(JSON.stringify({\\r\\n\\tlanguage: \"Solidity\",\\r\\n\\tsources: {\\r\\n\\t\\t\"contract.sol\": {\\r\\n\\t\\t\\t\"content\": source\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\tsettings: {\\r\\n\\t\\toutputSelection: {\\r\\n\\t\\t\\t\"*\": {\\r\\n\\t\\t\\t\\t\"*\": [\"*\"]\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}))\\r\\n\\r\\nconsole.log(JSON.stringify(compiled))`\\r\\nin `package.json`, the versioning is `\"solc\": \"^0.5.0\"`, but I get the following error:\\r\\n`\"{\\\\\"contracts\\\\\":{},\\\\\"errors\\\\\":[{\\\\\"component\\\\\":\\\\\"general\\\\\",\\\\\"formattedMessage\\\\\":\\\\\"contract.sol:1:1: SyntaxError: Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\\\\npragma solidity ^0.5.1\\\\\\\\r\\\\\\\\n^ (Relevant source part starts here and spans across multiple\\r\\nlines).\\\\\\\\n\\\\\",\\\\\"message\\\\\":\\\\\"Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\",\\\\\"severity\\\\\":\\\\\"error\\\\\",\\\\\"sourceLocation\\\\\":{\\\\\"end\\\\\":60,\\\\\"file\\\\\":\\\\\"contract.sol\\\\\",\\\\\"start\\\\\":0},\\\\\"type\\\\\":\\\\\"SyntaxError\\\\\"}],\\\\\"sources\\\\\":{}}\"`\\r\\n\\r\\nSo I tried each `<=`, `<`, `>`, `>=` combined with each `0.5.1` and `0.5.0` but the same error shows up.\\r\\n\\r\\nSo which pragma version to use?\\r\\nMy guess is that the error comes from somewhere else, but I have no clue where.\\r\\nCan you help?\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T01:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752164638', 'type': 'PullRequestEvent', 'actor': {'id': 807580, 'login': 'SamuelMarks', 'display_login': 'SamuelMarks', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'avatar_url': 'https://avatars.githubusercontent.com/u/807580?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18308, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'id': 238585621, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'number': 18308, 'state': 'open', 'locked': False, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html', 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T01:35:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'head': {'label': 'SamuelMarks:go-1.11.3', 'ref': 'go-1.11.3', 'sha': 'c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 146245869, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDYyNDU4Njk=', 'name': 'go-ethereum', 'full_name': 'SamuelMarks/go-ethereum', 'private': False, 'owner': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SamuelMarks/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/SamuelMarks/go-ethereum', 'forks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/deployments', 'created_at': '2018-08-27T04:12:20Z', 'updated_at': '2018-12-14T01:29:02Z', 'pushed_at': '2018-12-14T01:34:35Z', 'git_url': 'git://github.com/SamuelMarks/go-ethereum.git', 'ssh_url': 'git@github.com:SamuelMarks/go-ethereum.git', 'clone_url': 'https://github.com/SamuelMarks/go-ethereum.git', 'svn_url': 'https://github.com/SamuelMarks/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107276, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 859, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18308'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T01:35:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752124781', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007', 'pull_request_review_id': 184938979, 'id': 241619007, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxOTAwNw==', 'diff_hunk': '@@ -751,6 +759,9 @@ func (p *Pss) enqueue(msg *PssMsg) error {\\n //\\n // Will fail if raw messages are disallowed\\n func (p *Pss) SendRaw(address PssAddress, topic Topic, msg []byte) error {\\n+\\tif !checkAddress(address) {\\n+\\t\\treturn errors.New(\"invalid address\")', 'path': 'swarm/pss/pss.go', 'position': 158, 'original_position': 158, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'll handle exported errors in separate PR\", 'created_at': '2018-12-14T01:23:16Z', 'updated_at': '2018-12-14T01:23:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241615168}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:23:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:23:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752123721', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962', 'pull_request_review_id': 184938921, 'id': 241618962, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODk2Mg==', 'diff_hunk': '@@ -30,6 +30,7 @@ import (\\n // asymmetrical key exchange between two directly connected peers\\n // full address, partial address (8 bytes) and empty address\\n func TestHandshake(t *testing.T) {\\n+\\tt.Skip(\"handshakes are not adapted to current pss core code\")', 'path': 'swarm/pss/handshake_test.go', 'position': 4, 'original_position': 4, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually I'm tempted to just throw the whole thing out...\", 'created_at': '2018-12-14T01:22:55Z', 'updated_at': '2018-12-14T01:22:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241614493}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:22:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:22:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752112582', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521', 'pull_request_review_id': 184938419, 'id': 241618521, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODUyMQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:', 'path': 'trinity/sync/common/headers.py', 'position': 528, 'original_position': 528, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Do you think we're still going the `black` route in the next few months? If so:\\r\\n\\r\\n1. I assume `black` will try to get as much as possible on one line\\r\\n2. Whatever we do now will be overwritten soon-ish\\r\\n\\r\\nI should really add something of significance to eth-utils to see how much it annoys me and if I want to object to using it. :smile: \", 'created_at': '2018-12-14T01:19:40Z', 'updated_at': '2018-12-14T01:19:40Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240770066}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:19:40Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:19:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752106571', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271', 'pull_request_review_id': 184938116, 'id': 241618271, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODI3MQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()', 'path': 'trinity/sync/common/headers.py', 'position': 497, 'original_position': 497, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1601 ', 'created_at': '2018-12-14T01:17:47Z', 'updated_at': '2018-12-14T01:17:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240769529}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:17:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:17:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752103378', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T01:16:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}}, 'public': True, 'created_at': '2018-12-14T01:16:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752093866', 'type': 'IssueCommentEvent', 'actor': {'id': 19257612, 'login': 'pakaplace', 'display_login': 'pakaplace', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'avatar_url': 'https://avatars.githubusercontent.com/u/19257612?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594', 'id': 382147100, 'node_id': 'MDU6SXNzdWUzODIxNDcxMDA=', 'number': 1594, 'title': 'ERC 1594: Core Security Token Standard', 'user': {'login': 'adamdossa', 'id': 2633913, 'node_id': 'MDQ6VXNlcjI2MzM5MTM=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2633913?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/adamdossa', 'html_url': 'https://github.com/adamdossa', 'followers_url': 'https://api.github.com/users/adamdossa/followers', 'following_url': 'https://api.github.com/users/adamdossa/following{/other_user}', 'gists_url': 'https://api.github.com/users/adamdossa/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/adamdossa/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/adamdossa/subscriptions', 'organizations_url': 'https://api.github.com/users/adamdossa/orgs', 'repos_url': 'https://api.github.com/users/adamdossa/repos', 'events_url': 'https://api.github.com/users/adamdossa/events{/privacy}', 'received_events_url': 'https://api.github.com/users/adamdossa/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-19T10:24:10Z', 'updated_at': '2018-12-14T01:13:56Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"---\\r\\n\\r\\neip: ERC-1594\\r\\ntitle: Core Security Token Standard (part of the ERC-1400 Security Token Standards)\\r\\nauthor: Adam Dossa (@adamdossa), Pablo Ruiz (@pabloruiz55), Fabian Vogelsteller (@frozeman), Stephane Gosselin (@thegostep)\\r\\ndiscussions-to: #1411\\r\\nstatus: Draft\\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\ncreated: 2018-09-09\\r\\nrequire: ERC-20 (#20), ERC-1066 (#1066)\\r\\n\\r\\n---\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nThis standard sits under the ERC-1400 (#1411) umbrella set of standards related to security tokens.\\r\\n\\r\\nProvides a standard to support off-chain injection of data into transfers / issuance / redemption and the ability to check the validity of a transfer distinct from it's execution.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nIncorporates error signalling, off-chain data injection and issuance / redemption semantics.\\r\\n\\r\\nThis standard inherits from ERC-20 (#20) and could be easily extended to meet the ERC-777 (#777) standard if needed.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nAccelerate the issuance and management of securities on the Ethereum blockchain by specifying a standard interface through which security tokens can be operated on and interrogated by all relevant parties.\\r\\n\\r\\nSecurity tokens differ materially from other token use-cases, with more complex interactions between off-chain and on-chain actors, and considerable regulatory scrutiny.\\r\\n\\r\\nThe ability to provide data (e.g. signed authorisation) alongside transfer, issuance and redemption functions allows security tokens to more flexibly implement transfer restrictions without depending on on-chain whitelists exclusively.\\r\\n\\r\\nUsing ERC-1066 (#1066) to provide reason codes as to why a transfer would fail, without requiring a user to actually try and execute a transfer, allows for improved UX and potentially saves gas on what would otherwise be failed transfers.\\r\\n\\r\\nFormalising issuance and redemption semantics (similar to minting / burning) provides visibility into the total supply of the token and how it has changed over time.\\r\\n\\r\\n## Requirements\\r\\n\\r\\nSee ERC-1400 (#1411) for a full set of requirements across the library of standards.\\r\\n\\r\\nThe following requirements have been compiled following discussions with parties across the Security Token ecosystem.\\r\\n\\r\\n- MUST have a standard interface to query if a transfer would be successful and return a reason for failure.\\r\\n- MUST emit standard events for issuance and redemption.\\r\\n- MAY require signed data to be passed into a transfer transaction in order to validate it on-chain.\\r\\n- SHOULD NOT restrict the range of asset classes across jurisdictions which can be represented.\\r\\n- MUST be ERC-20 (#20) compatible.\\r\\n- COULD be ERC-777 (#777) compatible.\\r\\n\\r\\n## Rationale\\r\\n\\r\\n### Transfer Restrictions\\r\\n\\r\\nTransfers of securities can fail for a variety of reasons in contrast to utility tokens which generally only require the sender to have a sufficient balance.\\r\\n\\r\\nThese conditions could be related to metadata of the securities being transferred (i.e. whether they are subject to a lock-up period), the identity of the sender and receiver of the securities (i.e. whether they have been through a KYC process, whether they are accredited or an affiliate of the issuer) or for reasons unrelated to the specific transfer but instead set at the token level (i.e. the token contract enforces a maximum number of investors or a cap on the percentage held by any single investor).\\r\\n\\r\\nFor ERC-20 / ERC-777 tokens, the `balanceOf` and `allowance` functions provide a way to check that a transfer is likely to succeed before executing the transfer, which can be executed both on and off-chain.\\r\\n\\r\\nFor tokens representing securities the standard introduces a function `canTransfer` which provides a more general purpose way to achieve this when the reasons for failure are more complex; and a function of the whole transfer (i.e. includes any data sent with the transfer and the receiver of the securities).\\r\\n\\r\\nIn order to support off-chain data inputs to transfer functions, transfer functions are extended to `transferWithData` / `transferFromWithData` which can optionally take an additional `bytes _data` parameter.\\r\\n\\r\\nIn order to provide a richer result than just true or false, a byte return code is returned. This allows us to give a reason for why the transfer failed, or at least which category of reason the failure was in. The ability to query documents and the expected success of a transfer is included in Security Token section.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Restricted Transfers\\r\\n\\r\\n#### canTransfer / canTransferFrom\\r\\n\\r\\nTransfers of securities may fail for a number of reasons, for example relating to:\\r\\n - the identity of the sender or receiver of the tokens\\r\\n - limits placed on the specific tokens being transferred (i.e. lockups on certain quantities of token)\\r\\n - limits related to the overall state of the token (i.e. total number of investors)\\r\\n\\r\\nThe standard provides an on-chain function to determine whether a transfer will succeed, and return details indicating the reason if the transfer is not valid.\\r\\n\\r\\nThese rules can either be defined using smart contracts and on-chain data, or rely on `_data` passed as part of the `transferWithData` function which could represent authorisation for the transfer (e.g. a signed message by a transfer agent attesting to the validity of this specific transfer).\\r\\n\\r\\nThe function will return both a ESC (Ethereum Status Code) following the EIP-1066 standard, and an additional `bytes32` parameter that can be used to define application specific reason codes with additional details (for example the transfer restriction rule responsible for making the transfer operation invalid).\\r\\n\\r\\nIf `bytes _data` is empty, then this corresponds to a check on whether a `transfer` (or `transferFrom`) request will succeed, if `bytes _data` is populated, then this corresponds to a check on `transferWithData` (or `transferFromWithData`) will succeed.\\r\\n\\r\\n`canTransfer` assumes the sender of tokens is `msg.sender` and will be executed via `transfer` or `transferWithData` whereas `canTransferFrom` allows the specification of the sender of tokens and that the transfer will be executed via `transferFrom` or `transferFromWithData`.\\r\\n\\r\\n``` solidity\\r\\nfunction canTransfer(address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\nfunction canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\n```\\r\\n\\r\\n#### transferWithData\\r\\n\\r\\nTransfer restrictions can take many forms and typically involve on-chain rules or whitelists. However for many types of approved transfers, maintaining an on-chain list of approved transfers can be cumbersome and expensive. An alternative is the co-signing approach, where in addition to the token holder approving a token transfer, and authorised entity provides signed data which further validates the transfer.\\r\\n\\r\\nThe `bytes _data` allows arbitrary data to be submitted alongside the transfer, for the token contract to interpret or record. This could be signed data authorising the transfer (e.g. a dynamic whitelist) but is flexible enough to accomadate other use-cases.\\r\\n\\r\\n`transferWithData` MUST emit a `Transfer` event with details of the transfer.\\r\\n\\r\\n``` solidity\\r\\nfunction transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### transferFromWithData\\r\\n\\r\\nThis is the analogy to the `transferWithData` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\n``` solidity\\r\\nfunction transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Issuance\\r\\n\\r\\n#### isIssuable\\r\\n\\r\\nA security token issuer can specify that issuance has finished for the token (i.e. no new tokens can be minted or issued).\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST always return FALSE in the future.\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST never allow additional tokens to be issued.\\r\\n\\r\\n``` solidity\\r\\nfunction isIssuable() external view returns (bool);\\r\\n```\\r\\n\\r\\n#### issue\\r\\n\\r\\nThis function must be called to increase the total supply.\\r\\n\\r\\nThe `bytes _data` parameter can be used to inject off-chain data (e.g. signed data) to authorise or authenticate the issuance and receiver of issued tokens.\\r\\n\\r\\nWhen called, this function MUST emit the `Issued` event.\\r\\n\\r\\n``` solidity\\r\\nfunction issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Redemption\\r\\n\\r\\n#### redeem\\r\\n\\r\\nAllows a token holder to redeem tokens.\\r\\n\\r\\nThe redeemed tokens must be subtracted from the total supply and the balance of the token holder. The token redemption should act like sending tokens and be subject to the same conditions.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\nAs with `transferWithData` this function has a `bytes _data` parameter that can be used in the token contract to authenticate the redemption.\\r\\n\\r\\n``` solidity\\r\\nfunction redeem(uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### redeemFrom\\r\\n\\r\\nThis is the analogy to the `redeem` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\n``` solidity\\r\\nfunction redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n## Interface\\r\\n\\r\\n``` solidity\\r\\n/// @title IERC1594 Security Token Standard\\r\\n/// @dev See https://github.com/SecurityTokenStandard/EIP-Spec\\r\\n\\r\\ninterface IERC1594 is IERC20 {\\r\\n\\r\\n // Transfers\\r\\n function transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n function transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Issuance\\r\\n function isIssuable() external view returns (bool);\\r\\n function issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Redemption\\r\\n function redeem(uint256 _value, bytes _data) external;\\r\\n function redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Transfer Validity\\r\\n function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n function canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n\\r\\n // Issuance / Redemption Events\\r\\n event Issued(address indexed _operator, address indexed _to, uint256 _value, bytes _data);\\r\\n event Redeemed(address indexed _operator, address indexed _from, uint256 _value, bytes _data);\\r\\n\\r\\n}\\r\\n```\\r\\n\\r\\n## References\\r\\n- [EIP 1400: Security Token Standard With Partitions](https://github.com/ethereum/EIPs/issues/1411)\\r\\n- [EIP Draft](https://github.com/SecurityTokenStandard/EIP-Spec)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447178846', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594#issuecomment-447178846', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'id': 447178846, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3ODg0Ng==', 'user': {'login': 'pakaplace', 'id': 19257612, 'node_id': 'MDQ6VXNlcjE5MjU3NjEy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/19257612?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'html_url': 'https://github.com/pakaplace', 'followers_url': 'https://api.github.com/users/pakaplace/followers', 'following_url': 'https://api.github.com/users/pakaplace/following{/other_user}', 'gists_url': 'https://api.github.com/users/pakaplace/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pakaplace/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pakaplace/subscriptions', 'organizations_url': 'https://api.github.com/users/pakaplace/orgs', 'repos_url': 'https://api.github.com/users/pakaplace/repos', 'events_url': 'https://api.github.com/users/pakaplace/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pakaplace/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:13:56Z', 'updated_at': '2018-12-14T01:13:56Z', 'author_association': 'NONE', 'body': 'Great work @adamdossa . We\\'re pretty in line with this design at Meridio, and the community\\'s decomposition of 1400. A few comments around issuance/redemption as part of the standard:\\r\\n* If issuance/redemption is part of the required interface and `isIssuable()` is defined, then shouldn\\'t a`finishIssuance()` function be included in the standard? Even if you deem its inclusion out of the scope of an interface, I think it would help explain a non-intuitive concept for readers of the standard. \\r\\n* Curious to hear why \"issue\" and \"redeem\" were chosen terminology given the prominence of \"mint\" and \"burn.\" I understand it may be more in line with industry terminology, but on the other hand I would argue \"redemption\" does not imply convey burn/destroy-tokens functionality at first glance. \\r\\n* I\\'m still hesitant to vie for 1066 status codes in a core standard given their WIP status. Including a `Bool` as the first returned variable of `canTransfer()` would be much easier to implement and adopt, and it would still allow people to query transfer success. With a `bool` as a first parameter, you could still allow for optional 1066 and application specific status codes. Dependency on 1066 comes with an uncertain ETA for completion, and security token projects are going to market **soon**.\\r\\n \\r\\ni.e. ```function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool success, byte statusCode, bytes32 reason);```\\r\\n\\r\\n\\r\\nA peer at Meridio (Asha Dakshi) pointed out that from an audit perspective, `controllerTransfer` might be preferable for fund recovery, since events could be emitted on `controllerTransfer` would show matching debits/credits and sender/recipient. Not sure if `controllerTransfer()` should necessarily be part of the base standard, but I guess the same could be argued for issuance/redemption. In either case, I\\'m okay with this being in the standard. The implementation decision should probably be left to the issuer and regulator. @0age interested to hear your thoughts on this. '}}, 'public': True, 'created_at': '2018-12-14T01:13:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752079953', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077', 'pull_request_review_id': 184936758, 'id': 241617077, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNzA3Nw==', 'diff_hunk': '@@ -0,0 +1,67 @@\\n+from asyncio import (\\n+ PriorityQueue,\\n+)\\n+from typing import (\\n+ Generic,\\n+ Type,\\n+ TypeVar,\\n+)\\n+\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+\\n+from p2p.protocol import Command\\n+\\n+from trinity.protocol.common.peer import BaseChainPeer\\n+from trinity.utils.datastructures import (\\n+ SortableTask,\\n+)\\n+\\n+TChainPeer = TypeVar(\\'TChainPeer\\', bound=BaseChainPeer)\\n+\\n+\\n+class WaitingPeers(Generic[TChainPeer]):\\n+ \"\"\"\\n+ Peers waiting to perform some action. When getting a peer from this queue,\\n+ prefer the peer with the best throughput for the given command.\\n+ \"\"\"\\n+ _waiting_peers: \\'PriorityQueue[SortableTask[TChainPeer]]\\'\\n+\\n+ def __init__(self, response_command_type: Type[Command]) -> None:\\n+ self._waiting_peers = PriorityQueue()\\n+ self._response_command_type = response_command_type\\n+ self._peer_wrapper = SortableTask.orderable_by_func(self._ranked_peer)\\n+\\n+ def _ranked_peer(self, peer: TChainPeer) -> float:\\n+ relevant_throughputs = [\\n+ exchange.tracker.items_per_second_ema.value\\n+ for exchange in peer.requests\\n+ if issubclass(exchange.response_cmd_type, self._response_command_type)\\n+ ]\\n+\\n+ if len(relevant_throughputs) == 0:\\n+ raise ValidationError(\\n+ f\"Could not find any exchanges on {peer} \"\\n+ f\"with response {self._response_command_type!r}\"\\n+ )\\n+\\n+ avg_throughput = sum(relevant_throughputs) / len(relevant_throughputs)', 'path': 'trinity/sync/common/peers.py', 'position': 49, 'original_position': 49, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Right, and other than `mypy` complaining, `response_command_type` could theoretically be a tuple if you really wanted to average throughput across a couple different commands.', 'created_at': '2018-12-14T01:09:56Z', 'updated_at': '2018-12-14T01:09:56Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240776544}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:09:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752074277', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819', 'pull_request_review_id': 184936426, 'id': 241616819, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjgxOQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:\\n+ \"\"\"\\n+ :param parent_header: the parent of the gap to fill\\n+ :param gap_length: how long is the header gap\\n+ :param skeleton_peer: the peer that provided the parent_header - will not use to fill gaps\\n+ \"\"\"\\n+ await self.wait(self._filler_header_tasks.add((\\n+ (parent_header, gap_length, skeleton_peer),\\n+ )))\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ with self.subscribe(self._peer_pool):\\n+ await self.wait(self._match_header_dls_to_peers())\\n+\\n+ async def _display_stats(self) -> None:\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\\n+ \"(in progress, queued, max size) of header filler gaps: %r\",\\n+ [(q.num_in_progress(), len(q), q._maxsize) for q in (\\n+ self._filler_header_tasks,\\n+ )],\\n+ )\\n+\\n+ async def _match_header_dls_to_peers(self) -> None:\\n+ while self.is_operational:\\n+ batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ) = await self._filler_header_tasks.get(1)\\n+\\n+ await self._match_dl_to_peer(batch_id, parent_header, gap, skeleton_peer)\\n+\\n+ async def _match_dl_to_peer(\\n+ self,\\n+ batch_id: int,\\n+ parent_header: BlockHeader,\\n+ gap: int,\\n+ skeleton_peer: TChainPeer) -> None:\\n+ def fail_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, tuple())\\n+\\n+ peer = await self._waiting_peers.get_fastest()\\n+\\n+ def complete_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ))\\n+ self.run_task(self._run_fetch_segment(peer, parent_header, gap, complete_task, fail_task))\\n+\\n+ async def _run_fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int,\\n+ complete_task: Callable[[], None],\\n+ fail_task: Callable[[], None]) -> None:\\n+ # If there is an exception during _fetch_segment, prepare to mark the task as finished\\n+ # with no headers collected:\\n+ completed_headers: Tuple[BlockHeader, ...] = tuple()\\n+ try:\\n+ completed_headers = await peer.wait(self._fetch_segment(peer, parent_header, length))\\n+ except BaseP2PError as exc:\\n+ self.logger.info(\"Unexpected p2p err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ except OperationCancelled:\\n+ self.logger.debug(\\n+ \"Service cancellation while fetching segment, dropping %s from queue\",\\n+ peer,\\n+ exc_info=True,\\n+ )\\n+ fail_task()\\n+ raise\\n+ except Exception as exc:\\n+ self.logger.info(\"Unexpected err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ else:\\n+ if len(completed_headers) == length:\\n+ # peer completed successfully, so have it get back in line for processing\\n+ self._waiting_peers.put_nowait(peer)\\n+ complete_task()\\n+ else:\\n+ # peer didn\\'t return enough results, wait a while before trying again\\n+ delay = EMPTY_PEER_RESPONSE_PENALTY\\n+ self.logger.debug(\\n+ \"Pausing %s for %.1fs, for sending %d headers\",\\n+ peer,\\n+ delay,\\n+ len(completed_headers),\\n+ )\\n+ self.call_later(delay, self._waiting_peers.put_nowait, peer)\\n+ fail_task()\\n+\\n+ async def _fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int) -> Tuple[BlockHeader, ...]:\\n+ if length > peer.max_headers_fetch:\\n+ raise ValidationError(\\n+ f\"Can\\'t request {length} headers, because peer maximum is {peer.max_headers_fetch}\"\\n+ )\\n+ headers = await self._request_headers(peer, parent_header.block_number + 1, length)\\n+ if not headers:\\n+ return tuple()\\n+ elif headers[0].parent_hash != parent_header.hash:\\n+ # Segment doesn\\'t match leading peer, drop this peer\\n+ # Eventually, we\\'ll do something smarter, in case the leading peer is the divergent one\\n+ self.logger.warning(\\n+ \"%s returned segment starting %s & parent %s, doesn\\'t match %s, ignoring result...\",\\n+ peer,\\n+ headers[0],\\n+ headers[0].parent_hash,\\n+ parent_header,\\n+ )\\n+ return tuple()\\n+ elif len(headers) != length:\\n+ self.logger.debug(\\n+ \"Ignoring %d headers from %s, because wanted %d\",\\n+ len(headers),\\n+ peer,\\n+ length,\\n+ )\\n+ return tuple()\\n+ else:\\n+ try:\\n+ await self._chain.coro_validate_chain(\\n+ parent_header,\\n+ headers,\\n+ SEAL_CHECK_RANDOM_SAMPLE_RATE,\\n+ )\\n+ except ValidationError as e:\\n+ self.logger.warning(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+ else:\\n+ # stitch headers together in order, ignoring duplicates\\n+ try:\\n+ self._stitcher.register_tasks(headers)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in headers if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)\\n+\\n+ return headers\\n+\\n+ async def _request_headers(\\n+ self, peer: TChainPeer, start_at: BlockNumber, length: int) -> Tuple[BlockHeader, ...]:\\n+ self.logger.debug(\"Requesting %d headers from %s\", length, peer)\\n+ try:\\n+ return await peer.requests.get_block_headers(start_at, length, skip=0, reverse=False)\\n+ except TimeoutError as err:\\n+ self.logger.debug(\"Timed out requesting %d headers from %s\", length, peer)\\n+ return tuple()\\n+ except CancelledError:\\n+ self.logger.debug(\"Pending headers call to %r future cancelled\", peer)\\n+ return tuple()\\n+ except OperationCancelled:\\n+ self.logger.debug2(\"Pending headers call to %r operation cancelled\", peer)\\n+ return tuple()\\n+ except PeerConnectionLost:\\n+ self.logger.debug(\"Peer went away, cancelling the headers request and moving on...\")\\n+ return tuple()\\n+ except Exception:\\n+ self.logger.exception(\"Unknown error when getting headers\")\\n+ raise\\n+\\n+\\n+class BaseHeaderChainSyncer(BaseService, HeaderSyncerAPI, Generic[TChainPeer]):\\n+ \"\"\"\\n+ Generate a skeleton header, then use all peers to fill in the headers\\n+ returned by the skeleton syncer.\\n+ \"\"\"\\n+ _meat: HeaderMeatSyncer[TChainPeer]\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer_pool: BaseChainPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(token)\\n+ self._db = db\\n+ self._chain = chain\\n+ self._peer_pool = peer_pool\\n+ self._tip_monitor = self.tip_monitor_class(peer_pool, token=self.cancel_token)\\n+ self._skeleton: SkeletonSyncer[TChainPeer] = None\\n+ # stitch together headers as they come in\\n+ self._stitcher = OrderedTaskPreparation(\\n+ # we don\\'t have to do any prep work on the headers, just linearize them, so empty enum\\n+ OrderedTaskPreparation.NoPrerequisites,\\n+ id_extractor=attrgetter(\\'hash\\'),\\n+ # make sure that a header is not returned in new_sync_headers until its parent has been\\n+ dependency_extractor=attrgetter(\\'parent_hash\\'),\\n+ # headers will come in out of order\\n+ accept_dangling_tasks=True,\\n+ )\\n+ # When downloading the headers into the gaps left by the syncer, they must be linearized\\n+ # by the stitcher\\n+ self._meat = HeaderMeatSyncer(chain, peer_pool, self._stitcher, token)\\n+ self._last_target_header_hash: Hash32 = None\\n+\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational:\\n+ next_header_batch = await self.wait(self._stitcher.ready_tasks())\\n+ yield cast(Tuple[BlockHeader, ...], next_header_batch)\\n+\\n+ def get_target_header_hash(self) -> Hash32:\\n+ if not self._is_syncing_skeleton and self._last_target_header_hash is None:\\n+ raise ValidationError(\"Cannot check the target hash before the first sync has started\")\\n+ elif self._is_syncing_skeleton:\\n+ return self._skeleton.peer.head_hash\\n+ else:\\n+ return self._last_target_header_hash\\n+\\n+ @property\\n+ @abstractmethod\\n+ def tip_monitor_class(self) -> Type[BaseChainTipMonitor]:\\n+ pass\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon(self._tip_monitor)\\n+ self.run_daemon(self._meat)\\n+ await self.wait(self._build_skeleton())\\n+\\n+ async def _build_skeleton(self) -> None:\\n+ \"\"\"\\n+ Find best peer to build a skeleton, and build it immediately\\n+ \"\"\"\\n+ # iterator yields the peer with the highest TD in our pool\\n+ async for peer in self._tip_monitor.wait_tip_info():\\n+ try:\\n+ await self._validate_peer_is_ahead(peer)\\n+ except _PeerBehind:\\n+ self.logger.info(\"At or behind peer %s, skipping skeleton sync\", peer)\\n+ else:\\n+ async with self._get_skeleton_syncer(peer) as syncer:\\n+ await self._full_skeleton_sync(syncer)\\n+\\n+ @asynccontextmanager\\n+ async def _get_skeleton_syncer(\\n+ self, peer: TChainPeer) -> AsyncIterator[SkeletonSyncer[TChainPeer]]:\\n+ if self._is_syncing_skeleton:\\n+ raise ValidationError(\"Cannot sync skeleton headers from two peers at the same time\")\\n+\\n+ self._skeleton = SkeletonSyncer(\\n+ self._chain,\\n+ self._db,\\n+ peer,\\n+ self.cancel_token,\\n+ )\\n+ self.run_child_service(self._skeleton)\\n+ await self._skeleton.events.started.wait()\\n+ try:\\n+ yield self._skeleton\\n+ except OperationCancelled:\\n+ pass\\n+ else:\\n+ if self._skeleton.is_operational:\\n+ self._skeleton.cancel_nowait()\\n+ finally:\\n+ self.logger.info(\"Skeleton sync with %s ended\", peer)\\n+ self._last_target_header_hash = peer.head_hash\\n+ self._skeleton = None\\n+\\n+ @property\\n+ def _is_syncing_skeleton(self) -> bool:\\n+ return self._skeleton is not None\\n+\\n+ async def _full_skeleton_sync(self, skeleton_syncer: SkeletonSyncer[TChainPeer]) -> None:\\n+ skeleton_generator = skeleton_syncer.next_skeleton_segment()\\n+ try:\\n+ first_segment = await skeleton_generator.__anext__()\\n+ except StopAsyncIteration:\\n+ self.logger.debug(\\n+ \"Skeleton %s was cancelled before first header was returned\",\\n+ skeleton_syncer.peer,\\n+ )\\n+ return\\n+\\n+ self.logger.debug(\\n+ \"Skeleton syncer asserts that parent (%s) of the first header (%s) is already present\",\\n+ first_segment[0].parent_hash,\\n+ first_segment[0],\\n+ )\\n+ first_parent = await self._db.coro_get_block_header_by_hash(first_segment[0].parent_hash)\\n+ try:\\n+ self._stitcher.set_finished_dependency(first_parent)\\n+ except DuplicateTasks:\\n+ # the first header of this segment was already registered: no problem, carry on\\n+ pass\\n+\\n+ try:\\n+ self._stitcher.register_tasks(first_segment)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in first_segment if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)', 'path': 'trinity/sync/common/headers.py', 'position': 826, 'original_position': 826, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1600', 'created_at': '2018-12-14T01:08:09Z', 'updated_at': '2018-12-14T01:08:09Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240775432}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:08:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752073306', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1600, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600', 'id': 238581722, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTgxNzIy', 'html_url': 'https://github.com/ethereum/py-evm/pull/1600', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1600.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1600.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600', 'number': 1600, 'state': 'open', 'locked': False, 'title': 'Option to ignore duplicates in OrderedTaskPreparation', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nSome use cases are totally fine with duplicates in `OrderedTaskPreparation`, but they have a bit of boilerplate to overcome the dups.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nAdd option to drop duplicates when registering tasks.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://theawesomedaily.com/wp-content/uploads/2014/10/cute-animals-twins-14.jpg)', 'created_at': '2018-12-14T01:07:50Z', 'updated_at': '2018-12-14T01:07:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'head': {'label': 'carver:task-prep-duplicates', 'ref': 'task-prep-duplicates', 'sha': '0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1600'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 26, 'deletions': 7, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:07:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752058628', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095', 'pull_request_review_id': 184935511, 'id': 241616095, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjA5NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lint reports also https://travis-ci.org/ethereum/go-ethereum/jobs/467536235#L514', 'created_at': '2018-12-14T01:03:16Z', 'updated_at': '2018-12-14T01:03:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241613965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:03:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752053738', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850', 'pull_request_review_id': 184935233, 'id': 241615850, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTg1MA==', 'diff_hunk': '@@ -1034,3 +1047,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr *PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': None, 'original_position': 63, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '05eae4f31250d085602a86074dd278a8861fb567', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'should be the same way as proposed for `checkMsg`', 'created_at': '2018-12-14T01:01:44Z', 'updated_at': '2018-12-14T01:01:45Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241387376}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:01:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:01:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051108', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508', 'pull_request_review_id': 184933055, 'id': 241615508, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTUwOA==', 'diff_hunk': '@@ -1034,3 +1039,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': 209, 'original_position': 209, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'better return the (exported) error here where it belongs\\r\\n\\r\\n```golang\\r\\nfunc validate(addr PssAddress) error \\r\\n```', 'created_at': '2018-12-14T00:59:27Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703', 'pull_request_review_id': 184933055, 'id': 241615703, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTcwMw==', 'diff_hunk': '@@ -1008,6 +1008,34 @@ func TestRawAllow(t *testing.T) {\\n \\t}\\n }\\n \\n+// BELOW HERE ARE TESTS USING THE SIMULATION FRAMEWORK\\n+\\n+// tests that the API layer can handle edge case values\\n+func TestApi(t *testing.T) {\\n+\\tclients, err := setupNetwork(2, true)\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\ttopic := \"0xdeadbeef\"\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0x\", topic, \"0x666f6f\")\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0xabcdef\", topic, \"0x\")\\n+\\tif err == nil {\\n+\\t\\tt.Fatal(\"expected error on empty msg\")\\n+\\t}\\n+\\n+\\toverflowAddr := [33]byte{}\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", hexutil.Encode(overflowAddr[:]), topic, \"0x666f6f\")\\n+\\tif err == nil {', 'path': 'swarm/pss/pss_test.go', 'position': 74, 'original_position': 74, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lets check the actual error returned', 'created_at': '2018-12-14T01:00:41Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:00:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051104', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965', 'pull_request_review_id': 184933055, 'id': 241613965, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxMzk2NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'redundant. `len(msg) == 0 ` covers the nil case too. ', 'created_at': '2018-12-14T00:49:53Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:49:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751989838', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'id': 390917644, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'number': 317, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:41:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447173057', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317#issuecomment-447173057', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'id': 447173057, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3MzA1Nw==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:41:50Z', 'updated_at': '2018-12-14T00:41:50Z', 'author_association': 'CONTRIBUTOR', 'body': 'One aesthetic change I think we should consider is switching the `get_effective_balance` function to just take the state as an argument instead of (as in this PR right now) the validator balance entry. I could see future changes that use parts of the validator registry entry as well as the balance entry to calculate the effective balance, so we may as well just make grab all the data it needs from the state.'}}, 'public': True, 'created_at': '2018-12-14T00:41:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751984020', 'type': 'PushEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136352433, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/vbuterin-patch-15', 'head': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'before': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'commits': [{'sha': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Some bugfixes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/964395c362f90cfed2cda1224ea6587d01e8d80b'}]}, 'public': True, 'created_at': '2018-12-14T00:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751978095', 'type': 'ForkEvent', 'actor': {'id': 34241240, 'login': 'lostjcwide', 'display_login': 'lostjcwide', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'avatar_url': 'https://avatars.githubusercontent.com/u/34241240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161711418, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTE0MTg=', 'name': 'go-ethereum', 'full_name': 'lostjcwide/go-ethereum', 'private': False, 'owner': {'login': 'lostjcwide', 'id': 34241240, 'node_id': 'MDQ6VXNlcjM0MjQxMjQw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/34241240?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'html_url': 'https://github.com/lostjcwide', 'followers_url': 'https://api.github.com/users/lostjcwide/followers', 'following_url': 'https://api.github.com/users/lostjcwide/following{/other_user}', 'gists_url': 'https://api.github.com/users/lostjcwide/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lostjcwide/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lostjcwide/subscriptions', 'organizations_url': 'https://api.github.com/users/lostjcwide/orgs', 'repos_url': 'https://api.github.com/users/lostjcwide/repos', 'events_url': 'https://api.github.com/users/lostjcwide/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lostjcwide/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/lostjcwide/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/lostjcwide/go-ethereum', 'forks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/deployments', 'created_at': '2018-12-14T00:38:08Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/lostjcwide/go-ethereum.git', 'ssh_url': 'git@github.com:lostjcwide/go-ethereum.git', 'clone_url': 'https://github.com/lostjcwide/go-ethereum.git', 'svn_url': 'https://github.com/lostjcwide/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:38:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751969024', 'type': 'ForkEvent', 'actor': {'id': 32267442, 'login': 'tootooquan', 'display_login': 'tootooquan', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'avatar_url': 'https://avatars.githubusercontent.com/u/32267442?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161711222, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTEyMjI=', 'name': 'wiki', 'full_name': 'tootooquan/wiki', 'private': False, 'owner': {'login': 'tootooquan', 'id': 32267442, 'node_id': 'MDQ6VXNlcjMyMjY3NDQy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/32267442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'html_url': 'https://github.com/tootooquan', 'followers_url': 'https://api.github.com/users/tootooquan/followers', 'following_url': 'https://api.github.com/users/tootooquan/following{/other_user}', 'gists_url': 'https://api.github.com/users/tootooquan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tootooquan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tootooquan/subscriptions', 'organizations_url': 'https://api.github.com/users/tootooquan/orgs', 'repos_url': 'https://api.github.com/users/tootooquan/repos', 'events_url': 'https://api.github.com/users/tootooquan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tootooquan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/tootooquan/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/tootooquan/wiki', 'forks_url': 'https://api.github.com/repos/tootooquan/wiki/forks', 'keys_url': 'https://api.github.com/repos/tootooquan/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/tootooquan/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/tootooquan/wiki/teams', 'hooks_url': 'https://api.github.com/repos/tootooquan/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/tootooquan/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/tootooquan/wiki/events', 'assignees_url': 'https://api.github.com/repos/tootooquan/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/tootooquan/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/tootooquan/wiki/tags', 'blobs_url': 'https://api.github.com/repos/tootooquan/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/tootooquan/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/tootooquan/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/tootooquan/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/tootooquan/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/tootooquan/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/tootooquan/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/tootooquan/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/tootooquan/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/tootooquan/wiki/subscription', 'commits_url': 'https://api.github.com/repos/tootooquan/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/tootooquan/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/tootooquan/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/tootooquan/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/tootooquan/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/tootooquan/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/tootooquan/wiki/merges', 'archive_url': 'https://api.github.com/repos/tootooquan/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/tootooquan/wiki/downloads', 'issues_url': 'https://api.github.com/repos/tootooquan/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/tootooquan/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/tootooquan/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/tootooquan/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/tootooquan/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/tootooquan/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/tootooquan/wiki/deployments', 'created_at': '2018-12-14T00:35:13Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/tootooquan/wiki.git', 'ssh_url': 'git@github.com:tootooquan/wiki.git', 'clone_url': 'https://github.com/tootooquan/wiki.git', 'svn_url': 'https://github.com/tootooquan/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:35:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949703', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 317, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'id': 238576035, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'number': 317, 'state': 'open', 'locked': False, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:29:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'head': {'label': 'ethereum:vbuterin-patch-15', 'ref': 'vbuterin-patch-15', 'sha': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/317'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 47, 'deletions': 54, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:29:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949477', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-15', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:29:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751924428', 'type': 'WatchEvent', 'actor': {'id': 9455140, 'login': 'BITjiangrui', 'display_login': 'BITjiangrui', 'gravatar_id': '', 'url': 'https://api.github.com/users/BITjiangrui', 'avatar_url': 'https://avatars.githubusercontent.com/u/9455140?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:21:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751892952', 'type': 'ForkEvent', 'actor': {'id': 40443354, 'login': 'akkaorig', 'display_login': 'akkaorig', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'avatar_url': 'https://avatars.githubusercontent.com/u/40443354?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161709668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MDk2Njg=', 'name': 'wiki', 'full_name': 'akkaorig/wiki', 'private': False, 'owner': {'login': 'akkaorig', 'id': 40443354, 'node_id': 'MDQ6VXNlcjQwNDQzMzU0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/40443354?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'html_url': 'https://github.com/akkaorig', 'followers_url': 'https://api.github.com/users/akkaorig/followers', 'following_url': 'https://api.github.com/users/akkaorig/following{/other_user}', 'gists_url': 'https://api.github.com/users/akkaorig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/akkaorig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/akkaorig/subscriptions', 'organizations_url': 'https://api.github.com/users/akkaorig/orgs', 'repos_url': 'https://api.github.com/users/akkaorig/repos', 'events_url': 'https://api.github.com/users/akkaorig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/akkaorig/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/akkaorig/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/akkaorig/wiki', 'forks_url': 'https://api.github.com/repos/akkaorig/wiki/forks', 'keys_url': 'https://api.github.com/repos/akkaorig/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/akkaorig/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/akkaorig/wiki/teams', 'hooks_url': 'https://api.github.com/repos/akkaorig/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/akkaorig/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/akkaorig/wiki/events', 'assignees_url': 'https://api.github.com/repos/akkaorig/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/akkaorig/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/akkaorig/wiki/tags', 'blobs_url': 'https://api.github.com/repos/akkaorig/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/akkaorig/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/akkaorig/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/akkaorig/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/akkaorig/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/akkaorig/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/akkaorig/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/akkaorig/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/akkaorig/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/akkaorig/wiki/subscription', 'commits_url': 'https://api.github.com/repos/akkaorig/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/akkaorig/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/akkaorig/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/akkaorig/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/akkaorig/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/akkaorig/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/akkaorig/wiki/merges', 'archive_url': 'https://api.github.com/repos/akkaorig/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/akkaorig/wiki/downloads', 'issues_url': 'https://api.github.com/repos/akkaorig/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/akkaorig/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/akkaorig/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/akkaorig/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/akkaorig/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/akkaorig/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/akkaorig/wiki/deployments', 'created_at': '2018-12-14T00:11:33Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/akkaorig/wiki.git', 'ssh_url': 'git@github.com:akkaorig/wiki.git', 'clone_url': 'https://github.com/akkaorig/wiki.git', 'svn_url': 'https://github.com/akkaorig/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:11:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751888250', 'type': 'WatchEvent', 'actor': {'id': 168240, 'login': 'miguelmota', 'display_login': 'miguelmota', 'gravatar_id': '', 'url': 'https://api.github.com/users/miguelmota', 'avatar_url': 'https://avatars.githubusercontent.com/u/168240?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:10:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751876088', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 103953670, 'name': 'ethereum/snake-charmers-tactical-manual', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual'}, 'payload': {'action': 'opened', 'number': 32, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32', 'id': 238572554, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTU0', 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32', 'diff_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32', 'number': 32, 'state': 'open', 'locked': False, 'title': 'Add link to release file in README', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Forgot the push to master step originally. Also added link to the readme.', 'created_at': '2018-12-14T00:06:41Z', 'updated_at': '2018-12-14T00:06:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'head': {'label': 'kclowes:edit-release-docs', 'ref': 'edit-release-docs', 'sha': '781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 157785913, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTc3ODU5MTM=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'kclowes/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/deployments', 'created_at': '2018-11-15T23:33:08Z', 'updated_at': '2018-11-15T23:33:10Z', 'pushed_at': '2018-12-14T00:01:33Z', 'git_url': 'git://github.com/kclowes/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:kclowes/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/kclowes/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 39, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dcdfa5c8345876b6bab867f1d1736a8fdc3cde4a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 103953670, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMDM5NTM2NzA=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'ethereum/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/deployments', 'created_at': '2017-09-18T15:00:44Z', 'updated_at': '2018-12-12T19:12:49Z', 'pushed_at': '2018-12-12T19:12:47Z', 'git_url': 'git://github.com/ethereum/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 57, 'stargazers_count': 28, 'watchers_count': 28, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 11, 'mirror_url': None, 'archived': False, 'open_issues_count': 15, 'license': None, 'forks': 11, 'open_issues': 15, 'watchers': 28, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T00:06:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751875553', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300', 'id': 390356377, 'node_id': 'MDU6SXNzdWUzOTAzNTYzNzc=', 'number': 300, 'title': 'Add aggregation description to BLS document', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:39:12Z', 'updated_at': '2018-12-14T00:06:32Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '- [ ] Add `aggregate_pubkeys` function description\\r\\n- [ ] Add `aggregate_signatures` function description\\r\\n- [ ] Rename `bls_verify.md` -> `bls_signature.md`\\r\\n\\r\\n\\r\\nTBD:\\r\\n* Add more description: BLS signature scheme for Ethereum 2.0: Aggregate and Multi-Signatures based on BLS (Boneh–Lynn–Shacham) over BLS12-381.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447166455', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300#issuecomment-447166455', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'id': 447166455, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2NjQ1NQ==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:06:32Z', 'updated_at': '2018-12-14T00:06:32Z', 'author_association': 'CONTRIBUTOR', 'body': 'Addressed with https://github.com/ethereum/eth2.0-specs/pull/316'}}, 'public': True, 'created_at': '2018-12-14T00:06:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874995', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 316, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T00:06:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:06:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874194', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-13', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:06:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751821039', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3136263998, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'before': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'commits': [{'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Add a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}, {'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Change readthedocs yaml to build from latest image\\n\\nSupport python >=3.5.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/62448d0858e80d3e8bad219f4669360249a1031c'}, {'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1162 from kclowes/add-rtd-yml\\n\\nAdd a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/911e2a4842b8b5cda51cc312df55a329881b6dc7'}]}, 'public': True, 'created_at': '2018-12-13T23:51:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751820926', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'closed', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:51:16Z', 'closed_at': '2018-12-13T23:51:16Z', 'merged_at': '2018-12-13T23:51:16Z', 'merge_commit_sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T23:39:31Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3083, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:51:16Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T23:51:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811322', 'type': 'PullRequestEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1088, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'id': 220916221, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'number': 1088, 'state': 'closed', 'locked': False, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\", 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:29Z', 'closed_at': '2018-12-13T23:48:28Z', 'merged_at': None, 'merge_commit_sha': 'b3cc4fa473d82228fcef84656ca96203d710533c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'head': {'label': 'dylanjw:async_modules', 'ref': 'async_modules', 'sha': 'b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111731372, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTE3MzEzNzI=', 'name': 'web3.py', 'full_name': 'dylanjw/web3.py', 'private': False, 'owner': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dylanjw/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/dylanjw/web3.py', 'forks_url': 'https://api.github.com/repos/dylanjw/web3.py/forks', 'keys_url': 'https://api.github.com/repos/dylanjw/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dylanjw/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dylanjw/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/dylanjw/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dylanjw/web3.py/events', 'assignees_url': 'https://api.github.com/repos/dylanjw/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dylanjw/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dylanjw/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dylanjw/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dylanjw/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dylanjw/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dylanjw/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/dylanjw/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/dylanjw/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/dylanjw/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/dylanjw/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/dylanjw/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dylanjw/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dylanjw/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dylanjw/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dylanjw/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dylanjw/web3.py/merges', 'archive_url': 'https://api.github.com/repos/dylanjw/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dylanjw/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/dylanjw/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dylanjw/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dylanjw/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dylanjw/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dylanjw/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/dylanjw/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dylanjw/web3.py/deployments', 'created_at': '2017-11-22T20:53:39Z', 'updated_at': '2018-11-02T10:22:38Z', 'pushed_at': '2018-11-01T11:55:01Z', 'git_url': 'git://github.com/dylanjw/web3.py.git', 'ssh_url': 'git@github.com:dylanjw/web3.py.git', 'clone_url': 'https://github.com/dylanjw/web3.py.git', 'svn_url': 'https://github.com/dylanjw/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 19370, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '22a215fb6a0e8f0b4479c994f3d88e65bff3dda1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:39:33Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1088'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 10, 'review_comments': 19, 'maintainer_can_modify': False, 'commits': 21, 'additions': 734, 'deletions': 461, 'changed_files': 43}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811316', 'type': 'IssueCommentEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'id': 367503181, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'number': 1088, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:28Z', 'closed_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch'}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447162791', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088#issuecomment-447162791', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'id': 447162791, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2Mjc5MQ==', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:48:28Z', 'updated_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'body': 'This PR was mostly experimentation and can be closed now.'}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751780935', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653', 'pull_request_review_id': 184918499, 'id': 241601653, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMTY1Mw==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))', 'path': 'trinity/sync/common/headers.py', 'position': 139, 'original_position': 139, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Eh, no great reason. A future change might make the queue smaller than `launch_headers` and it seems slightly better to pause while the queue is drained than to crash.\\r\\n\\r\\nI'm on the fence, and it's easier to change than to document clearly :)\", 'created_at': '2018-12-13T23:40:11Z', 'updated_at': '2018-12-13T23:40:11Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240762923}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:40:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:40:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751774402', 'type': 'PushEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3136239202, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/test-allowlocal', 'head': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'before': '160dba6eefb5f8cb9eb12d1daee2903a699d1cd7', 'commits': [{'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'author': {'email': 'nilserik.frantzell@gmail.com', 'name': 'Nils-Erik Frantzell'}, 'message': 'Add allow-local arg to aleth/aleth-bootnode\\n\\nArg is used to enable nodes from your local network to be added to the\\nnode table. Useful for testing discovery running multiple nodes on ones\\nlocal machine', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}]}, 'public': True, 'created_at': '2018-12-13T23:38:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751772151', 'type': 'CreateEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'test-allowlocal', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T23:37:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751768176', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:36:31Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447160464', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447160464', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447160464, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2MDQ2NA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:36:31Z', 'updated_at': '2018-12-13T23:36:31Z', 'author_association': 'COLLABORATOR', 'body': '> Do you have a preference between cherry picking that commit or updating the file here?\\r\\n\\r\\nNo need to cherry-pick it, update in place is fine. :+1: '}}, 'public': True, 'created_at': '2018-12-13T23:36:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751763013', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1599', 'id': 390905959, 'node_id': 'MDU6SXNzdWUzOTA5MDU5NTk=', 'number': 1599, 'title': 'Change the DB fixture naming convention to `pow_headers_20` so that they sort intuitively', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T23:35:01Z', 'updated_at': '2018-12-13T23:35:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '_Originally posted by @pipermerriam in https://github.com/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDc2MTEyMQ==/comments/review_comment_'}}, 'public': True, 'created_at': '2018-12-13T23:35:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751760637', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540', 'pull_request_review_id': 184917173, 'id': 241600540, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMDU0MA==', 'diff_hunk': \"@@ -147,6 +147,7 @@ def load_mining_chain(db):\\n \\n class DBFixture(Enum):\\n twenty_pow_headers = '20pow_headers.ldb'\\n+ thousand_pow_headers = '1000pow_headers.ldb'\", 'path': 'tests/trinity/core/integration_test_helpers.py', 'position': 4, 'original_position': 4, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Maybe :football: this to a follow-up to avoid growing this PR', 'created_at': '2018-12-13T23:34:18Z', 'updated_at': '2018-12-13T23:34:19Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240761121}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '014fbbfeee97efbf059d633982a5940a7745526f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:34:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751739960', 'type': 'IssueCommentEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:28:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447158885', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447158885', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447158885, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1ODg4NQ==', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:28:57Z', 'updated_at': '2018-12-13T23:28:57Z', 'author_association': 'CONTRIBUTOR', 'body': \"> I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\nooo, sweet! I'll check it out\\r\\n\\r\\n> For whatever reason, we used a slightly different yaml in v4:\\r\\nNeat! I didn't even see that one. It looks like build.latest should work. Do you have a preference between cherry picking that commit or updating the file here?\"}}, 'public': True, 'created_at': '2018-12-13T23:28:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751731443', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1598, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598', 'id': 238565680, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTY1Njgw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1598', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1598.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1598.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598', 'number': 1598, 'state': 'open', 'locked': False, 'title': 'Pretty hash display utility', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWe\\'re likely to write little bits of hash display code here and there. Better to have a common utility.\\r\\n\\r\\nInspired by https://github.com/ethereum/py-evm/pull/1392#discussion_r240773225\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDecided to keep it super simple by only supporting the long form.\\r\\n\\r\\nThe short form seems just so short to implement, that it\\'s better not to worry about the utility, like:\\r\\n\\r\\n```py\\r\\nf\"{header.hash[:4].hex()}\"\\r\\n```\\r\\n\\r\\nI don\\'t feel super strongly though.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![screenshot_2018-12-13_15-25-22](https://user-images.githubusercontent.com/205327/49973811-63353080-feeb-11e8-8909-8165087b7d9c.png)\\r\\n_\"hash browns\"_', 'created_at': '2018-12-13T23:26:41Z', 'updated_at': '2018-12-13T23:26:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13', 'head': {'label': 'carver:humanize-hash', 'ref': 'humanize-hash', 'sha': '5147609fc43470c2b01e273f7b00f1cc71728d13', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1598'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 22, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T23:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751671993', 'type': 'WatchEvent', 'actor': {'id': 1105978, 'login': 'ajbennett', 'display_login': 'ajbennett', 'gravatar_id': '', 'url': 'https://api.github.com/users/ajbennett', 'avatar_url': 'https://avatars.githubusercontent.com/u/1105978?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T23:11:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751668907', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T23:10:23Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447154718', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447154718', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447154718, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1NDcxOA==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:10:23Z', 'updated_at': '2018-12-13T23:10:23Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener (or maybe we can create the `NodeTable `without going through `Host`, though I doubt it since I think the `NodeTable `depends on the host e.g. it uses a reference to `Host`'s boost IO service to listen for discovery packets)\\r\\n\\r\\nI'm thinking of adding a boolean parameter to `NetworkConfig` named something like `p2p `which aleth-bootnode's `main `would set to `false`. In `Host `we would then skip starting the capability threads and the tcp4 acceptor in `Host::startedWorking`:\\r\\n\\r\\nhttps://github.com/ethereum/aleth/blob/ec3886029393fc9927b130ba8f8671480d810391/libp2p/Host.cpp#L774-L787\\r\\n\\r\\nWe could also turn `Host::m_tcp4Acceptor` and `Host::m_ioService` into pointer types and only create them if `NetworkConfig::p2p` is `true`. \\r\\n\\r\\nI think we should still restore the data from `aleth-bootnode-network.rlp` since that can contain node table data.\\r\\n\\r\\n@gumb0,@chfast: Thoughts? \"}}, 'public': True, 'created_at': '2018-12-13T23:10:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" ] } ], @@ -161,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 3, "metadata": { "colab": { "autoexec": { @@ -191,7 +150,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" + "{'id': '8754423427', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137627808, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'before': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'commits': [{'sha': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2435ecb0ffd17dc2ce030a489ab3621ba8db0b53'}]}, 'public': True, 'created_at': '2018-12-14T11:37:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" ] } ], @@ -215,7 +174,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 4, "metadata": { "colab": { "autoexec": { @@ -236,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 5, "metadata": { "colab": { "autoexec": { @@ -296,332 +255,332 @@ " \n", " \n", " 0\n", - " 8751648709\n", - " IssueCommentEvent\n", - " {'id': 3859395, 'login': 'fubuloubu', 'display...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754423427\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137627808, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T23:05:21Z\n", + " 2018-12-14T11:37:25Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 1\n", - " 8751636392\n", - " PullRequestReviewCommentEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754416458\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137624181, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T23:02:29Z\n", + " 2018-12-14T11:35:56Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 2\n", - " 8751635242\n", - " PullRequestReviewCommentEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754415961\n", + " IssueCommentEvent\n", + " {'id': 504195, 'login': 'leonardoalt', 'displa...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T23:02:13Z\n", + " 2018-12-14T11:35:50Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 3\n", - " 8751612602\n", - " PullRequestReviewCommentEvent\n", - " {'id': 15605026, 'login': 'halfalicious', 'dis...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754399511\n", + " PushEvent\n", + " {'id': 33515470, 'login': 'FrankSzendzielarz',...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'push_id': 3137615452, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:57:05Z\n", + " 2018-12-14T11:32:30Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 4\n", - " 8751606764\n", - " IssueCommentEvent\n", - " {'id': 8655789, 'login': 'codecov-io', 'displa...\n", - " {'id': 122337656, 'name': 'ethereum/retesteth'...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754394928\n", + " ForkEvent\n", + " {'id': 30716372, 'login': '3for', 'display_log...\n", + " {'id': 42808596, 'name': 'ethereum/research', ...\n", + " {'forkee': {'id': 161775988, 'node_id': 'MDEwO...\n", " True\n", - " 2018-12-13T22:55:44Z\n", + " 2018-12-14T11:31:32Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 5\n", - " 8751592879\n", - " IssueCommentEvent\n", - " {'id': 8602661, 'login': 'jakerockland', 'disp...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754394731\n", + " WatchEvent\n", + " {'id': 30716372, 'login': '3for', 'display_log...\n", + " {'id': 42808596, 'name': 'ethereum/research', ...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:52:38Z\n", + " 2018-12-14T11:31:29Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 6\n", - " 8751580082\n", - " IssueCommentEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754392528\n", + " PullRequestReviewCommentEvent\n", + " {'id': 142290, 'login': 'holiman', 'display_lo...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T22:49:48Z\n", + " 2018-12-14T11:31:01Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 7\n", - " 8751579259\n", - " IssueCommentEvent\n", - " {'id': 3859395, 'login': 'fubuloubu', 'display...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754383076\n", + " WatchEvent\n", + " {'id': 40417611, 'login': '1tD0g', 'display_lo...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:49:38Z\n", + " 2018-12-14T11:29:04Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 8\n", - " 8751575653\n", - " PushEvent\n", - " {'id': 1699173, 'login': 'nivida', 'display_lo...\n", - " {'id': 24655114, 'name': 'ethereum/web3.js', '...\n", - " {'push_id': 3136135662, 'size': 1, 'distinct_s...\n", + " 8754382391\n", + " PullRequestReviewCommentEvent\n", + " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", + " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T22:48:47Z\n", + " 2018-12-14T11:28:55Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 9\n", - " 8751554182\n", + " 8754371838\n", " IssueCommentEvent\n", - " {'id': 15605026, 'login': 'halfalicious', 'dis...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", + " {'id': 44437404, 'login': 'naikmyeong', 'displ...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T22:44:06Z\n", + " 2018-12-14T11:26:42Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 10\n", - " 8751552656\n", - " IssueCommentEvent\n", - " {'id': 3859395, 'login': 'fubuloubu', 'display...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754353877\n", + " IssuesEvent\n", + " {'id': 49922, 'login': 'miohtama', 'display_lo...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'opened', 'issue': {'url': 'https:/...\n", " True\n", - " 2018-12-13T22:43:44Z\n", + " 2018-12-14T11:22:58Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 11\n", - " 8751546770\n", - " PullRequestReviewCommentEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754349538\n", + " PushEvent\n", + " {'id': 504195, 'login': 'leonardoalt', 'displa...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'push_id': 3137588967, 'size': 6, 'distinct_s...\n", " True\n", - " 2018-12-13T22:42:26Z\n", + " 2018-12-14T11:22:03Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 12\n", - " 8751545833\n", - " PullRequestEvent\n", - " {'id': 6540608, 'login': 'kclowes', 'display_l...\n", - " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", - " {'action': 'opened', 'number': 1162, 'pull_req...\n", + " 8754343870\n", + " PushEvent\n", + " {'id': 142290, 'login': 'holiman', 'display_lo...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'push_id': 3137586095, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:42:15Z\n", + " 2018-12-14T11:20:52Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 13\n", - " 8751544474\n", - " PushEvent\n", - " {'id': 1699173, 'login': 'nivida', 'display_lo...\n", - " {'id': 24655114, 'name': 'ethereum/web3.js', '...\n", - " {'push_id': 3136119495, 'size': 1, 'distinct_s...\n", + " 8754343776\n", + " PullRequestEvent\n", + " {'id': 142290, 'login': 'holiman', 'display_lo...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'action': 'closed', 'number': 162, 'pull_requ...\n", " True\n", - " 2018-12-13T22:41:57Z\n", + " 2018-12-14T11:20:51Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 14\n", - " 8751543759\n", - " IssueCommentEvent\n", - " {'id': 15605026, 'login': 'halfalicious', 'dis...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754335842\n", + " WatchEvent\n", + " {'id': 679887, 'login': 'hkk', 'display_login'...\n", + " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:41:47Z\n", + " 2018-12-14T11:19:11Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 15\n", - " 8751531812\n", - " PushEvent\n", - " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", - " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", - " {'push_id': 3136112801, 'size': 1, 'distinct_s...\n", + " 8754329096\n", + " WatchEvent\n", + " {'id': 15720036, 'login': 'kyledewy', 'display...\n", + " {'id': 147572521, 'name': 'ethereum/pytest-eth...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:39:13Z\n", + " 2018-12-14T11:17:45Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 16\n", - " 8751529594\n", - " PullRequestEvent\n", - " {'id': 4492341, 'login': 'winsvega', 'display_...\n", - " {'id': 122337656, 'name': 'ethereum/retesteth'...\n", - " {'action': 'opened', 'number': 22, 'pull_reque...\n", + " 8754303327\n", + " ForkEvent\n", + " {'id': 10967038, 'login': 'racmnet', 'display_...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'forkee': {'id': 161773980, 'node_id': 'MDEwO...\n", " True\n", - " 2018-12-13T22:38:44Z\n", + " 2018-12-14T11:12:27Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 17\n", - " 8751524322\n", - " CreateEvent\n", - " {'id': 4492341, 'login': 'winsvega', 'display_...\n", - " {'id': 122337656, 'name': 'ethereum/retesteth'...\n", - " {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas...\n", + " 8754303002\n", + " WatchEvent\n", + " {'id': 10967038, 'login': 'racmnet', 'display_...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:37:34Z\n", + " 2018-12-14T11:12:23Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 18\n", - " 8751495938\n", - " PushEvent\n", - " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", - " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", - " {'push_id': 3136094228, 'size': 1, 'distinct_s...\n", + " 8754268209\n", + " WatchEvent\n", + " {'id': 1172733, 'login': 'toannk', 'display_lo...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:31:24Z\n", + " 2018-12-14T11:05:24Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 19\n", - " 8751479824\n", - " IssuesEvent\n", - " {'id': 8933231, 'login': 'dylanjw', 'display_l...\n", - " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", - " {'action': 'opened', 'issue': {'url': 'https:/...\n", + " 8754240410\n", + " IssueCommentEvent\n", + " {'id': 4943570, 'login': 'b00ris', 'display_lo...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T22:28:08Z\n", + " 2018-12-14T11:00:05Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 20\n", - " 8751479546\n", - " PullRequestReviewCommentEvent\n", - " {'id': 521109, 'login': 'cburgdorf', 'display_...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754230101\n", + " PushEvent\n", + " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", + " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", + " {'push_id': 3137526125, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:28:05Z\n", + " 2018-12-14T10:58:07Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 21\n", - " 8751457988\n", - " IssuesEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", + " 8754229905\n", + " PullRequestReviewCommentEvent\n", + " {'id': 521109, 'login': 'cburgdorf', 'display_...\n", " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'closed', 'issue': {'url': 'https:/...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T22:23:49Z\n", + " 2018-12-14T10:58:04Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 22\n", - " 8751457971\n", - " IssueCommentEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754198367\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137509444, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:23:48Z\n", + " 2018-12-14T10:52:12Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 23\n", - " 8751455096\n", - " IssuesEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'closed', 'issue': {'url': 'https:/...\n", + " 8754172758\n", + " WatchEvent\n", + " {'id': 19657992, 'login': 'smgqk', 'display_lo...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:23:14Z\n", + " 2018-12-14T10:47:12Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 24\n", - " 8751455085\n", - " IssueCommentEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754164859\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137491975, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:23:14Z\n", + " 2018-12-14T10:45:40Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 25\n", - " 8751404945\n", - " WatchEvent\n", - " {'id': 453776, 'login': 'ur5us', 'display_logi...\n", - " {'id': 29512034, 'name': 'ethereum/devp2p', 'u...\n", - " {'action': 'started'}\n", + " 8754150704\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137484484, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T22:13:36Z\n", + " 2018-12-14T10:42:58Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 26\n", - " 8751388340\n", - " IssueCommentEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8754140773\n", + " WatchEvent\n", + " {'id': 8289914, 'login': 'cuidezhu', 'display_...\n", + " {'id': 22730041, 'name': 'ethereum/dapp-bin', ...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T22:10:18Z\n", + " 2018-12-14T10:41:06Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 27\n", - " 8751375542\n", - " PullRequestReviewCommentEvent\n", - " {'id': 521109, 'login': 'cburgdorf', 'display_...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754137353\n", + " PushEvent\n", + " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", + " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", + " {'push_id': 3137477529, 'size': 10, 'distinct_...\n", " True\n", - " 2018-12-13T22:07:48Z\n", + " 2018-12-14T10:40:28Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 28\n", - " 8751373949\n", - " PullRequestEvent\n", - " {'id': 791437, 'login': 'davesque', 'display_l...\n", - " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", - " {'action': 'opened', 'number': 1160, 'pull_req...\n", + " 8754136734\n", + " DeleteEvent\n", + " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", + " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", + " {'ref': 'improve-discovery2', 'ref_type': 'bra...\n", " True\n", - " 2018-12-13T22:07:30Z\n", + " 2018-12-14T10:40:23Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 29\n", - " 8751373741\n", - " PullRequestReviewCommentEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 8754136488\n", + " PullRequestEvent\n", + " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", + " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", + " {'action': 'closed', 'number': 5380, 'pull_req...\n", " True\n", - " 2018-12-13T22:07:27Z\n", + " 2018-12-14T10:40:20Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", @@ -636,660 +595,660 @@ " ...\n", " \n", " \n", - " 265\n", - " 8749262323\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", - " {'push_id': 3134949870, 'size': 1, 'distinct_s...\n", - " True\n", - " 2018-12-13T15:59:27Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 266\n", - " 8749248312\n", - " IssueCommentEvent\n", - " {'id': 20308948, 'login': 'zscole', 'display_l...\n", - " {'id': 143768297, 'name': 'ethereum/eth2.0-pm'...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T15:57:36Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 267\n", - " 8749236050\n", - " IssueCommentEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T15:55:57Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 268\n", - " 8749231725\n", + " 269\n", + " 8751261766\n", " IssueCommentEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:55:21Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 269\n", - " 8749230140\n", - " ForkEvent\n", - " {'id': 45850645, 'login': 'Snetw', 'display_lo...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", - " {'forkee': {'id': 161661585, 'node_id': 'MDEwO...\n", - " True\n", - " 2018-12-13T15:55:10Z\n", + " 2018-12-13T21:45:30Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 270\n", - " 8749205280\n", + " 8751258080\n", " IssueCommentEvent\n", - " {'id': 29854669, 'login': 'jannikluhn', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'id': 3859395, 'login': 'fubuloubu', 'display...\n", + " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:51:41Z\n", + " 2018-12-13T21:44:47Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 271\n", - " 8749204531\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'push_id': 3134920063, 'size': 13, 'distinct_...\n", + " 8751255701\n", + " IssueCommentEvent\n", + " {'id': 31577879, 'login': 'pryce-turner', 'dis...\n", + " {'id': 63730598, 'name': 'ethereum/py-solc', '...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:51:34Z\n", + " 2018-12-13T21:44:21Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 272\n", - " 8749198475\n", - " IssueCommentEvent\n", - " {'id': 85355, 'login': 'lookfirst', 'display_l...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8751249806\n", + " PullRequestReviewCommentEvent\n", + " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", + " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T15:50:41Z\n", + " 2018-12-13T21:43:15Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 273\n", - " 8749173576\n", - " ForkEvent\n", - " {'id': 45844784, 'login': 'gangnamtestnet', 'd...\n", - " {'id': 30313032, 'name': 'ethereum/ethash', 'u...\n", - " {'forkee': {'id': 161660600, 'node_id': 'MDEwO...\n", + " 8751242810\n", + " WatchEvent\n", + " {'id': 24497886, 'login': 'humboo', 'display_l...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T15:47:11Z\n", + " 2018-12-13T21:41:56Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 274\n", - " 8749171801\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " 8751235806\n", + " WatchEvent\n", + " {'id': 26033343, 'login': 'voermx', 'display_l...\n", " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'push_id': 3134903228, 'size': 2, 'distinct_s...\n", + " {'action': 'started'}\n", " True\n", - " 2018-12-13T15:46:55Z\n", + " 2018-12-13T21:40:34Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 275\n", - " 8749171067\n", - " PullRequestEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'closed', 'number': 5649, 'pull_req...\n", + " 8751227766\n", + " PushEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'push_id': 3135960614, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T15:46:49Z\n", + " 2018-12-13T21:38:58Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 276\n", - " 8749170485\n", - " IssueCommentEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8751227484\n", + " PullRequestEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'closed', 'number': 1597, 'pull_req...\n", " True\n", - " 2018-12-13T15:46:45Z\n", + " 2018-12-13T21:38:55Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 277\n", - " 8749167495\n", - " PullRequestReviewCommentEvent\n", - " {'id': 29854669, 'login': 'jannikluhn', 'displ...\n", + " 8751226793\n", + " IssueCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:46:19Z\n", + " 2018-12-13T21:38:47Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 278\n", - " 8749161300\n", + " 8751226350\n", " IssueCommentEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 147572521, 'name': 'ethereum/pytest-eth...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:45:27Z\n", + " 2018-12-13T21:38:41Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 279\n", - " 8749153672\n", - " CreateEvent\n", - " {'id': 6917456, 'login': 'jacqueswww', 'displa...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm...\n", + " 8751197343\n", + " IssueCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 147572521, 'name': 'ethereum/pytest-eth...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:44:22Z\n", + " 2018-12-13T21:32:55Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 280\n", - " 8749152469\n", - " PushEvent\n", - " {'id': 6917456, 'login': 'jacqueswww', 'displa...\n", - " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", - " {'push_id': 3134893359, 'size': 2, 'distinct_s...\n", + " 8751195664\n", + " IssuesEvent\n", + " {'id': 3867501, 'login': 'charles-cooper', 'di...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'opened', 'issue': {'url': 'https:/...\n", " True\n", - " 2018-12-13T15:44:12Z\n", + " 2018-12-13T21:32:35Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 281\n", - " 8749133571\n", - " WatchEvent\n", - " {'id': 34389409, 'login': 'ndc07', 'display_lo...\n", - " {'id': 24655114, 'name': 'ethereum/web3.js', '...\n", - " {'action': 'started'}\n", + " 8751185727\n", + " PushEvent\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'push_id': 3135938748, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T15:41:28Z\n", + " 2018-12-13T21:30:42Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 282\n", - " 8749130652\n", - " PullRequestEvent\n", - " {'id': 4492341, 'login': 'winsvega', 'display_...\n", - " {'id': 15540967, 'name': 'ethereum/tests', 'ur...\n", - " {'action': 'opened', 'number': 569, 'pull_requ...\n", + " 8751185184\n", + " IssueCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 104133488, 'name': 'ethereum/eth-keys',...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:41:05Z\n", + " 2018-12-13T21:30:35Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 283\n", - " 8749129431\n", - " IssueCommentEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8751178030\n", + " PullRequestEvent\n", + " {'id': 6118832, 'login': 'sandakersmann', 'dis...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'opened', 'number': 1597, 'pull_req...\n", " True\n", - " 2018-12-13T15:40:54Z\n", + " 2018-12-13T21:29:11Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 284\n", - " 8749128387\n", - " IssueCommentEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", + " 8751172385\n", + " CreateEvent\n", + " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", + " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", + " {'ref': 'circleci-mac', 'ref_type': 'branch', ...\n", " True\n", - " 2018-12-13T15:40:44Z\n", + " 2018-12-13T21:28:03Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 285\n", - " 8749128034\n", - " PushEvent\n", - " {'id': 4492341, 'login': 'winsvega', 'display_...\n", - " {'id': 15540967, 'name': 'ethereum/tests', 'ur...\n", - " {'push_id': 3134880769, 'size': 2, 'distinct_s...\n", + " 8751170970\n", + " ForkEvent\n", + " {'id': 6118832, 'login': 'sandakersmann', 'dis...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'forkee': {'id': 161696773, 'node_id': 'MDEwO...\n", " True\n", - " 2018-12-13T15:40:42Z\n", + " 2018-12-13T21:27:47Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 286\n", - " 8749118552\n", + " 8751159042\n", " PushEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", - " {'push_id': 3134875732, 'size': 2, 'distinct_s...\n", + " {'id': 1699173, 'login': 'nivida', 'display_lo...\n", + " {'id': 24655114, 'name': 'ethereum/web3.js', '...\n", + " {'push_id': 3135924837, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-13T15:39:24Z\n", + " 2018-12-13T21:25:24Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 287\n", - " 8749118494\n", - " PullRequestEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", - " {'action': 'closed', 'number': 11, 'pull_reque...\n", + " 8751139500\n", + " IssueCommentEvent\n", + " {'id': 37226745, 'login': 'binary-adam', 'disp...\n", + " {'id': 44971752, 'name': 'ethereum/EIPs', 'url...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:39:24Z\n", + " 2018-12-13T21:21:41Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 288\n", - " 8749114734\n", - " PullRequestEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", - " {'action': 'opened', 'number': 11, 'pull_reque...\n", + " 8751118694\n", + " ReleaseEvent\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'published', 'release': {'url': 'ht...\n", " True\n", - " 2018-12-13T15:38:50Z\n", + " 2018-12-13T21:17:43Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 289\n", - " 8749104997\n", - " CreateEvent\n", - " {'id': 9263930, 'login': 'hwwhww', 'display_lo...\n", - " {'id': 153663395, 'name': 'ethereum/py-ssz', '...\n", - " {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'...\n", + " 8751115475\n", + " PullRequestReviewCommentEvent\n", + " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", + " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T15:37:29Z\n", + " 2018-12-13T21:16:31Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 290\n", - " 8749101507\n", - " PushEvent\n", + " 8751115473\n", + " PullRequestReviewCommentEvent\n", " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", - " {'push_id': 3134866869, 'size': 1, 'distinct_s...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T15:36:59Z\n", + " 2018-12-13T21:16:04Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 291\n", - " 8749101342\n", - " PullRequestEvent\n", + " 8751115470\n", + " PullRequestReviewCommentEvent\n", " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", - " {'action': 'closed', 'number': 310, 'pull_requ...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-13T15:36:58Z\n", + " 2018-12-13T21:14:57Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 292\n", - " 8749078704\n", - " IssuesEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'closed', 'issue': {'url': 'https:/...\n", + " 8751109453\n", + " PullRequestEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'opened', 'number': 1596, 'pull_req...\n", " True\n", - " 2018-12-13T15:33:45Z\n", + " 2018-12-13T21:15:56Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 293\n", - " 8749078679\n", + " 8751105603\n", " IssueCommentEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'id': 11574521, 'login': 'jpeletier', 'displa...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:33:45Z\n", + " 2018-12-13T21:15:11Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", " 294\n", - " 8749070596\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", - " {'push_id': 3134850927, 'size': 1, 'distinct_s...\n", + " 8751097538\n", + " IssueCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-13T21:13:35Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 295\n", + " 8751097418\n", + " IssueCommentEvent\n", + " {'id': 13686139, 'login': 'AlexeyAkhunov', 'di...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-13T21:13:34Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 296\n", + " 8751081989\n", + " IssueCommentEvent\n", + " {'id': 11574521, 'login': 'jpeletier', 'displa...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-13T21:10:35Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 297\n", + " 8751077292\n", + " IssueCommentEvent\n", + " {'id': 3036030, 'login': 'veox', 'display_logi...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-13T21:09:42Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 298\n", + " 8751058588\n", + " IssueCommentEvent\n", + " {'id': 3036030, 'login': 'veox', 'display_logi...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-13T15:32:33Z\n", + " 2018-12-13T21:06:12Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", "\n", - "

295 rows × 8 columns

\n", + "

299 rows × 8 columns

\n", "" ], "text/plain": [ " id type \\\n", - "0 8751648709 IssueCommentEvent \n", - "1 8751636392 PullRequestReviewCommentEvent \n", - "2 8751635242 PullRequestReviewCommentEvent \n", - "3 8751612602 PullRequestReviewCommentEvent \n", - "4 8751606764 IssueCommentEvent \n", - "5 8751592879 IssueCommentEvent \n", - "6 8751580082 IssueCommentEvent \n", - "7 8751579259 IssueCommentEvent \n", - "8 8751575653 PushEvent \n", - "9 8751554182 IssueCommentEvent \n", - "10 8751552656 IssueCommentEvent \n", - "11 8751546770 PullRequestReviewCommentEvent \n", - "12 8751545833 PullRequestEvent \n", - "13 8751544474 PushEvent \n", - "14 8751543759 IssueCommentEvent \n", - "15 8751531812 PushEvent \n", - "16 8751529594 PullRequestEvent \n", - "17 8751524322 CreateEvent \n", - "18 8751495938 PushEvent \n", - "19 8751479824 IssuesEvent \n", - "20 8751479546 PullRequestReviewCommentEvent \n", - "21 8751457988 IssuesEvent \n", - "22 8751457971 IssueCommentEvent \n", - "23 8751455096 IssuesEvent \n", - "24 8751455085 IssueCommentEvent \n", - "25 8751404945 WatchEvent \n", - "26 8751388340 IssueCommentEvent \n", - "27 8751375542 PullRequestReviewCommentEvent \n", - "28 8751373949 PullRequestEvent \n", - "29 8751373741 PullRequestReviewCommentEvent \n", + "0 8754423427 PushEvent \n", + "1 8754416458 PushEvent \n", + "2 8754415961 IssueCommentEvent \n", + "3 8754399511 PushEvent \n", + "4 8754394928 ForkEvent \n", + "5 8754394731 WatchEvent \n", + "6 8754392528 PullRequestReviewCommentEvent \n", + "7 8754383076 WatchEvent \n", + "8 8754382391 PullRequestReviewCommentEvent \n", + "9 8754371838 IssueCommentEvent \n", + "10 8754353877 IssuesEvent \n", + "11 8754349538 PushEvent \n", + "12 8754343870 PushEvent \n", + "13 8754343776 PullRequestEvent \n", + "14 8754335842 WatchEvent \n", + "15 8754329096 WatchEvent \n", + "16 8754303327 ForkEvent \n", + "17 8754303002 WatchEvent \n", + "18 8754268209 WatchEvent \n", + "19 8754240410 IssueCommentEvent \n", + "20 8754230101 PushEvent \n", + "21 8754229905 PullRequestReviewCommentEvent \n", + "22 8754198367 PushEvent \n", + "23 8754172758 WatchEvent \n", + "24 8754164859 PushEvent \n", + "25 8754150704 PushEvent \n", + "26 8754140773 WatchEvent \n", + "27 8754137353 PushEvent \n", + "28 8754136734 DeleteEvent \n", + "29 8754136488 PullRequestEvent \n", ".. ... ... \n", - "265 8749262323 PushEvent \n", - "266 8749248312 IssueCommentEvent \n", - "267 8749236050 IssueCommentEvent \n", - "268 8749231725 IssueCommentEvent \n", - "269 8749230140 ForkEvent \n", - "270 8749205280 IssueCommentEvent \n", - "271 8749204531 PushEvent \n", - "272 8749198475 IssueCommentEvent \n", - "273 8749173576 ForkEvent \n", - "274 8749171801 PushEvent \n", - "275 8749171067 PullRequestEvent \n", - "276 8749170485 IssueCommentEvent \n", - "277 8749167495 PullRequestReviewCommentEvent \n", - "278 8749161300 IssueCommentEvent \n", - "279 8749153672 CreateEvent \n", - "280 8749152469 PushEvent \n", - "281 8749133571 WatchEvent \n", - "282 8749130652 PullRequestEvent \n", - "283 8749129431 IssueCommentEvent \n", - "284 8749128387 IssueCommentEvent \n", - "285 8749128034 PushEvent \n", - "286 8749118552 PushEvent \n", - "287 8749118494 PullRequestEvent \n", - "288 8749114734 PullRequestEvent \n", - "289 8749104997 CreateEvent \n", - "290 8749101507 PushEvent \n", - "291 8749101342 PullRequestEvent \n", - "292 8749078704 IssuesEvent \n", - "293 8749078679 IssueCommentEvent \n", - "294 8749070596 PushEvent \n", + "269 8751261766 IssueCommentEvent \n", + "270 8751258080 IssueCommentEvent \n", + "271 8751255701 IssueCommentEvent \n", + "272 8751249806 PullRequestReviewCommentEvent \n", + "273 8751242810 WatchEvent \n", + "274 8751235806 WatchEvent \n", + "275 8751227766 PushEvent \n", + "276 8751227484 PullRequestEvent \n", + "277 8751226793 IssueCommentEvent \n", + "278 8751226350 IssueCommentEvent \n", + "279 8751197343 IssueCommentEvent \n", + "280 8751195664 IssuesEvent \n", + "281 8751185727 PushEvent \n", + "282 8751185184 IssueCommentEvent \n", + "283 8751178030 PullRequestEvent \n", + "284 8751172385 CreateEvent \n", + "285 8751170970 ForkEvent \n", + "286 8751159042 PushEvent \n", + "287 8751139500 IssueCommentEvent \n", + "288 8751118694 ReleaseEvent \n", + "289 8751115475 PullRequestReviewCommentEvent \n", + "290 8751115473 PullRequestReviewCommentEvent \n", + "291 8751115470 PullRequestReviewCommentEvent \n", + "292 8751109453 PullRequestEvent \n", + "293 8751105603 IssueCommentEvent \n", + "294 8751097538 IssueCommentEvent \n", + "295 8751097418 IssueCommentEvent \n", + "296 8751081989 IssueCommentEvent \n", + "297 8751077292 IssueCommentEvent \n", + "298 8751058588 IssueCommentEvent \n", "\n", " actor \\\n", - "0 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "1 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "2 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "3 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "4 {'id': 8655789, 'login': 'codecov-io', 'displa... \n", - "5 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", - "6 {'id': 205327, 'login': 'carver', 'display_log... \n", - "7 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "8 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "9 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "10 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "11 {'id': 205327, 'login': 'carver', 'display_log... \n", - "12 {'id': 6540608, 'login': 'kclowes', 'display_l... \n", - "13 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "14 {'id': 15605026, 'login': 'halfalicious', 'dis... \n", - "15 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "16 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "17 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "18 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "19 {'id': 8933231, 'login': 'dylanjw', 'display_l... \n", - "20 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "21 {'id': 205327, 'login': 'carver', 'display_log... \n", - "22 {'id': 205327, 'login': 'carver', 'display_log... \n", - "23 {'id': 205327, 'login': 'carver', 'display_log... \n", - "24 {'id': 205327, 'login': 'carver', 'display_log... \n", - "25 {'id': 453776, 'login': 'ur5us', 'display_logi... \n", - "26 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "27 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "28 {'id': 791437, 'login': 'davesque', 'display_l... \n", - "29 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "0 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "1 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "2 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", + "3 {'id': 33515470, 'login': 'FrankSzendzielarz',... \n", + "4 {'id': 30716372, 'login': '3for', 'display_log... \n", + "5 {'id': 30716372, 'login': '3for', 'display_log... \n", + "6 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "7 {'id': 40417611, 'login': '1tD0g', 'display_lo... \n", + "8 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", + "9 {'id': 44437404, 'login': 'naikmyeong', 'displ... \n", + "10 {'id': 49922, 'login': 'miohtama', 'display_lo... \n", + "11 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", + "12 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "13 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "14 {'id': 679887, 'login': 'hkk', 'display_login'... \n", + "15 {'id': 15720036, 'login': 'kyledewy', 'display... \n", + "16 {'id': 10967038, 'login': 'racmnet', 'display_... \n", + "17 {'id': 10967038, 'login': 'racmnet', 'display_... \n", + "18 {'id': 1172733, 'login': 'toannk', 'display_lo... \n", + "19 {'id': 4943570, 'login': 'b00ris', 'display_lo... \n", + "20 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "21 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "22 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "23 {'id': 19657992, 'login': 'smgqk', 'display_lo... \n", + "24 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "25 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "26 {'id': 8289914, 'login': 'cuidezhu', 'display_... \n", + "27 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", + "28 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", + "29 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", ".. ... \n", - "265 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "266 {'id': 20308948, 'login': 'zscole', 'display_l... \n", - "267 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "268 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "269 {'id': 45850645, 'login': 'Snetw', 'display_lo... \n", - "270 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "271 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "272 {'id': 85355, 'login': 'lookfirst', 'display_l... \n", - "273 {'id': 45844784, 'login': 'gangnamtestnet', 'd... \n", - "274 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "275 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "276 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "277 {'id': 29854669, 'login': 'jannikluhn', 'displ... \n", - "278 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "279 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "280 {'id': 6917456, 'login': 'jacqueswww', 'displa... \n", - "281 {'id': 34389409, 'login': 'ndc07', 'display_lo... \n", - "282 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "283 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "284 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "285 {'id': 4492341, 'login': 'winsvega', 'display_... \n", - "286 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "287 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "288 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", - "289 {'id': 9263930, 'login': 'hwwhww', 'display_lo... \n", + "269 {'id': 205327, 'login': 'carver', 'display_log... \n", + "270 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "271 {'id': 31577879, 'login': 'pryce-turner', 'dis... \n", + "272 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "273 {'id': 24497886, 'login': 'humboo', 'display_l... \n", + "274 {'id': 26033343, 'login': 'voermx', 'display_l... \n", + "275 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "276 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "277 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "278 {'id': 205327, 'login': 'carver', 'display_log... \n", + "279 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "280 {'id': 3867501, 'login': 'charles-cooper', 'di... \n", + "281 {'id': 205327, 'login': 'carver', 'display_log... \n", + "282 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "283 {'id': 6118832, 'login': 'sandakersmann', 'dis... \n", + "284 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", + "285 {'id': 6118832, 'login': 'sandakersmann', 'dis... \n", + "286 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", + "287 {'id': 37226745, 'login': 'binary-adam', 'disp... \n", + "288 {'id': 205327, 'login': 'carver', 'display_log... \n", + "289 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "292 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "293 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "294 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "292 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "293 {'id': 11574521, 'login': 'jpeletier', 'displa... \n", + "294 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "295 {'id': 13686139, 'login': 'AlexeyAkhunov', 'di... \n", + "296 {'id': 11574521, 'login': 'jpeletier', 'displa... \n", + "297 {'id': 3036030, 'login': 'veox', 'display_logi... \n", + "298 {'id': 3036030, 'login': 'veox', 'display_logi... \n", "\n", " repo \\\n", - "0 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "1 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "3 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "4 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "5 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "6 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "7 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "8 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "9 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "10 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "11 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "12 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "13 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "14 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "15 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "16 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "17 {'id': 122337656, 'name': 'ethereum/retesteth'... \n", - "18 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "19 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "20 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "0 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "1 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "2 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "3 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "4 {'id': 42808596, 'name': 'ethereum/research', ... \n", + "5 {'id': 42808596, 'name': 'ethereum/research', ... \n", + "6 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "7 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "8 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "9 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "10 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "11 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "12 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "13 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "14 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "15 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "16 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "17 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "18 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "19 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "20 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "23 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "24 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "25 {'id': 29512034, 'name': 'ethereum/devp2p', 'u... \n", - "26 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "27 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "28 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", - "29 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "22 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "23 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "24 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "25 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "26 {'id': 22730041, 'name': 'ethereum/dapp-bin', ... \n", + "27 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "28 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "29 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", ".. ... \n", - "265 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "266 {'id': 143768297, 'name': 'ethereum/eth2.0-pm'... \n", - "267 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "268 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "269 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "270 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "271 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "272 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "273 {'id': 30313032, 'name': 'ethereum/ethash', 'u... \n", + "269 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "270 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "271 {'id': 63730598, 'name': 'ethereum/py-solc', '... \n", + "272 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "273 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "275 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "276 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "275 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "276 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "278 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "279 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "280 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "281 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "282 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "283 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "284 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "285 {'id': 15540967, 'name': 'ethereum/tests', 'ur... \n", - "286 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "287 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "288 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", - "289 {'id': 153663395, 'name': 'ethereum/py-ssz', '... \n", + "278 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "279 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "280 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "281 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "282 {'id': 104133488, 'name': 'ethereum/eth-keys',... \n", + "283 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "284 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", + "285 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "286 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", + "287 {'id': 44971752, 'name': 'ethereum/EIPs', 'url... \n", + "288 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "289 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "292 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "293 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "294 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "292 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "293 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "294 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "295 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "296 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "297 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "298 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "\n", " payload public \\\n", - "0 {'action': 'created', 'issue': {'url': 'https:... True \n", - "1 {'action': 'created', 'comment': {'url': 'http... True \n", - "2 {'action': 'created', 'comment': {'url': 'http... True \n", - "3 {'action': 'created', 'comment': {'url': 'http... True \n", - "4 {'action': 'created', 'issue': {'url': 'https:... True \n", - "5 {'action': 'created', 'issue': {'url': 'https:... True \n", - "6 {'action': 'created', 'issue': {'url': 'https:... True \n", - "7 {'action': 'created', 'issue': {'url': 'https:... True \n", - "8 {'push_id': 3136135662, 'size': 1, 'distinct_s... True \n", + "0 {'push_id': 3137627808, 'size': 1, 'distinct_s... True \n", + "1 {'push_id': 3137624181, 'size': 1, 'distinct_s... True \n", + "2 {'action': 'created', 'issue': {'url': 'https:... True \n", + "3 {'push_id': 3137615452, 'size': 1, 'distinct_s... True \n", + "4 {'forkee': {'id': 161775988, 'node_id': 'MDEwO... True \n", + "5 {'action': 'started'} True \n", + "6 {'action': 'created', 'comment': {'url': 'http... True \n", + "7 {'action': 'started'} True \n", + "8 {'action': 'created', 'comment': {'url': 'http... True \n", "9 {'action': 'created', 'issue': {'url': 'https:... True \n", - "10 {'action': 'created', 'issue': {'url': 'https:... True \n", - "11 {'action': 'created', 'comment': {'url': 'http... True \n", - "12 {'action': 'opened', 'number': 1162, 'pull_req... True \n", - "13 {'push_id': 3136119495, 'size': 1, 'distinct_s... True \n", - "14 {'action': 'created', 'issue': {'url': 'https:... True \n", - "15 {'push_id': 3136112801, 'size': 1, 'distinct_s... True \n", - "16 {'action': 'opened', 'number': 22, 'pull_reque... True \n", - "17 {'ref': 'rpcsuite', 'ref_type': 'branch', 'mas... True \n", - "18 {'push_id': 3136094228, 'size': 1, 'distinct_s... True \n", - "19 {'action': 'opened', 'issue': {'url': 'https:/... True \n", - "20 {'action': 'created', 'comment': {'url': 'http... True \n", - "21 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "22 {'action': 'created', 'issue': {'url': 'https:... True \n", - "23 {'action': 'closed', 'issue': {'url': 'https:/... True \n", - "24 {'action': 'created', 'issue': {'url': 'https:... True \n", - "25 {'action': 'started'} True \n", - "26 {'action': 'created', 'issue': {'url': 'https:... True \n", - "27 {'action': 'created', 'comment': {'url': 'http... True \n", - "28 {'action': 'opened', 'number': 1160, 'pull_req... True \n", - "29 {'action': 'created', 'comment': {'url': 'http... True \n", + "10 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "11 {'push_id': 3137588967, 'size': 6, 'distinct_s... True \n", + "12 {'push_id': 3137586095, 'size': 1, 'distinct_s... True \n", + "13 {'action': 'closed', 'number': 162, 'pull_requ... True \n", + "14 {'action': 'started'} True \n", + "15 {'action': 'started'} True \n", + "16 {'forkee': {'id': 161773980, 'node_id': 'MDEwO... True \n", + "17 {'action': 'started'} True \n", + "18 {'action': 'started'} True \n", + "19 {'action': 'created', 'issue': {'url': 'https:... True \n", + "20 {'push_id': 3137526125, 'size': 1, 'distinct_s... True \n", + "21 {'action': 'created', 'comment': {'url': 'http... True \n", + "22 {'push_id': 3137509444, 'size': 1, 'distinct_s... True \n", + "23 {'action': 'started'} True \n", + "24 {'push_id': 3137491975, 'size': 1, 'distinct_s... True \n", + "25 {'push_id': 3137484484, 'size': 1, 'distinct_s... True \n", + "26 {'action': 'started'} True \n", + "27 {'push_id': 3137477529, 'size': 10, 'distinct_... True \n", + "28 {'ref': 'improve-discovery2', 'ref_type': 'bra... True \n", + "29 {'action': 'closed', 'number': 5380, 'pull_req... True \n", ".. ... ... \n", - "265 {'push_id': 3134949870, 'size': 1, 'distinct_s... True \n", - "266 {'action': 'created', 'issue': {'url': 'https:... True \n", - "267 {'action': 'created', 'issue': {'url': 'https:... True \n", - "268 {'action': 'created', 'issue': {'url': 'https:... True \n", - "269 {'forkee': {'id': 161661585, 'node_id': 'MDEwO... True \n", + "269 {'action': 'created', 'issue': {'url': 'https:... True \n", "270 {'action': 'created', 'issue': {'url': 'https:... True \n", - "271 {'push_id': 3134920063, 'size': 13, 'distinct_... True \n", - "272 {'action': 'created', 'issue': {'url': 'https:... True \n", - "273 {'forkee': {'id': 161660600, 'node_id': 'MDEwO... True \n", - "274 {'push_id': 3134903228, 'size': 2, 'distinct_s... True \n", - "275 {'action': 'closed', 'number': 5649, 'pull_req... True \n", - "276 {'action': 'created', 'issue': {'url': 'https:... True \n", - "277 {'action': 'created', 'comment': {'url': 'http... True \n", + "271 {'action': 'created', 'issue': {'url': 'https:... True \n", + "272 {'action': 'created', 'comment': {'url': 'http... True \n", + "273 {'action': 'started'} True \n", + "274 {'action': 'started'} True \n", + "275 {'push_id': 3135960614, 'size': 1, 'distinct_s... True \n", + "276 {'action': 'closed', 'number': 1597, 'pull_req... True \n", + "277 {'action': 'created', 'issue': {'url': 'https:... True \n", "278 {'action': 'created', 'issue': {'url': 'https:... True \n", - "279 {'ref': 'v0.1.0-beta.6', 'ref_type': 'tag', 'm... True \n", - "280 {'push_id': 3134893359, 'size': 2, 'distinct_s... True \n", - "281 {'action': 'started'} True \n", - "282 {'action': 'opened', 'number': 569, 'pull_requ... True \n", - "283 {'action': 'created', 'issue': {'url': 'https:... True \n", - "284 {'action': 'created', 'issue': {'url': 'https:... True \n", - "285 {'push_id': 3134880769, 'size': 2, 'distinct_s... True \n", - "286 {'push_id': 3134875732, 'size': 2, 'distinct_s... True \n", - "287 {'action': 'closed', 'number': 11, 'pull_reque... True \n", - "288 {'action': 'opened', 'number': 11, 'pull_reque... True \n", - "289 {'ref': 'hwwhww-patch-1', 'ref_type': 'branch'... True \n", - "290 {'push_id': 3134866869, 'size': 1, 'distinct_s... True \n", - "291 {'action': 'closed', 'number': 310, 'pull_requ... True \n", - "292 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "279 {'action': 'created', 'issue': {'url': 'https:... True \n", + "280 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "281 {'push_id': 3135938748, 'size': 1, 'distinct_s... True \n", + "282 {'action': 'created', 'issue': {'url': 'https:... True \n", + "283 {'action': 'opened', 'number': 1597, 'pull_req... True \n", + "284 {'ref': 'circleci-mac', 'ref_type': 'branch', ... True \n", + "285 {'forkee': {'id': 161696773, 'node_id': 'MDEwO... True \n", + "286 {'push_id': 3135924837, 'size': 1, 'distinct_s... True \n", + "287 {'action': 'created', 'issue': {'url': 'https:... True \n", + "288 {'action': 'published', 'release': {'url': 'ht... True \n", + "289 {'action': 'created', 'comment': {'url': 'http... True \n", + "290 {'action': 'created', 'comment': {'url': 'http... True \n", + "291 {'action': 'created', 'comment': {'url': 'http... True \n", + "292 {'action': 'opened', 'number': 1596, 'pull_req... True \n", "293 {'action': 'created', 'issue': {'url': 'https:... True \n", - "294 {'push_id': 3134850927, 'size': 1, 'distinct_s... True \n", + "294 {'action': 'created', 'issue': {'url': 'https:... True \n", + "295 {'action': 'created', 'issue': {'url': 'https:... True \n", + "296 {'action': 'created', 'issue': {'url': 'https:... True \n", + "297 {'action': 'created', 'issue': {'url': 'https:... True \n", + "298 {'action': 'created', 'issue': {'url': 'https:... True \n", "\n", " created_at org \n", - "0 2018-12-13T23:05:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "1 2018-12-13T23:02:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "2 2018-12-13T23:02:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "3 2018-12-13T22:57:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "4 2018-12-13T22:55:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "5 2018-12-13T22:52:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "6 2018-12-13T22:49:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "7 2018-12-13T22:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "8 2018-12-13T22:48:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "9 2018-12-13T22:44:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "10 2018-12-13T22:43:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "11 2018-12-13T22:42:26Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "12 2018-12-13T22:42:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "13 2018-12-13T22:41:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "14 2018-12-13T22:41:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "15 2018-12-13T22:39:13Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "16 2018-12-13T22:38:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "17 2018-12-13T22:37:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "18 2018-12-13T22:31:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "19 2018-12-13T22:28:08Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "20 2018-12-13T22:28:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "21 2018-12-13T22:23:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "22 2018-12-13T22:23:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "23 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "24 2018-12-13T22:23:14Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "25 2018-12-13T22:13:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "26 2018-12-13T22:10:18Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "27 2018-12-13T22:07:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "28 2018-12-13T22:07:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "29 2018-12-13T22:07:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "0 2018-12-14T11:37:25Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "1 2018-12-14T11:35:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "2 2018-12-14T11:35:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "3 2018-12-14T11:32:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "4 2018-12-14T11:31:32Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "5 2018-12-14T11:31:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "6 2018-12-14T11:31:01Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "7 2018-12-14T11:29:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "8 2018-12-14T11:28:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "9 2018-12-14T11:26:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "10 2018-12-14T11:22:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "11 2018-12-14T11:22:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "12 2018-12-14T11:20:52Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "13 2018-12-14T11:20:51Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "14 2018-12-14T11:19:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "15 2018-12-14T11:17:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "16 2018-12-14T11:12:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "17 2018-12-14T11:12:23Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "18 2018-12-14T11:05:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "19 2018-12-14T11:00:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "20 2018-12-14T10:58:07Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "21 2018-12-14T10:58:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "22 2018-12-14T10:52:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "23 2018-12-14T10:47:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "24 2018-12-14T10:45:40Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "25 2018-12-14T10:42:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "26 2018-12-14T10:41:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "27 2018-12-14T10:40:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "28 2018-12-14T10:40:23Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "29 2018-12-14T10:40:20Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", ".. ... ... \n", - "265 2018-12-13T15:59:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "266 2018-12-13T15:57:36Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "267 2018-12-13T15:55:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "268 2018-12-13T15:55:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "269 2018-12-13T15:55:10Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "270 2018-12-13T15:51:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "271 2018-12-13T15:51:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "272 2018-12-13T15:50:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "273 2018-12-13T15:47:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "274 2018-12-13T15:46:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "275 2018-12-13T15:46:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "276 2018-12-13T15:46:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "277 2018-12-13T15:46:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "278 2018-12-13T15:45:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "279 2018-12-13T15:44:22Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "280 2018-12-13T15:44:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "281 2018-12-13T15:41:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "282 2018-12-13T15:41:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "283 2018-12-13T15:40:54Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "284 2018-12-13T15:40:44Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "285 2018-12-13T15:40:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "286 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "287 2018-12-13T15:39:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "288 2018-12-13T15:38:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "289 2018-12-13T15:37:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "290 2018-12-13T15:36:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "291 2018-12-13T15:36:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "292 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "293 2018-12-13T15:33:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "294 2018-12-13T15:32:33Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "269 2018-12-13T21:45:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "270 2018-12-13T21:44:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "271 2018-12-13T21:44:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "272 2018-12-13T21:43:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "273 2018-12-13T21:41:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "274 2018-12-13T21:40:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "275 2018-12-13T21:38:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "276 2018-12-13T21:38:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "277 2018-12-13T21:38:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "278 2018-12-13T21:38:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "279 2018-12-13T21:32:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "280 2018-12-13T21:32:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "281 2018-12-13T21:30:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "282 2018-12-13T21:30:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "283 2018-12-13T21:29:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "284 2018-12-13T21:28:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "285 2018-12-13T21:27:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "286 2018-12-13T21:25:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "287 2018-12-13T21:21:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "288 2018-12-13T21:17:43Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "289 2018-12-13T21:16:31Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "290 2018-12-13T21:16:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "291 2018-12-13T21:14:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "292 2018-12-13T21:15:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "293 2018-12-13T21:15:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "294 2018-12-13T21:13:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "295 2018-12-13T21:13:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "296 2018-12-13T21:10:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "297 2018-12-13T21:09:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "298 2018-12-13T21:06:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", "\n", - "[295 rows x 8 columns]" + "[299 rows x 8 columns]" ] }, - "execution_count": 62, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -1311,7 +1270,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 6, "metadata": { "colab": { "autoexec": { @@ -1341,7 +1300,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'IssueCommentEvent': 83, 'PullRequestReviewCommentEvent': 35, 'PushEvent': 73, 'PullRequestEvent': 39, 'CreateEvent': 17, 'IssuesEvent': 18, 'WatchEvent': 21, 'ForkEvent': 4, 'ReleaseEvent': 1, 'GollumEvent': 1, 'DeleteEvent': 3}\n" + "{'PushEvent': 36, 'IssueCommentEvent': 55, 'ForkEvent': 20, 'WatchEvent': 52, 'PullRequestReviewCommentEvent': 52, 'IssuesEvent': 19, 'PullRequestEvent': 35, 'DeleteEvent': 3, 'GollumEvent': 19, 'CreateEvent': 7, 'ReleaseEvent': 1}\n" ] } ], @@ -1367,7 +1326,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 7, "metadata": { "colab": { "autoexec": { @@ -1397,7 +1356,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}\n" + "{'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 6, 'cburgdorf': 12, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 3, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 2, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 2, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 7, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 26, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 5, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}\n" ] } ], @@ -1424,7 +1383,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 8, "metadata": { "colab": { "autoexec": { @@ -1451,7 +1410,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 9, "metadata": { "colab": { "autoexec": { @@ -1472,7 +1431,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 10, "metadata": { "colab": { "autoexec": { @@ -1502,7 +1461,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + "{'2018-12-14': {'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0, 'binary-adam': 0, 'jpeletier': 0, 'AlexeyAkhunov': 0, 'veox': 0}, '2018-12-13': {'chriseth': 0, 'leonardoalt': 0, 'FrankSzendzielarz': 0, '3for': 0, 'holiman': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 3, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'ekpyron': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'njgheorghita': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'ChihChengLiang': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 20, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}}\n" ] } ], @@ -1530,7 +1489,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 11, "metadata": { "colab": { "autoexec": { @@ -1560,7 +1519,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}\n" + "{'olidity-test-bytecode': 6, 'olidity': 12, 'ive': 8, 'esearch': 2, 'y-evm': 64, 'leth': 14, 'o-ethereum': 49, 'yper': 11, 'ytest-ethereum': 3, 'ist-shell': 6, 'app-bin': 1, 'eb3.js': 15, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 29, 'vmlab': 1, 'eb3.py': 19, 'IPs': 4, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 2, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}\n" ] } ], @@ -1588,7 +1547,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 12, "metadata": { "colab": { "autoexec": { @@ -1609,7 +1568,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 13, "metadata": { "colab": { "autoexec": { @@ -1639,7 +1598,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-13': {'yper': 14, 'y-evm': 82, 'leth': 3, 'etesteth': 5, 'eb3.py': 12, 'eb3.js': 10, 'ist-shell': 11, 'evp2p': 1, 'o-ethereum': 13, 'yethereum': 1, 'th2.0-specs': 31, 'y-solc': 1, 'olidity': 40, 'ytest-ethereum': 2, 'th-keys': 1, 'IPs': 8, 'm': 2, 'y-ssz': 12, 'ellowpaper': 1, 'nake-charmers-blog': 6, 'olc-js': 1, 'thereum-react-components': 4, 'olidity-test-bytecode': 20, 'warm-dapps': 2, 'ive': 3, 'ist': 2, 'ests': 5, 'th2.0-pm': 1, 'thash': 1}}\n" + "{'2018-12-14': {'olidity-test-bytecode': 6, 'olidity': 10, 'ive': 8, 'esearch': 2, 'y-evm': 27, 'leth': 8, 'o-ethereum': 44, 'yper': 5, 'ytest-ethereum': 1, 'ist-shell': 3, 'app-bin': 1, 'eb3.js': 12, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 24, 'vmlab': 1, 'eb3.py': 5, 'IPs': 3, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 1, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 0, 'evp2p': 0, 'y-solc': 0, 'th-keys': 0}, '2018-12-13': {'olidity-test-bytecode': 0, 'olidity': 2, 'ive': 0, 'esearch': 0, 'y-evm': 37, 'leth': 6, 'o-ethereum': 5, 'yper': 6, 'ytest-ethereum': 2, 'ist-shell': 3, 'app-bin': 0, 'eb3.js': 3, 'iki': 0, 'y-ssz': 0, 'th2.0-specs': 5, 'vmlab': 0, 'eb3.py': 14, 'IPs': 1, 'y_ecc': 0, 'olc-js': 0, 'yethereum': 1, 'eteor-dapp-wallet': 0, 'eacon_chain': 0, 'harding': 0, 'ist': 0, 'ests': 0, 'nake-charmers-tactical-manual': 0, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}}\n" ] } ], @@ -1668,7 +1627,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 14, "metadata": { "colab": { "autoexec": { @@ -1690,7 +1649,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 15, "metadata": { "colab": { "autoexec": { @@ -1719,10 +1678,10 @@ { "data": { "text/plain": [ - "23" + "11" ] }, - "execution_count": 72, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -1733,7 +1692,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 16, "metadata": { "colab": { "autoexec": { @@ -1757,7 +1716,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 17, "metadata": { "colab": { "autoexec": { @@ -1786,10 +1745,10 @@ { "data": { "text/plain": [ - "'Night Owl'" + "'Early Bird'" ] }, - "execution_count": 74, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -1800,7 +1759,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 18, "metadata": { "colab": { "autoexec": { @@ -1830,7 +1789,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'Early Bird': {}, 'Midday': {'2018-12-13': 124}, 'Night Owl': {'2018-12-13': 171}}\n" + "{'Early Bird': {'2018-12-14': 142}, 'Midday': {}, 'Night Owl': {'2018-12-14': 66, '2018-12-13': 91}}\n" ] } ], @@ -1871,7 +1830,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 19, "metadata": { "colab": { "autoexec": { @@ -1901,7 +1860,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'veox', 'type': 'bar'}]\n" ] } ], @@ -1931,7 +1890,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 20, "metadata": { "colab": { "autoexec": { @@ -1961,7 +1920,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-13': 72}\n" + "{'2018-12-14': 101, '2018-12-13': 28}\n" ] } ], @@ -1990,7 +1949,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 21, "metadata": { "colab": { "autoexec": { @@ -2020,7 +1979,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-13': 72}\n" + "{'2018-12-14': 101, '2018-12-13': 28}\n" ] } ], @@ -2038,7 +1997,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 22, "metadata": { "colab": { "autoexec": { @@ -2068,7 +2027,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['2018-12-13'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'caotic123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ryanio', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'timl206', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'PhABC', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'zscole', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [0], 'name': 'ndc07', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'veox', 'type': 'bar'}]\n" ] } ], @@ -2114,7 +2073,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 23, "metadata": { "colab": { "autoexec": { @@ -2145,7 +2104,7 @@ "output_type": "stream", "text": [ "0\n", - "{'1 Week(s) Ago': 72}\n" + "{'1 Week(s) Ago': 121}\n" ] } ], @@ -2179,7 +2138,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 24, "metadata": { "colab": { "autoexec": { @@ -2209,8 +2168,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-13': {'fubuloubu': 5, 'pipermerriam': 32, 'halfalicious': 3, 'codecov-io': 1, 'jakerockland': 4, 'carver': 38, 'nivida': 7, 'kclowes': 6, 'evertonfraga': 11, 'winsvega': 9, 'dylanjw': 1, 'cburgdorf': 8, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 11, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 2, 'veox': 9, 'SabraAS': 1, 'hcaw': 2, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 17, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 2, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 6, 'chriseth': 45, 'CrystalEyes7': 1, 'marcgarreau': 3, 'riusricardo': 1, 'FrankSzendzielarz': 3, 'leonardoalt': 7, 'hwwhww': 7, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 3, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 3, 'arnetheduck': 1, 'jacqueswww': 3, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n", - "{'1 Week(s) Ago': {'fubuloubu': 1, 'pipermerriam': 1, 'halfalicious': 1, 'codecov-io': 1, 'jakerockland': 1, 'carver': 1, 'nivida': 1, 'kclowes': 1, 'evertonfraga': 1, 'winsvega': 1, 'dylanjw': 1, 'cburgdorf': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'charles-cooper': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1, 'SabraAS': 1, 'hcaw': 1, 'caotic123': 1, 'zach-is-my-name': 1, 'Arachnid': 1, 'djrtwo': 1, 'EBGToo': 1, 'Hilobrain': 1, 'Afzalshah38': 1, 'nolash': 1, 'eip-automerger': 1, 'ifdefelse': 1, 'perlmutterlabs': 1, 'vngkv123': 1, 'LogvinovLeon': 1, 'stale[bot]': 1, 'AnuragHydro': 1, 'ryanio': 1, 'jannikluhn': 1, 'chriseth': 1, 'CrystalEyes7': 1, 'marcgarreau': 1, 'riusricardo': 1, 'FrankSzendzielarz': 1, 'leonardoalt': 1, 'hwwhww': 1, 'rahulvickysingh008': 1, 'rauljordan': 1, 'christianparpart': 1, 'gitcoinbot': 1, 'Bhargavasomu': 1, 'dilbydilby': 1, 'haltman-at': 1, 'SODAMFIA': 1, 'timl206': 1, 'terenc3t': 1, 'Snetw': 1, 'arnetheduck': 1, 'jacqueswww': 1, 'hamzaenaime': 1, 'PhABC': 1, 'zscole': 1, 'lookfirst': 1, 'gangnamtestnet': 1, 'ndc07': 1}}\n" + "{'2018-12-14': {'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0, 'binary-adam': 0, 'jpeletier': 0, 'AlexeyAkhunov': 0, 'veox': 0}, '2018-12-13': {'chriseth': 0, 'leonardoalt': 0, 'FrankSzendzielarz': 0, '3for': 0, 'holiman': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 3, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'ekpyron': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'njgheorghita': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'ChihChengLiang': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 20, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}}\n", + "{'1 Week(s) Ago': {'chriseth': 1, 'leonardoalt': 1, 'FrankSzendzielarz': 1, '3for': 1, 'holiman': 1, '1tD0g': 1, 'gumb0': 1, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 1, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 1, 'cburgdorf': 1, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 1, 'nafidurmus': 1, 'joshstevens19': 1, 'totaking': 1, 'z08053520': 1, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 1, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 1, 'hwwhww': 1, 'jamesray1': 1, 'nisdas': 1, 'ChihChengLiang': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 1, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 1, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 1, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 1, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 1, 'carver': 1, 'pakaplace': 1, 'zelig': 1, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 1, 'ajbennett': 1, 'fubuloubu': 1, 'pipermerriam': 1, 'nivida': 1, 'winsvega': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1}}\n" ] } ], @@ -2245,7 +2204,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 25, "metadata": { "colab": { "autoexec": { @@ -2275,7 +2234,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SabraAS', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hcaw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'caotic123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zach-is-my-name', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Arachnid', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'djrtwo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'EBGToo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Hilobrain', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Afzalshah38', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'eip-automerger', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ifdefelse', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'perlmutterlabs', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vngkv123', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'LogvinovLeon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'stale[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AnuragHydro', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ryanio', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'CrystalEyes7', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'marcgarreau', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'riusricardo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rahulvickysingh008', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gitcoinbot', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dilbydilby', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'haltman-at', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SODAMFIA', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'timl206', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'terenc3t', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Snetw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'arnetheduck', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jacqueswww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hamzaenaime', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'PhABC', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zscole', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lookfirst', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gangnamtestnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ndc07', 'type': 'bar'}]\n" + "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '3for', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'holiman', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '1tD0g', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gumb0', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miohtama', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hkk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'racmnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'toannk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'b00ris', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'smgqk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'totaking', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'z08053520', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lag945', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jolestar', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'mratsim', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ligi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'aj07', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nisdas', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cderong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'serical', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bytom', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'IExpo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'novemberde', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lola73', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vardan10', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nanjia', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'NIC619', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yorzi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dete', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zelig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}]\n" ] } ], @@ -2317,7 +2276,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 26, "metadata": { "colab": { "autoexec": { @@ -2336,7 +2295,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 27, "metadata": { "colab": { "autoexec": { @@ -2367,7 +2326,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 28, "metadata": { "colab": { "autoexec": { @@ -2397,7 +2356,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['IssueCommentEvent', 'PullRequestReviewCommentEvent', 'PushEvent', 'PullRequestEvent', 'CreateEvent', 'IssuesEvent', 'WatchEvent', 'ForkEvent', 'ReleaseEvent', 'GollumEvent', 'DeleteEvent'] [83, 35, 73, 39, 17, 18, 21, 4, 1, 1, 3]\n" + "['PushEvent', 'IssueCommentEvent', 'ForkEvent', 'WatchEvent', 'PullRequestReviewCommentEvent', 'IssuesEvent', 'PullRequestEvent', 'DeleteEvent', 'GollumEvent', 'CreateEvent', 'ReleaseEvent'] [36, 55, 20, 52, 52, 19, 35, 3, 19, 7, 1]\n" ] } ], @@ -2413,7 +2372,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 29, "metadata": { "colab": { "autoexec": { @@ -2446,6 +2405,16 @@ "High five! You successfully sent some data to your account on plotly. View your plot in your browser at https://plot.ly/~amisolution/0 or inside your plot.ly account where it is named 'eventPie'\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/srv/conda/lib/python3.6/site-packages/IPython/core/display.py:689: UserWarning:\n", + "\n", + "Consider using IPython.display.IFrame instead\n", + "\n" + ] + }, { "data": { "text/html": [ @@ -2455,7 +2424,7 @@ "" ] }, - "execution_count": 86, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -2478,7 +2447,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 30, "metadata": { "colab": { "autoexec": { @@ -2507,13 +2476,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 87, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -2539,7 +2508,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 31, "metadata": { "colab": { "autoexec": { @@ -2569,7 +2538,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'fubuloubu': ['2018-12-13'], 'pipermerriam': ['2018-12-13'], 'halfalicious': ['2018-12-13'], 'codecov-io': ['2018-12-13'], 'jakerockland': ['2018-12-13'], 'carver': ['2018-12-13'], 'nivida': ['2018-12-13'], 'kclowes': ['2018-12-13'], 'evertonfraga': ['2018-12-13'], 'winsvega': ['2018-12-13'], 'dylanjw': ['2018-12-13'], 'cburgdorf': ['2018-12-13'], 'ur5us': ['2018-12-13'], 'davesque': ['2018-12-13'], 'Jeongjaegu': ['2018-12-13'], 'alexwanng': ['2018-12-13'], 'JustinDrake': ['2018-12-13'], 'kswizzlek': ['2018-12-13'], 'pryce-turner': ['2018-12-13'], 'humboo': ['2018-12-13'], 'voermx': ['2018-12-13'], 'charles-cooper': ['2018-12-13'], 'sandakersmann': ['2018-12-13'], 'binary-adam': ['2018-12-13'], 'jpeletier': ['2018-12-13'], 'AlexeyAkhunov': ['2018-12-13'], 'veox': ['2018-12-13'], 'SabraAS': ['2018-12-13'], 'hcaw': ['2018-12-13'], 'caotic123': ['2018-12-13'], 'zach-is-my-name': ['2018-12-13'], 'Arachnid': ['2018-12-13'], 'djrtwo': ['2018-12-13'], 'EBGToo': ['2018-12-13'], 'Hilobrain': ['2018-12-13'], 'Afzalshah38': ['2018-12-13'], 'nolash': ['2018-12-13'], 'eip-automerger': ['2018-12-13'], 'ifdefelse': ['2018-12-13'], 'perlmutterlabs': ['2018-12-13'], 'vngkv123': ['2018-12-13'], 'LogvinovLeon': ['2018-12-13'], 'stale[bot]': ['2018-12-13'], 'AnuragHydro': ['2018-12-13'], 'ryanio': ['2018-12-13'], 'jannikluhn': ['2018-12-13'], 'chriseth': ['2018-12-13'], 'CrystalEyes7': ['2018-12-13'], 'marcgarreau': ['2018-12-13'], 'riusricardo': ['2018-12-13'], 'FrankSzendzielarz': ['2018-12-13'], 'leonardoalt': ['2018-12-13'], 'hwwhww': ['2018-12-13'], 'rahulvickysingh008': ['2018-12-13'], 'rauljordan': ['2018-12-13'], 'christianparpart': ['2018-12-13'], 'gitcoinbot': ['2018-12-13'], 'Bhargavasomu': ['2018-12-13'], 'dilbydilby': ['2018-12-13'], 'haltman-at': ['2018-12-13'], 'SODAMFIA': ['2018-12-13'], 'timl206': ['2018-12-13'], 'terenc3t': ['2018-12-13'], 'Snetw': ['2018-12-13'], 'arnetheduck': ['2018-12-13'], 'jacqueswww': ['2018-12-13'], 'hamzaenaime': ['2018-12-13'], 'PhABC': ['2018-12-13'], 'zscole': ['2018-12-13'], 'lookfirst': ['2018-12-13'], 'gangnamtestnet': ['2018-12-13'], 'ndc07': ['2018-12-13']}\n" + "{'chriseth': ['2018-12-14', '2018-12-13'], 'leonardoalt': ['2018-12-14', '2018-12-13'], 'FrankSzendzielarz': ['2018-12-14', '2018-12-13'], '3for': ['2018-12-14', '2018-12-13'], 'holiman': ['2018-12-14', '2018-12-13'], '1tD0g': ['2018-12-14', '2018-12-13'], 'gumb0': ['2018-12-14', '2018-12-13'], 'naikmyeong': ['2018-12-14', '2018-12-13'], 'miohtama': ['2018-12-14', '2018-12-13'], 'hkk': ['2018-12-14', '2018-12-13'], 'kyledewy': ['2018-12-14', '2018-12-13'], 'racmnet': ['2018-12-14', '2018-12-13'], 'toannk': ['2018-12-14', '2018-12-13'], 'b00ris': ['2018-12-14', '2018-12-13'], 'evertonfraga': ['2018-12-14', '2018-12-13'], 'cburgdorf': ['2018-12-14', '2018-12-13'], 'smgqk': ['2018-12-14', '2018-12-13'], 'cuidezhu': ['2018-12-14', '2018-12-13'], '0xC0DE4C0FFEE': ['2018-12-14', '2018-12-13'], 'rodrigo-garcia-leon': ['2018-12-14', '2018-12-13'], 'ekpyron': ['2018-12-14', '2018-12-13'], 'codecov[bot]': ['2018-12-14', '2018-12-13'], 'christianparpart': ['2018-12-14', '2018-12-13'], 'nafidurmus': ['2018-12-14', '2018-12-13'], 'joshstevens19': ['2018-12-14', '2018-12-13'], 'totaking': ['2018-12-14', '2018-12-13'], 'z08053520': ['2018-12-14', '2018-12-13'], 'lishenglincn': ['2018-12-14', '2018-12-13'], 'lag945': ['2018-12-14', '2018-12-13'], 'jannikluhn': ['2018-12-14', '2018-12-13'], 'shimakaze-git': ['2018-12-14', '2018-12-13'], 'jolestar': ['2018-12-14', '2018-12-13'], 'mratsim': ['2018-12-14', '2018-12-13'], 'xiaoch05': ['2018-12-14', '2018-12-13'], 'cheatfate': ['2018-12-14', '2018-12-13'], 'Dreampursers': ['2018-12-14', '2018-12-13'], 'ligi': ['2018-12-14', '2018-12-13'], 'Drunpi': ['2018-12-14', '2018-12-13'], 'jinhokong': ['2018-12-14', '2018-12-13'], 'aj07': ['2018-12-14', '2018-12-13'], 'njgheorghita': ['2018-12-14', '2018-12-13'], 'hwwhww': ['2018-12-14', '2018-12-13'], 'jamesray1': ['2018-12-14', '2018-12-13'], 'nisdas': ['2018-12-14', '2018-12-13'], 'ChihChengLiang': ['2018-12-14', '2018-12-13'], 'cderong': ['2018-12-14', '2018-12-13'], 'serical': ['2018-12-14', '2018-12-13'], 'yahtoo': ['2018-12-14', '2018-12-13'], 'ByLuxury': ['2018-12-14', '2018-12-13'], 'Bhargavasomu': ['2018-12-14', '2018-12-13'], 'jakerockland': ['2018-12-14', '2018-12-13'], 'ParkIan': ['2018-12-14', '2018-12-13'], 'Bytom': ['2018-12-14', '2018-12-13'], 'RichardLai88': ['2018-12-14', '2018-12-13'], 'chrislo2004': ['2018-12-14', '2018-12-13'], 'jeikhan': ['2018-12-14', '2018-12-13'], 'IExpo': ['2018-12-14', '2018-12-13'], 'zhiyul': ['2018-12-14', '2018-12-13'], 'novemberde': ['2018-12-14', '2018-12-13'], 'naveen7252': ['2018-12-14', '2018-12-13'], 'quangdo3112': ['2018-12-14', '2018-12-13'], 'bhalla98': ['2018-12-14', '2018-12-13'], 'rexshihaoren': ['2018-12-14', '2018-12-13'], 'lola73': ['2018-12-14', '2018-12-13'], 'rauljordan': ['2018-12-14', '2018-12-13'], 'vardan10': ['2018-12-14', '2018-12-13'], 'YaoZengzeng': ['2018-12-14', '2018-12-13'], 'amitOodles': ['2018-12-14', '2018-12-13'], 'nanjia': ['2018-12-14', '2018-12-13'], 'xuefengyuan': ['2018-12-14', '2018-12-13'], 'Tinycl': ['2018-12-14', '2018-12-13'], 'Gilbertly': ['2018-12-14', '2018-12-13'], 'ArnauSantamaria': ['2018-12-14', '2018-12-13'], 'charles-cooper': ['2018-12-14', '2018-12-13'], 'hsauers5': ['2018-12-14', '2018-12-13'], 'vinaymavi': ['2018-12-14', '2018-12-13'], 'vbuterin': ['2018-12-14', '2018-12-13'], 'anirudh-chhangani': ['2018-12-14', '2018-12-13'], 'hiro8ma': ['2018-12-14', '2018-12-13'], 'NIC619': ['2018-12-14', '2018-12-13'], 'jeojoe': ['2018-12-14', '2018-12-13'], 'dctlsk': ['2018-12-14', '2018-12-13'], 'codecov-io': ['2018-12-14', '2018-12-13'], 'yorzi': ['2018-12-14', '2018-12-13'], 'chiaki-i': ['2018-12-14', '2018-12-13'], 'coolhackboy': ['2018-12-14', '2018-12-13'], 'halfalicious': ['2018-12-14', '2018-12-13'], 'dete': ['2018-12-14', '2018-12-13'], 'zouguangxian': ['2018-12-14', '2018-12-13'], 'landedexperts': ['2018-12-14', '2018-12-13'], 'SamuelMarks': ['2018-12-14', '2018-12-13'], 'nolash': ['2018-12-14', '2018-12-13'], 'carver': ['2018-12-14', '2018-12-13'], 'pakaplace': ['2018-12-14', '2018-12-13'], 'zelig': ['2018-12-14', '2018-12-13'], 'lostjcwide': ['2018-12-14', '2018-12-13'], 'tootooquan': ['2018-12-14', '2018-12-13'], 'BITjiangrui': ['2018-12-14', '2018-12-13'], 'akkaorig': ['2018-12-14', '2018-12-13'], 'miguelmota': ['2018-12-14', '2018-12-13'], 'kclowes': ['2018-12-14', '2018-12-13'], 'dylanjw': ['2018-12-14', '2018-12-13'], 'ajbennett': ['2018-12-14', '2018-12-13'], 'fubuloubu': ['2018-12-14', '2018-12-13'], 'pipermerriam': ['2018-12-14', '2018-12-13'], 'nivida': ['2018-12-14', '2018-12-13'], 'winsvega': ['2018-12-14', '2018-12-13'], 'ur5us': ['2018-12-14', '2018-12-13'], 'davesque': ['2018-12-14', '2018-12-13'], 'Jeongjaegu': ['2018-12-14', '2018-12-13'], 'alexwanng': ['2018-12-14', '2018-12-13'], 'JustinDrake': ['2018-12-14', '2018-12-13'], 'kswizzlek': ['2018-12-14', '2018-12-13'], 'pryce-turner': ['2018-12-14', '2018-12-13'], 'humboo': ['2018-12-14', '2018-12-13'], 'voermx': ['2018-12-14', '2018-12-13'], 'sandakersmann': ['2018-12-14', '2018-12-13'], 'binary-adam': ['2018-12-14', '2018-12-13'], 'jpeletier': ['2018-12-14', '2018-12-13'], 'AlexeyAkhunov': ['2018-12-14', '2018-12-13'], 'veox': ['2018-12-14', '2018-12-13']}\n" ] } ], @@ -2590,7 +2559,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 32, "metadata": { "colab": { "autoexec": { @@ -2620,7 +2589,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'fubuloubu': {'2018-12-13': 5}, 'pipermerriam': {'2018-12-13': 32}, 'halfalicious': {'2018-12-13': 3}, 'codecov-io': {'2018-12-13': 1}, 'jakerockland': {'2018-12-13': 4}, 'carver': {'2018-12-13': 38}, 'nivida': {'2018-12-13': 7}, 'kclowes': {'2018-12-13': 6}, 'evertonfraga': {'2018-12-13': 11}, 'winsvega': {'2018-12-13': 9}, 'dylanjw': {'2018-12-13': 1}, 'cburgdorf': {'2018-12-13': 8}, 'ur5us': {'2018-12-13': 1}, 'davesque': {'2018-12-13': 1}, 'Jeongjaegu': {'2018-12-13': 1}, 'alexwanng': {'2018-12-13': 1}, 'JustinDrake': {'2018-12-13': 11}, 'kswizzlek': {'2018-12-13': 1}, 'pryce-turner': {'2018-12-13': 1}, 'humboo': {'2018-12-13': 1}, 'voermx': {'2018-12-13': 1}, 'charles-cooper': {'2018-12-13': 1}, 'sandakersmann': {'2018-12-13': 2}, 'binary-adam': {'2018-12-13': 1}, 'jpeletier': {'2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-13': 2}, 'veox': {'2018-12-13': 9}, 'SabraAS': {'2018-12-13': 1}, 'hcaw': {'2018-12-13': 2}, 'caotic123': {'2018-12-13': 1}, 'zach-is-my-name': {'2018-12-13': 1}, 'Arachnid': {'2018-12-13': 1}, 'djrtwo': {'2018-12-13': 17}, 'EBGToo': {'2018-12-13': 1}, 'Hilobrain': {'2018-12-13': 1}, 'Afzalshah38': {'2018-12-13': 1}, 'nolash': {'2018-12-13': 1}, 'eip-automerger': {'2018-12-13': 2}, 'ifdefelse': {'2018-12-13': 1}, 'perlmutterlabs': {'2018-12-13': 1}, 'vngkv123': {'2018-12-13': 1}, 'LogvinovLeon': {'2018-12-13': 1}, 'stale[bot]': {'2018-12-13': 1}, 'AnuragHydro': {'2018-12-13': 1}, 'ryanio': {'2018-12-13': 1}, 'jannikluhn': {'2018-12-13': 6}, 'chriseth': {'2018-12-13': 45}, 'CrystalEyes7': {'2018-12-13': 1}, 'marcgarreau': {'2018-12-13': 3}, 'riusricardo': {'2018-12-13': 1}, 'FrankSzendzielarz': {'2018-12-13': 3}, 'leonardoalt': {'2018-12-13': 7}, 'hwwhww': {'2018-12-13': 7}, 'rahulvickysingh008': {'2018-12-13': 1}, 'rauljordan': {'2018-12-13': 1}, 'christianparpart': {'2018-12-13': 3}, 'gitcoinbot': {'2018-12-13': 1}, 'Bhargavasomu': {'2018-12-13': 1}, 'dilbydilby': {'2018-12-13': 1}, 'haltman-at': {'2018-12-13': 1}, 'SODAMFIA': {'2018-12-13': 1}, 'timl206': {'2018-12-13': 1}, 'terenc3t': {'2018-12-13': 1}, 'Snetw': {'2018-12-13': 3}, 'arnetheduck': {'2018-12-13': 1}, 'jacqueswww': {'2018-12-13': 3}, 'hamzaenaime': {'2018-12-13': 1}, 'PhABC': {'2018-12-13': 1}, 'zscole': {'2018-12-13': 1}, 'lookfirst': {'2018-12-13': 1}, 'gangnamtestnet': {'2018-12-13': 1}, 'ndc07': {'2018-12-13': 1}}\n" + "{'chriseth': {'2018-12-14': 6, '2018-12-13': 0}, 'leonardoalt': {'2018-12-14': 2, '2018-12-13': 0}, 'FrankSzendzielarz': {'2018-12-14': 2, '2018-12-13': 0}, '3for': {'2018-12-14': 2, '2018-12-13': 0}, 'holiman': {'2018-12-14': 17, '2018-12-13': 0}, '1tD0g': {'2018-12-14': 1, '2018-12-13': 0}, 'gumb0': {'2018-12-14': 4, '2018-12-13': 0}, 'naikmyeong': {'2018-12-14': 1, '2018-12-13': 0}, 'miohtama': {'2018-12-14': 1, '2018-12-13': 0}, 'hkk': {'2018-12-14': 1, '2018-12-13': 0}, 'kyledewy': {'2018-12-14': 1, '2018-12-13': 0}, 'racmnet': {'2018-12-14': 2, '2018-12-13': 0}, 'toannk': {'2018-12-14': 1, '2018-12-13': 0}, 'b00ris': {'2018-12-14': 1, '2018-12-13': 0}, 'evertonfraga': {'2018-12-14': 3, '2018-12-13': 3}, 'cburgdorf': {'2018-12-14': 9, '2018-12-13': 3}, 'smgqk': {'2018-12-14': 1, '2018-12-13': 0}, 'cuidezhu': {'2018-12-14': 1, '2018-12-13': 0}, '0xC0DE4C0FFEE': {'2018-12-14': 1, '2018-12-13': 0}, 'rodrigo-garcia-leon': {'2018-12-14': 1, '2018-12-13': 0}, 'ekpyron': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov[bot]': {'2018-12-14': 1, '2018-12-13': 0}, 'christianparpart': {'2018-12-14': 3, '2018-12-13': 0}, 'nafidurmus': {'2018-12-14': 1, '2018-12-13': 0}, 'joshstevens19': {'2018-12-14': 2, '2018-12-13': 0}, 'totaking': {'2018-12-14': 3, '2018-12-13': 0}, 'z08053520': {'2018-12-14': 2, '2018-12-13': 0}, 'lishenglincn': {'2018-12-14': 1, '2018-12-13': 0}, 'lag945': {'2018-12-14': 1, '2018-12-13': 0}, 'jannikluhn': {'2018-12-14': 1, '2018-12-13': 0}, 'shimakaze-git': {'2018-12-14': 1, '2018-12-13': 0}, 'jolestar': {'2018-12-14': 1, '2018-12-13': 0}, 'mratsim': {'2018-12-14': 1, '2018-12-13': 0}, 'xiaoch05': {'2018-12-14': 1, '2018-12-13': 0}, 'cheatfate': {'2018-12-14': 1, '2018-12-13': 0}, 'Dreampursers': {'2018-12-14': 1, '2018-12-13': 0}, 'ligi': {'2018-12-14': 3, '2018-12-13': 0}, 'Drunpi': {'2018-12-14': 1, '2018-12-13': 0}, 'jinhokong': {'2018-12-14': 1, '2018-12-13': 0}, 'aj07': {'2018-12-14': 1, '2018-12-13': 0}, 'njgheorghita': {'2018-12-14': 3, '2018-12-13': 0}, 'hwwhww': {'2018-12-14': 19, '2018-12-13': 0}, 'jamesray1': {'2018-12-14': 17, '2018-12-13': 0}, 'nisdas': {'2018-12-14': 1, '2018-12-13': 0}, 'ChihChengLiang': {'2018-12-14': 3, '2018-12-13': 0}, 'cderong': {'2018-12-14': 1, '2018-12-13': 0}, 'serical': {'2018-12-14': 1, '2018-12-13': 0}, 'yahtoo': {'2018-12-14': 1, '2018-12-13': 0}, 'ByLuxury': {'2018-12-14': 1, '2018-12-13': 0}, 'Bhargavasomu': {'2018-12-14': 2, '2018-12-13': 0}, 'jakerockland': {'2018-12-14': 1, '2018-12-13': 2}, 'ParkIan': {'2018-12-14': 1, '2018-12-13': 0}, 'Bytom': {'2018-12-14': 1, '2018-12-13': 0}, 'RichardLai88': {'2018-12-14': 1, '2018-12-13': 0}, 'chrislo2004': {'2018-12-14': 1, '2018-12-13': 0}, 'jeikhan': {'2018-12-14': 1, '2018-12-13': 0}, 'IExpo': {'2018-12-14': 1, '2018-12-13': 0}, 'zhiyul': {'2018-12-14': 1, '2018-12-13': 0}, 'novemberde': {'2018-12-14': 1, '2018-12-13': 0}, 'naveen7252': {'2018-12-14': 1, '2018-12-13': 0}, 'quangdo3112': {'2018-12-14': 1, '2018-12-13': 0}, 'bhalla98': {'2018-12-14': 1, '2018-12-13': 0}, 'rexshihaoren': {'2018-12-14': 1, '2018-12-13': 0}, 'lola73': {'2018-12-14': 1, '2018-12-13': 0}, 'rauljordan': {'2018-12-14': 1, '2018-12-13': 0}, 'vardan10': {'2018-12-14': 3, '2018-12-13': 0}, 'YaoZengzeng': {'2018-12-14': 1, '2018-12-13': 0}, 'amitOodles': {'2018-12-14': 1, '2018-12-13': 0}, 'nanjia': {'2018-12-14': 1, '2018-12-13': 0}, 'xuefengyuan': {'2018-12-14': 1, '2018-12-13': 0}, 'Tinycl': {'2018-12-14': 1, '2018-12-13': 0}, 'Gilbertly': {'2018-12-14': 2, '2018-12-13': 0}, 'ArnauSantamaria': {'2018-12-14': 1, '2018-12-13': 0}, 'charles-cooper': {'2018-12-14': 1, '2018-12-13': 1}, 'hsauers5': {'2018-12-14': 1, '2018-12-13': 0}, 'vinaymavi': {'2018-12-14': 1, '2018-12-13': 0}, 'vbuterin': {'2018-12-14': 10, '2018-12-13': 0}, 'anirudh-chhangani': {'2018-12-14': 1, '2018-12-13': 0}, 'hiro8ma': {'2018-12-14': 1, '2018-12-13': 0}, 'NIC619': {'2018-12-14': 1, '2018-12-13': 0}, 'jeojoe': {'2018-12-14': 1, '2018-12-13': 0}, 'dctlsk': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov-io': {'2018-12-14': 1, '2018-12-13': 1}, 'yorzi': {'2018-12-14': 1, '2018-12-13': 0}, 'chiaki-i': {'2018-12-14': 1, '2018-12-13': 0}, 'coolhackboy': {'2018-12-14': 1, '2018-12-13': 0}, 'halfalicious': {'2018-12-14': 1, '2018-12-13': 6}, 'dete': {'2018-12-14': 1, '2018-12-13': 0}, 'zouguangxian': {'2018-12-14': 1, '2018-12-13': 0}, 'landedexperts': {'2018-12-14': 1, '2018-12-13': 0}, 'SamuelMarks': {'2018-12-14': 1, '2018-12-13': 0}, 'nolash': {'2018-12-14': 2, '2018-12-13': 0}, 'carver': {'2018-12-14': 6, '2018-12-13': 20}, 'pakaplace': {'2018-12-14': 1, '2018-12-13': 0}, 'zelig': {'2018-12-14': 5, '2018-12-13': 0}, 'lostjcwide': {'2018-12-14': 1, '2018-12-13': 0}, 'tootooquan': {'2018-12-14': 1, '2018-12-13': 0}, 'BITjiangrui': {'2018-12-14': 1, '2018-12-13': 0}, 'akkaorig': {'2018-12-14': 1, '2018-12-13': 0}, 'miguelmota': {'2018-12-14': 1, '2018-12-13': 0}, 'kclowes': {'2018-12-14': 1, '2018-12-13': 4}, 'dylanjw': {'2018-12-14': 0, '2018-12-13': 3}, 'ajbennett': {'2018-12-14': 0, '2018-12-13': 1}, 'fubuloubu': {'2018-12-14': 0, '2018-12-13': 4}, 'pipermerriam': {'2018-12-14': 0, '2018-12-13': 17}, 'nivida': {'2018-12-14': 0, '2018-12-13': 3}, 'winsvega': {'2018-12-14': 0, '2018-12-13': 2}, 'ur5us': {'2018-12-14': 0, '2018-12-13': 1}, 'davesque': {'2018-12-14': 0, '2018-12-13': 1}, 'Jeongjaegu': {'2018-12-14': 0, '2018-12-13': 1}, 'alexwanng': {'2018-12-14': 0, '2018-12-13': 1}, 'JustinDrake': {'2018-12-14': 0, '2018-12-13': 5}, 'kswizzlek': {'2018-12-14': 0, '2018-12-13': 1}, 'pryce-turner': {'2018-12-14': 0, '2018-12-13': 1}, 'humboo': {'2018-12-14': 0, '2018-12-13': 1}, 'voermx': {'2018-12-14': 0, '2018-12-13': 1}, 'sandakersmann': {'2018-12-14': 0, '2018-12-13': 2}, 'binary-adam': {'2018-12-14': 0, '2018-12-13': 1}, 'jpeletier': {'2018-12-14': 0, '2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-14': 0, '2018-12-13': 1}, 'veox': {'2018-12-14': 0, '2018-12-13': 2}}\n" ] } ], @@ -2637,7 +2606,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 33, "metadata": { "colab": { "autoexec": { @@ -2668,149 +2637,247 @@ "output_type": "stream", "text": [ "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-13'], 'y': [5]\n", + " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': '3for', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'holiman', 'x': ['2018-12-14', '2018-12-13'], 'y': [17, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': '1tD0g', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'gumb0', 'x': ['2018-12-14', '2018-12-13'], 'y': [4, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'naikmyeong', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'miohtama', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'hkk', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kyledewy', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'racmnet', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'toannk', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'b00ris', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-14', '2018-12-13'], 'y': [9, 3]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'smgqk', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cuidezhu', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': '0xC0DE4C0FFEE', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'rodrigo-garcia-leon', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ekpyron', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'codecov[bot]', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nafidurmus', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'joshstevens19', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'totaking', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'z08053520', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'lishenglincn', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'lag945', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'shimakaze-git', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jolestar', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'mratsim', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'xiaoch05', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'cheatfate', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Dreampursers', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ligi', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'Drunpi', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jinhokong', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'aj07', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-13'], 'y': [32]\n", + " 'mode': 'markers+lines', 'name': 'njgheorghita', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-14', '2018-12-13'], 'y': [19, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'jamesray1', 'x': ['2018-12-14', '2018-12-13'], 'y': [17, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-13'], 'y': [4]\n", + " 'mode': 'markers+lines', 'name': 'nisdas', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-13'], 'y': [38]\n", + " 'mode': 'markers+lines', 'name': 'ChihChengLiang', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-13'], 'y': [7]\n", + " 'mode': 'markers+lines', 'name': 'cderong', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-13'], 'y': [6]\n", + " 'mode': 'markers+lines', 'name': 'serical', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-13'], 'y': [11]\n", + " 'mode': 'markers+lines', 'name': 'yahtoo', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-13'], 'y': [9]\n", + " 'mode': 'markers+lines', 'name': 'ByLuxury', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-13'], 'y': [8]\n", + " 'mode': 'markers+lines', 'name': 'jakerockland', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 2]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'ParkIan', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'Bytom', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'RichardLai88', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'chrislo2004', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-13'], 'y': [11]\n", + " 'mode': 'markers+lines', 'name': 'jeikhan', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'IExpo', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'zhiyul', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'novemberde', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'naveen7252', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'quangdo3112', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'bhalla98', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'rexshihaoren', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'lola73', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-13'], 'y': [9]\n", + " 'mode': 'markers+lines', 'name': 'vardan10', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SabraAS', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'YaoZengzeng', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hcaw', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'amitOodles', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'caotic123', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'nanjia', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zach-is-my-name', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'xuefengyuan', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Arachnid', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'Tinycl', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'djrtwo', 'x': ['2018-12-13'], 'y': [17]\n", + " 'mode': 'markers+lines', 'name': 'Gilbertly', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'EBGToo', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'ArnauSantamaria', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Hilobrain', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'charles-cooper', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Afzalshah38', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'hsauers5', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'vinaymavi', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eip-automerger', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'vbuterin', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ifdefelse', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'anirudh-chhangani', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'perlmutterlabs', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'hiro8ma', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'vngkv123', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'NIC619', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'LogvinovLeon', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'jeojoe', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'stale[bot]', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'dctlsk', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AnuragHydro', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'codecov-io', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ryanio', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'yorzi', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jannikluhn', 'x': ['2018-12-13'], 'y': [6]\n", + " 'mode': 'markers+lines', 'name': 'chiaki-i', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-13'], 'y': [45]\n", + " 'mode': 'markers+lines', 'name': 'coolhackboy', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'CrystalEyes7', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'halfalicious', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 6]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'marcgarreau', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'dete', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'riusricardo', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'zouguangxian', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'landedexperts', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-13'], 'y': [7]\n", + " 'mode': 'markers+lines', 'name': 'SamuelMarks', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-13'], 'y': [7]\n", + " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rahulvickysingh008', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 20]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'rauljordan', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'pakaplace', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'zelig', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gitcoinbot', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'lostjcwide', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Bhargavasomu', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'tootooquan', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'dilbydilby', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'BITjiangrui', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'haltman-at', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'akkaorig', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'SODAMFIA', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'miguelmota', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'timl206', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'kclowes', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 4]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'terenc3t', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'dylanjw', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'Snetw', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'ajbennett', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'arnetheduck', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 4]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jacqueswww', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 17]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'hamzaenaime', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'PhABC', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'zscole', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'ur5us', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'lookfirst', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'davesque', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'gangnamtestnet', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'Jeongjaegu', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ndc07', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 5]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'pryce-turner', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'humboo', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", "})]\n" ] } @@ -2832,7 +2899,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 34, "metadata": { "colab": { "autoexec": { @@ -2861,13 +2928,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 91, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -2893,7 +2960,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 35, "metadata": { "colab": { "autoexec": { @@ -2923,7 +2990,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'yper': {'2018-12-13': 14}, 'y-evm': {'2018-12-13': 82}, 'leth': {'2018-12-13': 3}, 'etesteth': {'2018-12-13': 5}, 'eb3.py': {'2018-12-13': 12}, 'eb3.js': {'2018-12-13': 10}, 'ist-shell': {'2018-12-13': 11}, 'evp2p': {'2018-12-13': 1}, 'o-ethereum': {'2018-12-13': 13}, 'yethereum': {'2018-12-13': 1}, 'th2.0-specs': {'2018-12-13': 31}, 'y-solc': {'2018-12-13': 1}, 'olidity': {'2018-12-13': 40}, 'ytest-ethereum': {'2018-12-13': 2}, 'th-keys': {'2018-12-13': 1}, 'IPs': {'2018-12-13': 8}, 'm': {'2018-12-13': 2}, 'y-ssz': {'2018-12-13': 12}, 'ellowpaper': {'2018-12-13': 1}, 'nake-charmers-blog': {'2018-12-13': 6}, 'olc-js': {'2018-12-13': 1}, 'thereum-react-components': {'2018-12-13': 4}, 'olidity-test-bytecode': {'2018-12-13': 20}, 'warm-dapps': {'2018-12-13': 2}, 'ive': {'2018-12-13': 3}, 'ist': {'2018-12-13': 2}, 'ests': {'2018-12-13': 5}, 'th2.0-pm': {'2018-12-13': 1}, 'thash': {'2018-12-13': 1}}\n" + "{'olidity-test-bytecode': {'2018-12-14': 6, '2018-12-13': 0}, 'olidity': {'2018-12-14': 10, '2018-12-13': 2}, 'ive': {'2018-12-14': 8, '2018-12-13': 0}, 'esearch': {'2018-12-14': 2, '2018-12-13': 0}, 'y-evm': {'2018-12-14': 27, '2018-12-13': 37}, 'leth': {'2018-12-14': 8, '2018-12-13': 6}, 'o-ethereum': {'2018-12-14': 44, '2018-12-13': 5}, 'yper': {'2018-12-14': 5, '2018-12-13': 6}, 'ytest-ethereum': {'2018-12-14': 1, '2018-12-13': 2}, 'ist-shell': {'2018-12-14': 3, '2018-12-13': 3}, 'app-bin': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.js': {'2018-12-14': 12, '2018-12-13': 3}, 'iki': {'2018-12-14': 27, '2018-12-13': 0}, 'y-ssz': {'2018-12-14': 1, '2018-12-13': 0}, 'th2.0-specs': {'2018-12-14': 24, '2018-12-13': 5}, 'vmlab': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.py': {'2018-12-14': 5, '2018-12-13': 14}, 'IPs': {'2018-12-14': 3, '2018-12-13': 1}, 'y_ecc': {'2018-12-14': 2, '2018-12-13': 0}, 'olc-js': {'2018-12-14': 5, '2018-12-13': 0}, 'yethereum': {'2018-12-14': 1, '2018-12-13': 1}, 'eteor-dapp-wallet': {'2018-12-14': 1, '2018-12-13': 0}, 'eacon_chain': {'2018-12-14': 7, '2018-12-13': 0}, 'harding': {'2018-12-14': 1, '2018-12-13': 0}, 'ist': {'2018-12-14': 1, '2018-12-13': 0}, 'ests': {'2018-12-14': 1, '2018-12-13': 0}, 'nake-charmers-tactical-manual': {'2018-12-14': 1, '2018-12-13': 0}, 'etesteth': {'2018-12-14': 0, '2018-12-13': 3}, 'evp2p': {'2018-12-14': 0, '2018-12-13': 1}, 'y-solc': {'2018-12-14': 0, '2018-12-13': 1}, 'th-keys': {'2018-12-14': 0, '2018-12-13': 1}}\n" ] } ], @@ -2941,7 +3008,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 36, "metadata": { "colab": { "autoexec": { @@ -2972,63 +3039,67 @@ "output_type": "stream", "text": [ "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 2]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + " 'mode': 'markers+lines', 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 37]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [44, 5]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 2]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + " 'mode': 'markers+lines', 'name': 'app-bin', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + " 'mode': 'markers+lines', 'name': 'iki', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 5]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'vmlab', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 14]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'y_ecc', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'yethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + " 'mode': 'markers+lines', 'name': 'eteor-dapp-wallet', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'eacon_chain', 'x': ['2018-12-14', '2018-12-13'], 'y': [7, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + " 'mode': 'markers+lines', 'name': 'harding', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + " 'mode': 'markers+lines', 'name': 'nake-charmers-tactical-manual', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + " 'mode': 'markers+lines', 'name': 'etesteth', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + " 'mode': 'markers+lines', 'name': 'evp2p', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'y-solc', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + " 'mode': 'markers+lines', 'name': 'th-keys', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "})]\n" ] } @@ -3049,7 +3120,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 37, "metadata": { "colab": { "autoexec": { @@ -3078,13 +3149,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 94, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -3096,7 +3167,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 38, "metadata": { "colab": { "autoexec": { @@ -3127,63 +3198,67 @@ "output_type": "stream", "text": [ "[Bar({\n", - " 'name': 'yper', 'x': ['2018-12-13'], 'y': [14]\n", + " 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + "}), Bar({\n", + " 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 2]\n", + "}), Bar({\n", + " 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", "}), Bar({\n", - " 'name': 'y-evm', 'x': ['2018-12-13'], 'y': [82]\n", + " 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Bar({\n", - " 'name': 'leth', 'x': ['2018-12-13'], 'y': [3]\n", + " 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 37]\n", "}), Bar({\n", - " 'name': 'etesteth', 'x': ['2018-12-13'], 'y': [5]\n", + " 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", "}), Bar({\n", - " 'name': 'eb3.py', 'x': ['2018-12-13'], 'y': [12]\n", + " 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [44, 5]\n", "}), Bar({\n", - " 'name': 'eb3.js', 'x': ['2018-12-13'], 'y': [10]\n", + " 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", "}), Bar({\n", - " 'name': 'ist-shell', 'x': ['2018-12-13'], 'y': [11]\n", + " 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 2]\n", "}), Bar({\n", - " 'name': 'evp2p', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", "}), Bar({\n", - " 'name': 'o-ethereum', 'x': ['2018-12-13'], 'y': [13]\n", + " 'name': 'app-bin', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'yethereum', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 3]\n", "}), Bar({\n", - " 'name': 'th2.0-specs', 'x': ['2018-12-13'], 'y': [31]\n", + " 'name': 'iki', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 0]\n", "}), Bar({\n", - " 'name': 'y-solc', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'y-ssz', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'olidity', 'x': ['2018-12-13'], 'y': [40]\n", + " 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 5]\n", "}), Bar({\n", - " 'name': 'ytest-ethereum', 'x': ['2018-12-13'], 'y': [2]\n", + " 'name': 'vmlab', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'th-keys', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'eb3.py', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 14]\n", "}), Bar({\n", - " 'name': 'IPs', 'x': ['2018-12-13'], 'y': [8]\n", + " 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 1]\n", "}), Bar({\n", - " 'name': 'm', 'x': ['2018-12-13'], 'y': [2]\n", + " 'name': 'y_ecc', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Bar({\n", - " 'name': 'y-ssz', 'x': ['2018-12-13'], 'y': [12]\n", + " 'name': 'olc-js', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", "}), Bar({\n", - " 'name': 'ellowpaper', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'yethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1]\n", "}), Bar({\n", - " 'name': 'nake-charmers-blog', 'x': ['2018-12-13'], 'y': [6]\n", + " 'name': 'eteor-dapp-wallet', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'olc-js', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'eacon_chain', 'x': ['2018-12-14', '2018-12-13'], 'y': [7, 0]\n", "}), Bar({\n", - " 'name': 'thereum-react-components', 'x': ['2018-12-13'], 'y': [4]\n", + " 'name': 'harding', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'olidity-test-bytecode', 'x': ['2018-12-13'], 'y': [20]\n", + " 'name': 'ist', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'warm-dapps', 'x': ['2018-12-13'], 'y': [2]\n", + " 'name': 'ests', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'ive', 'x': ['2018-12-13'], 'y': [3]\n", + " 'name': 'nake-charmers-tactical-manual', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'ist', 'x': ['2018-12-13'], 'y': [2]\n", + " 'name': 'etesteth', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 3]\n", "}), Bar({\n", - " 'name': 'ests', 'x': ['2018-12-13'], 'y': [5]\n", + " 'name': 'evp2p', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Bar({\n", - " 'name': 'th2.0-pm', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'y-solc', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Bar({\n", - " 'name': 'thash', 'x': ['2018-12-13'], 'y': [1]\n", + " 'name': 'th-keys', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "})]\n" ] } @@ -3204,7 +3279,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 39, "metadata": { "colab": { "autoexec": { @@ -3239,7 +3314,7 @@ "" ] }, - "execution_count": 96, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -3265,7 +3340,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 40, "metadata": { "colab": { "autoexec": { @@ -3295,7 +3370,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'fubuloubu': {'yper': 5}, 'pipermerriam': {'y-evm': 21, 'ytest-ethereum': 1, 'th-keys': 1, 'y-ssz': 3, 'nake-charmers-blog': 6}, 'halfalicious': {'leth': 3}, 'codecov-io': {'etesteth': 1}, 'jakerockland': {'yper': 4}, 'carver': {'eb3.py': 4, 'y-evm': 32, 'ytest-ethereum': 1, 'm': 1}, 'nivida': {'eb3.js': 7}, 'kclowes': {'eb3.py': 6}, 'evertonfraga': {'ist-shell': 11}, 'winsvega': {'etesteth': 4, 'ests': 5}, 'dylanjw': {'eb3.py': 1}, 'cburgdorf': {'y-evm': 8}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 11}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'charles-cooper': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 2}, 'veox': {'y-evm': 9}, 'SabraAS': {'o-ethereum': 1}, 'hcaw': {'y-evm': 1, 'm': 1}, 'caotic123': {'olidity': 1}, 'zach-is-my-name': {'IPs': 1}, 'Arachnid': {'IPs': 1}, 'djrtwo': {'th2.0-specs': 17}, 'EBGToo': {'ellowpaper': 1}, 'Hilobrain': {'eb3.js': 1}, 'Afzalshah38': {'eb3.js': 1}, 'nolash': {'o-ethereum': 1}, 'eip-automerger': {'IPs': 2}, 'ifdefelse': {'IPs': 1}, 'perlmutterlabs': {'o-ethereum': 1}, 'vngkv123': {'y-evm': 1}, 'LogvinovLeon': {'olc-js': 1}, 'stale[bot]': {'o-ethereum': 1}, 'AnuragHydro': {'IPs': 1}, 'ryanio': {'thereum-react-components': 1}, 'jannikluhn': {'y-evm': 4, 'y-ssz': 2}, 'chriseth': {'olidity-test-bytecode': 20, 'olidity': 25}, 'CrystalEyes7': {'yper': 1}, 'marcgarreau': {'thereum-react-components': 3}, 'riusricardo': {'warm-dapps': 1}, 'FrankSzendzielarz': {'ive': 3}, 'leonardoalt': {'olidity': 7}, 'hwwhww': {'y-evm': 1, 'y-ssz': 6}, 'rahulvickysingh008': {'ist': 1}, 'rauljordan': {'th2.0-specs': 1}, 'christianparpart': {'olidity': 3}, 'gitcoinbot': {'warm-dapps': 1}, 'Bhargavasomu': {'y-ssz': 1}, 'dilbydilby': {'yper': 1}, 'haltman-at': {'olidity': 1}, 'SODAMFIA': {'y-evm': 1}, 'timl206': {'o-ethereum': 1}, 'terenc3t': {'th2.0-specs': 1}, 'Snetw': {'o-ethereum': 3}, 'arnetheduck': {'th2.0-specs': 1}, 'jacqueswww': {'yper': 3}, 'hamzaenaime': {'ist': 1}, 'PhABC': {'IPs': 1}, 'zscole': {'th2.0-pm': 1}, 'lookfirst': {'olidity': 1}, 'gangnamtestnet': {'thash': 1}, 'ndc07': {'eb3.js': 1}}\n" + "{'chriseth': {'olidity-test-bytecode': 6}, 'leonardoalt': {'olidity': 2}, 'FrankSzendzielarz': {'ive': 2}, '3for': {'esearch': 2}, 'holiman': {'ive': 6, 'o-ethereum': 10, 'vmlab': 1}, '1tD0g': {'y-evm': 1}, 'gumb0': {'leth': 4}, 'naikmyeong': {'o-ethereum': 1}, 'miohtama': {'olidity': 1}, 'hkk': {'yper': 1}, 'kyledewy': {'ytest-ethereum': 1}, 'racmnet': {'o-ethereum': 2}, 'toannk': {'olidity': 1}, 'b00ris': {'o-ethereum': 1}, 'evertonfraga': {'ist-shell': 6}, 'cburgdorf': {'y-evm': 12}, 'smgqk': {'o-ethereum': 1}, 'cuidezhu': {'app-bin': 1}, '0xC0DE4C0FFEE': {'eb3.js': 1}, 'rodrigo-garcia-leon': {'o-ethereum': 1}, 'ekpyron': {'olidity': 1}, 'codecov[bot]': {'olidity': 1}, 'christianparpart': {'olidity': 3}, 'nafidurmus': {'eb3.js': 1}, 'joshstevens19': {'eb3.js': 2}, 'totaking': {'iki': 3}, 'z08053520': {'o-ethereum': 2}, 'lishenglincn': {'o-ethereum': 1}, 'lag945': {'eb3.js': 1}, 'jannikluhn': {'y-ssz': 1}, 'shimakaze-git': {'yper': 1}, 'jolestar': {'iki': 1}, 'mratsim': {'th2.0-specs': 1}, 'xiaoch05': {'o-ethereum': 1}, 'cheatfate': {'th2.0-specs': 1}, 'Dreampursers': {'yper': 1}, 'ligi': {'o-ethereum': 3}, 'Drunpi': {'o-ethereum': 1}, 'jinhokong': {'eb3.js': 1}, 'aj07': {'eb3.js': 1}, 'njgheorghita': {'eb3.py': 3}, 'hwwhww': {'y-evm': 3, 'th2.0-specs': 10, 'eacon_chain': 6}, 'jamesray1': {'iki': 17}, 'nisdas': {'th2.0-specs': 1}, 'ChihChengLiang': {'y-evm': 3}, 'cderong': {'o-ethereum': 1}, 'serical': {'o-ethereum': 1}, 'yahtoo': {'o-ethereum': 1}, 'ByLuxury': {'IPs': 1}, 'Bhargavasomu': {'y_ecc': 2}, 'jakerockland': {'yper': 3}, 'ParkIan': {'olc-js': 1}, 'Bytom': {'o-ethereum': 1}, 'RichardLai88': {'eb3.js': 1}, 'chrislo2004': {'olc-js': 1}, 'jeikhan': {'iki': 1}, 'IExpo': {'yethereum': 1}, 'zhiyul': {'olc-js': 1}, 'novemberde': {'eb3.js': 1}, 'naveen7252': {'o-ethereum': 1}, 'quangdo3112': {'eteor-dapp-wallet': 1}, 'bhalla98': {'eb3.js': 1}, 'rexshihaoren': {'olidity': 1}, 'lola73': {'o-ethereum': 1}, 'rauljordan': {'y-evm': 1}, 'vardan10': {'y-evm': 3}, 'YaoZengzeng': {'o-ethereum': 1}, 'amitOodles': {'o-ethereum': 1}, 'nanjia': {'harding': 1}, 'xuefengyuan': {'iki': 1}, 'Tinycl': {'ist': 1}, 'Gilbertly': {'eb3.py': 1, 'eb3.js': 1}, 'ArnauSantamaria': {'olc-js': 1}, 'charles-cooper': {'yper': 1, 'olidity': 1}, 'hsauers5': {'y-evm': 1}, 'vinaymavi': {'leth': 1}, 'vbuterin': {'th2.0-specs': 10}, 'anirudh-chhangani': {'leth': 1}, 'hiro8ma': {'o-ethereum': 1}, 'NIC619': {'eacon_chain': 1}, 'jeojoe': {'eb3.js': 1}, 'dctlsk': {'th2.0-specs': 1}, 'codecov-io': {'leth': 1, 'etesteth': 1}, 'yorzi': {'iki': 1}, 'chiaki-i': {'iki': 1}, 'coolhackboy': {'o-ethereum': 1}, 'halfalicious': {'leth': 7}, 'dete': {'IPs': 1}, 'zouguangxian': {'eb3.py': 1}, 'landedexperts': {'olc-js': 1}, 'SamuelMarks': {'o-ethereum': 1}, 'nolash': {'o-ethereum': 2}, 'carver': {'y-evm': 20, 'eb3.py': 5, 'ytest-ethereum': 1}, 'pakaplace': {'IPs': 1}, 'zelig': {'o-ethereum': 5}, 'lostjcwide': {'o-ethereum': 1}, 'tootooquan': {'iki': 1}, 'BITjiangrui': {'o-ethereum': 1}, 'akkaorig': {'iki': 1}, 'miguelmota': {'ests': 1}, 'kclowes': {'nake-charmers-tactical-manual': 1, 'eb3.py': 4}, 'dylanjw': {'eb3.py': 3}, 'ajbennett': {'eb3.py': 1}, 'fubuloubu': {'yper': 4}, 'pipermerriam': {'y-evm': 15, 'ytest-ethereum': 1, 'th-keys': 1}, 'nivida': {'eb3.js': 3}, 'winsvega': {'etesteth': 2}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 5}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 1}, 'veox': {'y-evm': 2}}\n" ] } ], @@ -3318,7 +3393,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 41, "metadata": { "colab": { "autoexec": { @@ -3336,7 +3411,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 42, "metadata": { "colab": { "autoexec": { @@ -3354,7 +3429,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": null, "metadata": { "colab": { "autoexec": { @@ -3379,441 +3454,7 @@ "id": "qgcRjWKMBq_8", "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'fubuloubu',\n", - " 'values': [5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, ytest-ethereum, th-keys, y-ssz, nake-charmers-blog],\n", - " 'name': 'pipermerriam',\n", - " 'values': [21, 1, 1, 3, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [leth],\n", - " 'name': 'halfalicious',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth],\n", - " 'name': 'codecov-io',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jakerockland',\n", - " 'values': [4]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py, y-evm, ytest-ethereum, m],\n", - " 'name': 'carver',\n", - " 'values': [4, 32, 1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'nivida',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'kclowes',\n", - " 'values': [6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.0, 0.0111111111111111]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist-shell],\n", - " 'name': 'evertonfraga',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [etesteth, ests],\n", - " 'name': 'winsvega',\n", - " 'values': [4, 5]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'dylanjw',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'cburgdorf',\n", - " 'values': [8]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [evp2p],\n", - " 'name': 'ur5us',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.py],\n", - " 'name': 'davesque',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Jeongjaegu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yethereum],\n", - " 'name': 'alexwanng',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'JustinDrake',\n", - " 'values': [11]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.1111111111111111, 0.1222222222222222]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'kswizzlek',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-solc],\n", - " 'name': 'pryce-turner',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'humboo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'voermx',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'charles-cooper',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'sandakersmann',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'binary-adam',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'jpeletier',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'AlexeyAkhunov',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.2222222222222222, 0.2333333333333333]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'veox',\n", - " 'values': [9]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'SabraAS',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, m],\n", - " 'name': 'hcaw',\n", - " 'values': [1, 1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'caotic123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'zach-is-my-name',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'Arachnid',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'djrtwo',\n", - " 'values': [17]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ellowpaper],\n", - " 'name': 'EBGToo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Hilobrain',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.3333333333333333, 0.34444444444444444]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [eb3.js],\n", - " 'name': 'Afzalshah38',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'nolash',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'eip-automerger',\n", - " 'values': [2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'ifdefelse',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'perlmutterlabs',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'vngkv123',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olc-js],\n", - " 'name': 'LogvinovLeon',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'stale[bot]',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'AnuragHydro',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.4444444444444444, 0.4555555555555556]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'ryanio',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'jannikluhn',\n", - " 'values': [4, 2]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity-test-bytecode, olidity],\n", - " 'name': 'chriseth',\n", - " 'values': [20, 25]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'CrystalEyes7',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thereum-react-components],\n", - " 'name': 'marcgarreau',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'riusricardo',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ive],\n", - " 'name': 'FrankSzendzielarz',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'leonardoalt',\n", - " 'values': [7]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm, y-ssz],\n", - " 'name': 'hwwhww',\n", - " 'values': [1, 6]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.5555555555555556, 0.5666666666666667]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'rahulvickysingh008',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'rauljordan',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'christianparpart',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [warm-dapps],\n", - " 'name': 'gitcoinbot',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-ssz],\n", - " 'name': 'Bhargavasomu',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'dilbydilby',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'haltman-at',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [y-evm],\n", - " 'name': 'SODAMFIA',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'timl206',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.8888888888888888, 0.9], 'y': [0.6666666666666666, 0.6777777777777777]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'terenc3t',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.0, 0.0111111111111111], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [o-ethereum],\n", - " 'name': 'Snetw',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.1111111111111111, 0.1222222222222222], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-specs],\n", - " 'name': 'arnetheduck',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.2222222222222222, 0.2333333333333333], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [yper],\n", - " 'name': 'jacqueswww',\n", - " 'values': [3]\n", - "}), Pie({\n", - " 'domain': {'x': [0.3333333333333333, 0.34444444444444444], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [ist],\n", - " 'name': 'hamzaenaime',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.4444444444444444, 0.4555555555555556], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [IPs],\n", - " 'name': 'PhABC',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.5555555555555556, 0.5666666666666667], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [th2.0-pm],\n", - " 'name': 'zscole',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.6666666666666666, 0.6777777777777777], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [olidity],\n", - " 'name': 'lookfirst',\n", - " 'values': [1]\n", - "}), Pie({\n", - " 'domain': {'x': [0.7777777777777777, 0.7888888888888889], 'y': [0.7777777777777778, 0.7888888888888889]},\n", - " 'hoverinfo': 'label+percent+name',\n", - " 'labels': [thash],\n", - " 'name': 'gangnamtestnet',\n", - " 'values': [1]\n", - "})]\n" - ] - } - ], + "outputs": [], "source": [ "# converting userCont into format for multiple pie charts\n", "\n", @@ -3845,7 +3486,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": null, "metadata": { "colab": { "autoexec": { @@ -3870,21 +3511,7 @@ "id": "pg4HNsmA9_ww", "outputId": "55e87e78-d906-4fb3-9cc4-5071190a632d" }, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 101, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "fig = {'data': allUserConPies, 'layout': {'title': 'Types of Contribution by each User', 'showlegend': True}}\n", "\n", @@ -3903,7 +3530,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 44, "metadata": { "colab": { "autoexec": { @@ -3933,7 +3560,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': [], 'y': [], 'name': 'Early Bird', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [124], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-13'], 'y': [171], 'name': 'Night Owl', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14'], 'y': [142], 'name': 'Early Bird', 'type': 'bar'}, {'x': [], 'y': [], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [66, 91], 'name': 'Night Owl', 'type': 'bar'}]\n" ] } ], @@ -3970,7 +3597,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 45, "metadata": { "colab": { "autoexec": { @@ -3999,13 +3626,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 103, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -4034,7 +3661,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 46, "metadata": { "colab": { "autoexec": { @@ -4064,7 +3691,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [0, 1, 1]}\n" + "{'label': ['Early Bird', 'Midday', 'Night Owl'], 'values': [1, 0, 2]}\n" ] } ], @@ -4081,7 +3708,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 47, "metadata": { "colab": { "autoexec": { @@ -4110,13 +3737,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 105, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -4149,7 +3776,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 48, "metadata": { "colab": { "autoexec": { @@ -4178,13 +3805,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 106, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -4211,7 +3838,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 49, "metadata": { "colab": { "autoexec": { @@ -4240,13 +3867,13 @@ { "data": { "text/html": [ - "" + "" ], "text/plain": [ "" ] }, - "execution_count": 107, + "execution_count": 49, "metadata": {}, "output_type": "execute_result" } @@ -4283,7 +3910,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 50, "metadata": { "colab": { "autoexec": { @@ -4313,12 +3940,19 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: python-firebase in /srv/conda/lib/python3.6/site-packages (1.2)\n", + "Collecting python-firebase\n", + " Downloading https://files.pythonhosted.org/packages/32/e6/88b799753e64aeb0f24040b98c94012994cf9517c889dee4f8a49ac89400/python-firebase-1.2.tar.gz\n", "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", - "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", - "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n", "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n" + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", + "Building wheels for collected packages: python-firebase\n", + " Running setup.py bdist_wheel for python-firebase ... \u001b[?25ldone\n", + "\u001b[?25h Stored in directory: /home/jovyan/.cache/pip/wheels/ba/40/ca/e41a25d7abb787092e837cb0f91f33b04b1a8fd9d17c2d33a6\n", + "Successfully built python-firebase\n", + "Installing collected packages: python-firebase\n", + "Successfully installed python-firebase-1.2\n" ] } ], @@ -4330,7 +3964,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 51, "metadata": { "colab": { "autoexec": { @@ -4355,7 +3989,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 52, "metadata": { "colab": { "autoexec": { @@ -4420,7 +4054,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 53, "metadata": { "colab": { "autoexec": { @@ -4450,7 +4084,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': 'IssueCommentEvent', 'y': 83}, {'x': 'PullRequestReviewCommentEvent', 'y': 35}, {'x': 'PushEvent', 'y': 73}, {'x': 'PullRequestEvent', 'y': 39}, {'x': 'CreateEvent', 'y': 17}, {'x': 'IssuesEvent', 'y': 18}, {'x': 'WatchEvent', 'y': 21}, {'x': 'ForkEvent', 'y': 4}, {'x': 'ReleaseEvent', 'y': 1}, {'x': 'GollumEvent', 'y': 1}, {'x': 'DeleteEvent', 'y': 3}]\n" + "[{'x': 'PushEvent', 'y': 36}, {'x': 'IssueCommentEvent', 'y': 55}, {'x': 'ForkEvent', 'y': 20}, {'x': 'WatchEvent', 'y': 52}, {'x': 'PullRequestReviewCommentEvent', 'y': 52}, {'x': 'IssuesEvent', 'y': 19}, {'x': 'PullRequestEvent', 'y': 35}, {'x': 'DeleteEvent', 'y': 3}, {'x': 'GollumEvent', 'y': 19}, {'x': 'CreateEvent', 'y': 7}, {'x': 'ReleaseEvent', 'y': 1}]\n" ] } ], From 08a7df737f3cc96ab09c7d7ef665bd2c50e36ba1 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Dec 2018 13:08:41 +0100 Subject: [PATCH 30/98] Add files via upload --- amis-github-ethereum-dashboard.ipynb | 1443 ++++++++++++++------------ 1 file changed, 772 insertions(+), 671 deletions(-) diff --git a/amis-github-ethereum-dashboard.ipynb b/amis-github-ethereum-dashboard.ipynb index 48f741c..307afa9 100644 --- a/amis-github-ethereum-dashboard.ipynb +++ b/amis-github-ethereum-dashboard.ipynb @@ -38,9 +38,87 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting pandas\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/e1/d8/feeb346d41f181e83fba45224ab14a8d8af019b48af742e047f3845d8cff/pandas-0.23.4-cp36-cp36m-manylinux1_x86_64.whl (8.9MB)\n", + "\u001b[K 100% |████████████████████████████████| 8.9MB 409kB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: python-dateutil>=2.5.0 in /srv/conda/lib/python3.6/site-packages (from pandas) (2.7.5)\n", + "Collecting pytz>=2011k (from pandas)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/f8/0e/2365ddc010afb3d79147f1dd544e5ee24bf4ece58ab99b16fbb465ce6dc0/pytz-2018.7-py2.py3-none-any.whl (506kB)\n", + "\u001b[K 100% |████████████████████████████████| 512kB 11.7MB/s ta 0:00:01\n", + "\u001b[?25hCollecting numpy>=1.9.0 (from pandas)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/ff/7f/9d804d2348471c67a7d8b5f84f9bc59fd1cefa148986f2b74552f8573555/numpy-1.15.4-cp36-cp36m-manylinux1_x86_64.whl (13.9MB)\n", + "\u001b[K 100% |████████████████████████████████| 13.9MB 257kB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: six>=1.5 in /srv/conda/lib/python3.6/site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Installing collected packages: pytz, numpy, pandas\n", + "Successfully installed numpy-1.15.4 pandas-0.23.4 pytz-2018.7\n", + "Collecting sklearn\n", + " Downloading https://files.pythonhosted.org/packages/1e/7a/dbb3be0ce9bd5c8b7e3d87328e79063f8b263b2b1bfa4774cb1147bfcd3f/sklearn-0.0.tar.gz\n", + "Collecting scikit-learn (from sklearn)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/10/26/d04320c3edf2d59b1fcd0720b46753d4d603a76e68d8ad10a9b92ab06db2/scikit_learn-0.20.1-cp36-cp36m-manylinux1_x86_64.whl (5.4MB)\n", + "\u001b[K 100% |████████████████████████████████| 5.4MB 517kB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: numpy>=1.8.2 in /srv/conda/lib/python3.6/site-packages (from scikit-learn->sklearn) (1.15.4)\n", + "Collecting scipy>=0.13.3 (from scikit-learn->sklearn)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/a8/0b/f163da98d3a01b3e0ef1cab8dd2123c34aee2bafbb1c5bffa354cc8a1730/scipy-1.1.0-cp36-cp36m-manylinux1_x86_64.whl (31.2MB)\n", + "\u001b[K 100% |████████████████████████████████| 31.2MB 95kB/s eta 0:00:01████████████████████▏ | 28.3MB 19.2MB/s eta 0:00:01\n", + "\u001b[?25hBuilding wheels for collected packages: sklearn\n", + " Running setup.py bdist_wheel for sklearn ... \u001b[?25ldone\n", + "\u001b[?25h Stored in directory: /home/jovyan/.cache/pip/wheels/76/03/bb/589d421d27431bcd2c6da284d5f2286c8e3b2ea3cf1594c074\n", + "Successfully built sklearn\n", + "Installing collected packages: scipy, scikit-learn, sklearn\n", + "Successfully installed scikit-learn-0.20.1 scipy-1.1.0 sklearn-0.0\n", + "Collecting matplotlib\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/71/07/16d781df15be30df4acfd536c479268f1208b2dfbc91e9ca5d92c9caf673/matplotlib-3.0.2-cp36-cp36m-manylinux1_x86_64.whl (12.9MB)\n", + "\u001b[K 100% |████████████████████████████████| 12.9MB 270kB/s ta 0:00:011\n", + "\u001b[?25hCollecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/71/e8/6777f6624681c8b9701a8a0a5654f3eb56919a01a78e12bf3c73f5a3c714/pyparsing-2.3.0-py2.py3-none-any.whl (59kB)\n", + "\u001b[K 100% |████████████████████████████████| 61kB 5.4MB/s eta 0:00:01\n", + "\u001b[?25hCollecting cycler>=0.10 (from matplotlib)\n", + " Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl\n", + "Collecting kiwisolver>=1.0.1 (from matplotlib)\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/69/a7/88719d132b18300b4369fbffa741841cfd36d1e637e1990f27929945b538/kiwisolver-1.0.1-cp36-cp36m-manylinux1_x86_64.whl (949kB)\n", + "\u001b[K 100% |████████████████████████████████| 952kB 3.1MB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: numpy>=1.10.0 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (1.15.4)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from matplotlib) (2.7.5)\n", + "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from cycler>=0.10->matplotlib) (1.12.0)\n", + "Requirement already satisfied: setuptools in /srv/conda/lib/python3.6/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.2)\n", + "Installing collected packages: pyparsing, cycler, kiwisolver, matplotlib\n", + "Successfully installed cycler-0.10.0 kiwisolver-1.0.1 matplotlib-3.0.2 pyparsing-2.3.0\n", + "Collecting plotly\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/32/d6/82333db5a6f56f828d817d49ae6ea153125d70214a189686afe784e159ad/plotly-3.4.2-py2.py3-none-any.whl (37.8MB)\n", + "\u001b[K 100% |████████████████████████████████| 37.8MB 108kB/s eta 0:00:01\n", + "\u001b[?25hRequirement already satisfied: decorator>=4.0.6 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.3.0)\n", + "Requirement already satisfied: pytz in /srv/conda/lib/python3.6/site-packages (from plotly) (2018.7)\n", + "Requirement already satisfied: nbformat>=4.2 in /srv/conda/lib/python3.6/site-packages (from plotly) (4.4.0)\n", + "Collecting retrying>=1.3.3 (from plotly)\n", + " Downloading https://files.pythonhosted.org/packages/44/ef/beae4b4ef80902f22e3af073397f079c96969c69b2c7d52a57ea9ae61c9d/retrying-1.3.3.tar.gz\n", + "Requirement already satisfied: requests in /srv/conda/lib/python3.6/site-packages (from plotly) (2.21.0)\n", + "Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from plotly) (1.12.0)\n", + "Requirement already satisfied: ipython_genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (0.2.0)\n", + "Requirement already satisfied: traitlets>=4.1 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.3.2)\n", + "Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (3.0.0a3)\n", + "Requirement already satisfied: jupyter_core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2->plotly) (4.4.0)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2018.11.29)\n", + "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (1.24.1)\n", + "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (2.8)\n", + "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests->plotly) (3.0.4)\n", + "Requirement already satisfied: attrs>=17.4.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (18.2.0)\n", + "Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2->plotly) (0.14.7)\n", + "Building wheels for collected packages: retrying\n", + " Running setup.py bdist_wheel for retrying ... \u001b[?25ldone\n", + "\u001b[?25h Stored in directory: /home/jovyan/.cache/pip/wheels/d7/a9/33/acc7b709e2a35caa7d4cae442f6fe6fbf2c43f80823d46460c\n", + "Successfully built retrying\n", + "Installing collected packages: retrying, plotly\n", + "Successfully installed plotly-3.4.2 retrying-1.3.3\n" + ] + } + ], "source": [ "!pip install pandas\n", "!pip install sklearn\n", @@ -80,7 +158,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'id': '8754423427', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137627808, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'before': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'commits': [{'sha': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2435ecb0ffd17dc2ce030a489ab3621ba8db0b53'}]}, 'public': True, 'created_at': '2018-12-14T11:37:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754416458', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137624181, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'before': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'commits': [{'sha': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b034946fcd78acd5f428268fe13f41e3a6b12e25'}]}, 'public': True, 'created_at': '2018-12-14T11:35:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754415961', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5654', 'id': 390700758, 'node_id': 'MDU6SXNzdWUzOTA3MDA3NTg=', 'number': 5654, 'title': 'End of life of Solidity 0.4', 'user': {'login': 'alcuadrado', 'id': 176499, 'node_id': 'MDQ6VXNlcjE3NjQ5OQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/176499?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/alcuadrado', 'html_url': 'https://github.com/alcuadrado', 'followers_url': 'https://api.github.com/users/alcuadrado/followers', 'following_url': 'https://api.github.com/users/alcuadrado/following{/other_user}', 'gists_url': 'https://api.github.com/users/alcuadrado/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/alcuadrado/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/alcuadrado/subscriptions', 'organizations_url': 'https://api.github.com/users/alcuadrado/orgs', 'repos_url': 'https://api.github.com/users/alcuadrado/repos', 'events_url': 'https://api.github.com/users/alcuadrado/events{/privacy}', 'received_events_url': 'https://api.github.com/users/alcuadrado/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T14:22:30Z', 'updated_at': '2018-12-14T11:35:50Z', 'closed_at': '2018-12-13T14:45:36Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nI couldn't find any information about Solidity 0.4 future plans. I'm specially interested about its EOL. I think it's really important to plan libraries' and tooling's migration to 0.5. Has it been defined?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447299523', 'html_url': 'https://github.com/ethereum/solidity/issues/5654#issuecomment-447299523', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'id': 447299523, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5OTUyMw==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:35:50Z', 'updated_at': '2018-12-14T11:35:50Z', 'author_association': 'MEMBER', 'body': \"No worries @alcuadrado . That message is probably just from readthedocs.\\r\\nWhy should it explicitly say it? Older versions haven't been kept maintained before, why would 0.4?\"}}, 'public': True, 'created_at': '2018-12-14T11:35:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754399511', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137615452, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'before': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'commits': [{'sha': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Update README.md\\n\\nCo-Authored-By: FrankSzendzielarz <33515470+FrankSzendzielarz@users.noreply.github.com>', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/4d6ac7e8d067b2a5bea6b630fc6a86b427429259'}]}, 'public': True, 'created_at': '2018-12-14T11:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394928', 'type': 'ForkEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'forkee': {'id': 161775988, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzU5ODg=', 'name': 'research', 'full_name': '3for/research', 'private': False, 'owner': {'login': '3for', 'id': 30716372, 'node_id': 'MDQ6VXNlcjMwNzE2Mzcy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/30716372?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'html_url': 'https://github.com/3for', 'followers_url': 'https://api.github.com/users/3for/followers', 'following_url': 'https://api.github.com/users/3for/following{/other_user}', 'gists_url': 'https://api.github.com/users/3for/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/3for/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/3for/subscriptions', 'organizations_url': 'https://api.github.com/users/3for/orgs', 'repos_url': 'https://api.github.com/users/3for/repos', 'events_url': 'https://api.github.com/users/3for/events{/privacy}', 'received_events_url': 'https://api.github.com/users/3for/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/3for/research', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/3for/research', 'forks_url': 'https://api.github.com/repos/3for/research/forks', 'keys_url': 'https://api.github.com/repos/3for/research/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/3for/research/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/3for/research/teams', 'hooks_url': 'https://api.github.com/repos/3for/research/hooks', 'issue_events_url': 'https://api.github.com/repos/3for/research/issues/events{/number}', 'events_url': 'https://api.github.com/repos/3for/research/events', 'assignees_url': 'https://api.github.com/repos/3for/research/assignees{/user}', 'branches_url': 'https://api.github.com/repos/3for/research/branches{/branch}', 'tags_url': 'https://api.github.com/repos/3for/research/tags', 'blobs_url': 'https://api.github.com/repos/3for/research/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/3for/research/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/3for/research/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/3for/research/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/3for/research/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/3for/research/languages', 'stargazers_url': 'https://api.github.com/repos/3for/research/stargazers', 'contributors_url': 'https://api.github.com/repos/3for/research/contributors', 'subscribers_url': 'https://api.github.com/repos/3for/research/subscribers', 'subscription_url': 'https://api.github.com/repos/3for/research/subscription', 'commits_url': 'https://api.github.com/repos/3for/research/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/3for/research/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/3for/research/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/3for/research/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/3for/research/contents/{+path}', 'compare_url': 'https://api.github.com/repos/3for/research/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/3for/research/merges', 'archive_url': 'https://api.github.com/repos/3for/research/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/3for/research/downloads', 'issues_url': 'https://api.github.com/repos/3for/research/issues{/number}', 'pulls_url': 'https://api.github.com/repos/3for/research/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/3for/research/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/3for/research/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/3for/research/labels{/name}', 'releases_url': 'https://api.github.com/repos/3for/research/releases{/id}', 'deployments_url': 'https://api.github.com/repos/3for/research/deployments', 'created_at': '2018-12-14T11:31:32Z', 'updated_at': '2018-12-14T11:31:29Z', 'pushed_at': '2018-11-08T23:24:30Z', 'git_url': 'git://github.com/3for/research.git', 'ssh_url': 'git@github.com:3for/research.git', 'clone_url': 'https://github.com/3for/research.git', 'svn_url': 'https://github.com/3for/research', 'homepage': None, 'size': 31641, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:31:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394731', 'type': 'WatchEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:31:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754392528', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263', 'pull_request_review_id': 185070168, 'id': 241725263, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNTI2Mw==', 'diff_hunk': '@@ -521,12 +521,34 @@ will result a `subresults` field\\n }\\n ]\\n ```\\n-\\n ### Closing notes\\n \\n * There is no constraint on how much time a simulation may run, but please be considerate.\\n * The simulator doesn\\'t have to terminate nodes itself, upon exit all resources are reclaimed.\\n \\n+# Generating test blockchains\\n+\\n+`Hive` allows you to create rlp encoded blockchains for inclusion into sync tests \\n+\\n+## To generate a blockchain offline\\n+\\n+`Hive` can be run with the `chainGenerate` setting to generate a blockchain according to specification\\n+and then exit. The current version only generates blocks with empty transactions, but this will be\\n+improved in the future to offer generation of chains that exhibit different characteristics for testing.\\n+\\n+* `chainGenerate` Bool (false) Tell Hive to generate a blockchain on the basis of a supplied genesis and terminate\\n+* `chainLength` Uint (2) The length of the chain to generate\\n+* `chainConfig` String Reserved for future usage. Will allow Hive to generate test chains of different types\\n+*\\t`chainOutputPath` String (.) Chain destination folder\\n+*\\t`chainGenesis` String (\"\") The path and filename to the source genesis.json\\n+*\\t`chainBlockTime` Uint (30) The desired block time in seconds', 'path': 'README.md', 'position': 25, 'original_position': 25, 'commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'original_commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"```suggestion\\r\\n*\\t`chainBlockTime` Uint (30) The desired block time in seconds. OBS: It's recommended to set this value to somwhere above 20s to keep the mining difficulty low.\\r\\n```\", 'created_at': '2018-12-14T11:31:01Z', 'updated_at': '2018-12-14T11:31:01Z', 'html_url': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263', 'pull_request_url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-14T11:31:01Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '72a5fd1a30f6c0fff23a8d6973a817c9f950b1f9', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647'}}, 'author_association': 'COLLABORATOR'}}, 'public': True, 'created_at': '2018-12-14T11:31:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754383076', 'type': 'WatchEvent', 'actor': {'id': 40417611, 'login': '1tD0g', 'display_login': '1tD0g', 'gravatar_id': '', 'url': 'https://api.github.com/users/1tD0g', 'avatar_url': 'https://avatars.githubusercontent.com/u/40417611?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:29:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754382391', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640', 'pull_request_review_id': 185069430, 'id': 241724640, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNDY0MA==', 'diff_hunk': '@@ -59,8 +59,10 @@ int main(int argc, char** argv)\\n addNetworkingOption(\"listen-ip\", po::value()->value_name(\"(:)\"),\\n \"Listen on the given IP for incoming connections (default: 0.0.0.0)\");\\n addNetworkingOption(\"listen\", po::value()->value_name(\"\"),\\n- \"Listen on the given port for incoming connections (default: 30303)\\\\n\");\\n-\\n+ \"Listen on the given port for incoming connections (default: 30303)\");\\n+ addNetworkingOption(\"allow-local\",\\n+ \"Allow connections from nodes on your local network. Primarily used for testing \"', 'path': 'aleth-bootnode/main.cpp', 'position': 8, 'original_position': 8, 'commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'original_commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I have doubts about the wording: \"connections\" meaning devp2p connections are allowed anyway.\\r\\nMaybe the flag should be `allow-local-discovery` and description something like \"Include local addresses in discovery.\"', 'created_at': '2018-12-14T11:28:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'b0c1b23314ae8141f5174ca2164451856721481e', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:28:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754371838', 'type': 'IssueCommentEvent', 'actor': {'id': 44437404, 'login': 'naikmyeong', 'display_login': 'naikmyeong', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'avatar_url': 'https://avatars.githubusercontent.com/u/44437404?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'id': 390930429, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'number': 18308, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T11:26:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch'}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447297507', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308#issuecomment-447297507', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'id': 447297507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5NzUwNw==', 'user': {'login': 'naikmyeong', 'id': 44437404, 'node_id': 'MDQ6VXNlcjQ0NDM3NDA0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/44437404?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'html_url': 'https://github.com/naikmyeong', 'followers_url': 'https://api.github.com/users/naikmyeong/followers', 'following_url': 'https://api.github.com/users/naikmyeong/following{/other_user}', 'gists_url': 'https://api.github.com/users/naikmyeong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/naikmyeong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/naikmyeong/subscriptions', 'organizations_url': 'https://api.github.com/users/naikmyeong/orgs', 'repos_url': 'https://api.github.com/users/naikmyeong/repos', 'events_url': 'https://api.github.com/users/naikmyeong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/naikmyeong/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:26:42Z', 'updated_at': '2018-12-14T11:26:42Z', 'author_association': 'NONE', 'body': 'Here is the release note for go 1.11.3 and 1.10.6 https://groups.google.com/forum/m/#!topic/golang-announce/Kw31K8G7Fi0'}}, 'public': True, 'created_at': '2018-12-14T11:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754353877', 'type': 'IssuesEvent', 'actor': {'id': 49922, 'login': 'miohtama', 'display_login': 'miohtama', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'avatar_url': 'https://avatars.githubusercontent.com/u/49922?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5657', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5657', 'id': 391071836, 'node_id': 'MDU6SXNzdWUzOTEwNzE4MzY=', 'number': 5657, 'title': 'Feature request: flattened source code output', 'user': {'login': 'miohtama', 'id': 49922, 'node_id': 'MDQ6VXNlcjQ5OTIy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/49922?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'html_url': 'https://github.com/miohtama', 'followers_url': 'https://api.github.com/users/miohtama/followers', 'following_url': 'https://api.github.com/users/miohtama/following{/other_user}', 'gists_url': 'https://api.github.com/users/miohtama/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/miohtama/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/miohtama/subscriptions', 'organizations_url': 'https://api.github.com/users/miohtama/orgs', 'repos_url': 'https://api.github.com/users/miohtama/repos', 'events_url': 'https://api.github.com/users/miohtama/events{/privacy}', 'received_events_url': 'https://api.github.com/users/miohtama/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T11:22:57Z', 'updated_at': '2018-12-14T11:22:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '## Abstract\\r\\n\\r\\n``solc`` could generate flattened sol source code in output JSON.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nA flattened source code, all includes eliminated and having source in a single file, is needed for source code verification (reproducible builds). The most common venue is EtherScan and public verification.\\r\\n\\r\\nCurrently there are third party tools doing this - see ( https://github.com/BlockCatIO/solidity-flattener and https://github.com/nomiclabs/truffle-flattener ). However the add extra complexity to the toolchain, as the natural place to to produce the flattened source code would be the compiler itself as the compiler know from where it has assembled the source code files. For non-trivial source code tree doing a flattened version of a contract tends to be a labour intensive process.\\r\\n\\r\\n## Specification\\r\\n\\r\\nIn Input Description, include new `outputSelection` option `source`. This will procude matching `source` item in `contracts` section.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nAs this is additional change to the compiler output, I do not see it should cause \\r\\n\\r\\n## Earlier discussion\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/2620\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/611'}}, 'public': True, 'created_at': '2018-12-14T11:22:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754349538', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137588967, 'size': 6, 'distinct_size': 2, 'ref': 'refs/heads/smt_mapping', 'head': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'before': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}, {'sha': '6a2809a582d95a5b4cb52abeb3f92ed01857809b', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6a2809a582d95a5b4cb52abeb3f92ed01857809b'}, {'sha': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Clear all mapping knowledge after array variable assignment', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/9199718ec0aa1210094ceb9ca587fe49fba70518'}]}, 'public': True, 'created_at': '2018-12-14T11:22:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343870', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137586095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'before': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'commits': [{'sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Make extra container for copying easier to avoid (#162)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/c4e0f6f899286f4e0cef7490a1a4fda6fead5522'}]}, 'public': True, 'created_at': '2018-12-14T11:20:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343776', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'closed', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T11:20:51Z', 'closed_at': '2018-12-14T11:20:51Z', 'merged_at': '2018-12-14T11:20:51Z', 'merge_commit_sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T11:20:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754335842', 'type': 'WatchEvent', 'actor': {'id': 679887, 'login': 'hkk', 'display_login': 'hkk', 'gravatar_id': '', 'url': 'https://api.github.com/users/hkk', 'avatar_url': 'https://avatars.githubusercontent.com/u/679887?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:19:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754329096', 'type': 'WatchEvent', 'actor': {'id': 15720036, 'login': 'kyledewy', 'display_login': 'kyledewy', 'gravatar_id': '', 'url': 'https://api.github.com/users/kyledewy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15720036?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:17:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303327', 'type': 'ForkEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161773980, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzM5ODA=', 'name': 'go-ethereum', 'full_name': 'racmnet/go-ethereum', 'private': False, 'owner': {'login': 'racmnet', 'id': 10967038, 'node_id': 'MDQ6VXNlcjEwOTY3MDM4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/10967038?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'html_url': 'https://github.com/racmnet', 'followers_url': 'https://api.github.com/users/racmnet/followers', 'following_url': 'https://api.github.com/users/racmnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/racmnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/racmnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/racmnet/subscriptions', 'organizations_url': 'https://api.github.com/users/racmnet/orgs', 'repos_url': 'https://api.github.com/users/racmnet/repos', 'events_url': 'https://api.github.com/users/racmnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/racmnet/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/racmnet/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/racmnet/go-ethereum', 'forks_url': 'https://api.github.com/repos/racmnet/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/racmnet/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/racmnet/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/racmnet/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/racmnet/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/racmnet/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/racmnet/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/racmnet/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/racmnet/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/racmnet/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/racmnet/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/racmnet/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/racmnet/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/racmnet/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/racmnet/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/racmnet/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/racmnet/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/racmnet/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/racmnet/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/racmnet/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/racmnet/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/racmnet/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/racmnet/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/racmnet/go-ethereum/deployments', 'created_at': '2018-12-14T11:12:27Z', 'updated_at': '2018-12-14T10:47:12Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/racmnet/go-ethereum.git', 'ssh_url': 'git@github.com:racmnet/go-ethereum.git', 'clone_url': 'https://github.com/racmnet/go-ethereum.git', 'svn_url': 'https://github.com/racmnet/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107637, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:12:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303002', 'type': 'WatchEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:12:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754268209', 'type': 'WatchEvent', 'actor': {'id': 1172733, 'login': 'toannk', 'display_login': 'toannk', 'gravatar_id': '', 'url': 'https://api.github.com/users/toannk', 'avatar_url': 'https://avatars.githubusercontent.com/u/1172733?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:05:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754240410', 'type': 'IssueCommentEvent', 'actor': {'id': 4943570, 'login': 'b00ris', 'display_login': 'b00ris', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'avatar_url': 'https://avatars.githubusercontent.com/u/4943570?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'id': 329621626, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTkyODMzNzU4', 'number': 16904, 'title': 'les: implement ulc', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 23, 'created_at': '2018-06-05T20:56:18Z', 'updated_at': '2018-12-14T11:00:05Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/16904', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/16904.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/16904.patch'}, 'body': 'Implements ultra light client feature.\\r\\nhttps://github.com/zsfelfoldi/ethereum-docs/blob/master/les/tasks/ulc.txt\\r\\nMore information about ULC https://hackmd.io/s/HJy7jjZpm'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447291395', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904#issuecomment-447291395', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'id': 447291395, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5MTM5NQ==', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:00:05Z', 'updated_at': '2018-12-14T11:00:05Z', 'author_association': 'CONTRIBUTOR', 'body': '@zsfelfoldi @karalabe :('}}, 'public': True, 'created_at': '2018-12-14T11:00:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754230101', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3137526125, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'before': '1683c108885da84f8b81b3669b6e40e9111e147b', 'commits': [{'sha': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: fix windows flag', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/5ff2793cc6d8b3671d41a99c033b64e475e1c36f'}]}, 'public': True, 'created_at': '2018-12-14T10:58:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754229905', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868', 'pull_request_review_id': 185059651, 'id': 241716868, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcxNjg2OA==', 'diff_hunk': '@@ -0,0 +1,151 @@\\n+from argparse import (\\n+ ArgumentParser,\\n+ _SubParsersAction,\\n+)\\n+import asyncio\\n+\\n+from eth_typing import (\\n+ BlockNumber,\\n+)\\n+from lahja import (\\n+ Endpoint,\\n+)\\n+\\n+from eth.constants import (\\n+ GENESIS_BLOCK_NUMBER\\n+)\\n+\\n+from p2p.discovery import (\\n+ get_v5_topic,\\n+ DiscoveryByTopicProtocol,\\n+ PreferredNodeDiscoveryProtocol,\\n+)\\n+from p2p.kademlia import (\\n+ Address,\\n+)\\n+from p2p.protocol import (\\n+ Protocol,\\n+)\\n+from p2p.service import (\\n+ BaseService,\\n+)\\n+\\n+from trinity.config import (\\n+ TrinityBeaconConfig,\\n+ TrinityConfig,\\n+)\\n+from trinity.db.manager import (\\n+ create_db_manager\\n+)\\n+from trinity.extensibility import (\\n+ BaseIsolatedPlugin,\\n+)\\n+from trinity.protocol.bcc.proto import (\\n+ BCCProtocol,\\n+)\\n+from trinity.protocol.eth.proto import (\\n+ ETHProtocol,\\n+)\\n+from trinity.protocol.les.proto import (\\n+ LESProtocolV2,\\n+)\\n+from trinity.utils.shutdown import (\\n+ exit_with_service_and_endpoint,\\n+)\\n+from .discovery_service import (\\n+ DiscoveryService,\\n+)\\n+\\n+\\n+def get_protocol(trinity_config: TrinityConfig) -> Protocol:\\n+ # For now DiscoveryByTopicProtocol supports a single topic, so we use the latest\\n+ # version of our supported protocols. Maybe this could be more generic?\\n+ if isinstance(trinity_config, TrinityBeaconConfig):\\n+ return BCCProtocol\\n+ elif trinity_config.is_light_mode:\\n+ return LESProtocolV2\\n+ else:\\n+ return ETHProtocol\\n+\\n+\\n+def get_discv5_topic(trinity_config: TrinityConfig, protocol: Protocol):\\n+ db_manager = create_db_manager(trinity_config.database_ipc_path)\\n+ db_manager.connect()\\n+\\n+ header_db = db_manager.get_headerdb()\\n+ genesis_hash = header_db.get_canonical_block_hash(BlockNumber(GENESIS_BLOCK_NUMBER))\\n+\\n+ return get_v5_topic(protocol, genesis_hash)\\n+\\n+\\n+class DiscoveryBootstrapService(BaseService):\\n+ \"\"\"\\n+ Bootstrap discovery to provide a parent ``CancellationToken``\\n+ \"\"\"\\n+\\n+ def __init__(self, event_bus: Endpoint, trinity_config: TrinityConfig) -> None:\\n+ super().__init__()\\n+ self.event_bus = event_bus\\n+ self.trinity_config = trinity_config\\n+\\n+ async def _run(self) -> None:\\n+ external_ip = \"0.0.0.0\"', 'path': 'trinity/plugins/builtin/peer_discovery/plugin.py', 'position': 96, 'original_position': 92, 'commit_id': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'original_commit_id': '26c08f3b97fb36a428b2872da34d321c589415e8', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@carver do you prefer to keep this open until you have tried this on your upnp network? I also think we should move the UpnpService in an isolated plugin as well and then we can also put back that first external ip lookup. I don't think that service does much right now though. Apart from the initial lookup of the external ip, it is supposed to continuously provide a port mapping but I don't see how that would be used anywhere. \", 'created_at': '2018-12-14T10:58:04Z', 'updated_at': '2018-12-14T10:58:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}}, 'in_reply_to_id': 240018196}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'id': 236562386, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NTYyMzg2', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1556.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1556.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556', 'number': 1556, 'state': 'open', 'locked': False, 'title': 'Move peer discovery into an isolated plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nCurrently the peer discovery runs in the networking process among a lot of other things. Moving it into an isolated plugin should:\\r\\n\\r\\n- increase efficiency of syncing as the peer discovery probably takes a fair share of computing power\\r\\n- increase decoupling as it breaks up the networking code into smaller pieces \\r\\n- improve reusability as the new discovery can be accessed from any other interested party since it is integrated with the event bus \\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- inverted the model in the `DiscoveryService` so that it doesn't know about the `PeerPool` and instead just exposes an API for consumers to request peer candidates from\\r\\n- the API is exposed over the EventBus so that it can be requested from any other process\\r\\n- created an isolated plugin to run the new discovery service in a separate process\\r\\n- removed discovery code from the server where it previously lived\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://pixnio.com/free-images/2018/10/03/2018-10-03-04-24-27.jpg)\\r\\n\", 'created_at': '2018-12-06T15:07:31Z', 'updated_at': '2018-12-14T10:58:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1109d6a894e45d55286f76f9ab28804a1a0c0e70', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5', 'head': {'label': 'cburgdorf:christoph/feat/discovery-plugin', 'ref': 'christoph/feat/discovery-plugin', 'sha': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T10:23:32Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8304, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T10:06:03Z', 'pushed_at': '2018-12-14T10:23:34Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:58:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754198367', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137509444, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'before': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'commits': [{'sha': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0'}]}, 'public': True, 'created_at': '2018-12-14T10:52:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754172758', 'type': 'WatchEvent', 'actor': {'id': 19657992, 'login': 'smgqk', 'display_login': 'smgqk', 'gravatar_id': '', 'url': 'https://api.github.com/users/smgqk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19657992?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:47:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754164859', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137491975, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'before': '944f9f281f128c39839a324aa111dae0c1a9da41', 'commits': [{'sha': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b8b9bfdac096c4896ba665e6446aea63c5508562'}]}, 'public': True, 'created_at': '2018-12-14T10:45:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754150704', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137484484, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '944f9f281f128c39839a324aa111dae0c1a9da41', 'before': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'commits': [{'sha': '944f9f281f128c39839a324aa111dae0c1a9da41', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/944f9f281f128c39839a324aa111dae0c1a9da41'}]}, 'public': True, 'created_at': '2018-12-14T10:42:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754140773', 'type': 'WatchEvent', 'actor': {'id': 8289914, 'login': 'cuidezhu', 'display_login': 'cuidezhu', 'gravatar_id': '', 'url': 'https://api.github.com/users/cuidezhu', 'avatar_url': 'https://avatars.githubusercontent.com/u/8289914?'}, 'repo': {'id': 22730041, 'name': 'ethereum/dapp-bin', 'url': 'https://api.github.com/repos/ethereum/dapp-bin'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:41:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754137353', 'type': 'PushEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3137477529, 'size': 10, 'distinct_size': 10, 'ref': 'refs/heads/master', 'head': 'b92056768376d42b809e2a80afd3178b2dead29f', 'before': 'ec3886029393fc9927b130ba8f8671480d810391', 'commits': [{'sha': '11e327c20526ff137683d8ca3192203e3c493820', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Validate hashes in PONG packets.\\nSave sent PING hash in m_sentPings for each request and compare it with the one receive in PONG.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/11e327c20526ff137683d8ca3192203e3c493820'}, {'sha': 'fcc1d50d50d509efce359a1a4efb89d056f3d6b1', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unit tests for PONG validation', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/fcc1d50d50d509efce359a1a4efb89d056f3d6b1'}, {'sha': '75997f9ad1629d32b19d47510ebce05ac4c0c1e8', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Finding free UDP port for discovery unit tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/75997f9ad1629d32b19d47510ebce05ac4c0c1e8'}, {'sha': '68edf46686be689f74cdd9061bb99c33b6e694da', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Remove node from node table when PONG was not received from a node in c_timeToLive time', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/68edf46686be689f74cdd9061bb99c33b6e694da'}, {'sha': '29079f7c4eca7e58a9c1df5d66df5f1f2110139a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': \"Fix minor issues after review.\\nMake constexpr out of constants.\\nDon't unnecessary copy the packet in onPacketReceived.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/29079f7c4eca7e58a9c1df5d66df5f1f2110139a'}, {'sha': '22d8402fb5baea83ca99522bb9dad7b090687642', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Call dropNode by moving shared_ptr into it.\\nSome renamings to make code clearer', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/22d8402fb5baea83ca99522bb9dad7b090687642'}, {'sha': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Add static constexpr members definition to fix clang build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a'}, {'sha': '6d0c90312631fbb89fc294e121bc804111d86327', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unify eviction and ping timeout handling mechanisms', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/6d0c90312631fbb89fc294e121bc804111d86327'}, {'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Improve thread-safety of NodeTable.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/87cc8487521d0eec7272e6a5599af298107812e5'}, {'sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Merge pull request #5380 from ethereum/improve-discovery2\\n\\nValidate PONGs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/b92056768376d42b809e2a80afd3178b2dead29f'}]}, 'public': True, 'created_at': '2018-12-14T10:40:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136734', 'type': 'DeleteEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'improve-discovery2', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:40:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136488', 'type': 'PullRequestEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'closed', 'number': 5380, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'closed', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-14T10:40:19Z', 'closed_at': '2018-12-14T10:40:19Z', 'merged_at': '2018-12-14T10:40:19Z', 'merge_commit_sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'comments': 10, 'review_comments': 32, 'maintainer_can_modify': False, 'commits': 9, 'additions': 309, 'deletions': 201, 'changed_files': 5}}, 'public': True, 'created_at': '2018-12-14T10:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754132960', 'type': 'ForkEvent', 'actor': {'id': 43116881, 'login': '0xC0DE4C0FFEE', 'display_login': '0xC0DE4C0FFEE', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'avatar_url': 'https://avatars.githubusercontent.com/u/43116881?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161770481, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzA0ODE=', 'name': 'web3.js', 'full_name': '0xC0DE4C0FFEE/web3.js', 'private': False, 'owner': {'login': '0xC0DE4C0FFEE', 'id': 43116881, 'node_id': 'MDQ6VXNlcjQzMTE2ODgx', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43116881?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'html_url': 'https://github.com/0xC0DE4C0FFEE', 'followers_url': 'https://api.github.com/users/0xC0DE4C0FFEE/followers', 'following_url': 'https://api.github.com/users/0xC0DE4C0FFEE/following{/other_user}', 'gists_url': 'https://api.github.com/users/0xC0DE4C0FFEE/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/0xC0DE4C0FFEE/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/0xC0DE4C0FFEE/subscriptions', 'organizations_url': 'https://api.github.com/users/0xC0DE4C0FFEE/orgs', 'repos_url': 'https://api.github.com/users/0xC0DE4C0FFEE/repos', 'events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/events{/privacy}', 'received_events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js', 'forks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/forks', 'keys_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/events', 'assignees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/merges', 'archive_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/deployments', 'created_at': '2018-12-14T10:39:42Z', 'updated_at': '2018-12-14T10:21:11Z', 'pushed_at': '2018-12-14T10:21:19Z', 'git_url': 'git://github.com/0xC0DE4C0FFEE/web3.js.git', 'ssh_url': 'git@github.com:0xC0DE4C0FFEE/web3.js.git', 'clone_url': 'https://github.com/0xC0DE4C0FFEE/web3.js.git', 'svn_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:39:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754089991', 'type': 'ForkEvent', 'actor': {'id': 7226223, 'login': 'rodrigo-garcia-leon', 'display_login': 'rodrigo-garcia-leon', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'avatar_url': 'https://avatars.githubusercontent.com/u/7226223?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161769580, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Njk1ODA=', 'name': 'go-ethereum', 'full_name': 'rodrigo-garcia-leon/go-ethereum', 'private': False, 'owner': {'login': 'rodrigo-garcia-leon', 'id': 7226223, 'node_id': 'MDQ6VXNlcjcyMjYyMjM=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/7226223?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'html_url': 'https://github.com/rodrigo-garcia-leon', 'followers_url': 'https://api.github.com/users/rodrigo-garcia-leon/followers', 'following_url': 'https://api.github.com/users/rodrigo-garcia-leon/following{/other_user}', 'gists_url': 'https://api.github.com/users/rodrigo-garcia-leon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rodrigo-garcia-leon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rodrigo-garcia-leon/subscriptions', 'organizations_url': 'https://api.github.com/users/rodrigo-garcia-leon/orgs', 'repos_url': 'https://api.github.com/users/rodrigo-garcia-leon/repos', 'events_url': 'https://api.github.com/users/rodrigo-garcia-leon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rodrigo-garcia-leon/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum', 'forks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/deployments', 'created_at': '2018-12-14T10:31:32Z', 'updated_at': '2018-12-14T10:15:59Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/rodrigo-garcia-leon/go-ethereum.git', 'ssh_url': 'git@github.com:rodrigo-garcia-leon/go-ethereum.git', 'clone_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum.git', 'svn_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:31:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754087798', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'open', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T10:31:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T07:35:59Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 25, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 25, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:31:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754057214', 'type': 'DeleteEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'ref': 'removeUnassignedVarDefs', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:25:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754038430', 'type': 'IssueCommentEvent', 'actor': {'id': 22429695, 'login': 'codecov[bot]', 'display_login': 'codecov', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/22429695?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'id': 390235609, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'number': 5635, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:22:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447281816', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#issuecomment-447281816', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'id': 447281816, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MTgxNg==', 'user': {'login': 'codecov[bot]', 'id': 22429695, 'node_id': 'MDM6Qm90MjI0Mjk2OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/in/254?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov%5Bbot%5D', 'html_url': 'https://github.com/apps/codecov', 'followers_url': 'https://api.github.com/users/codecov%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/codecov%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/codecov%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/codecov%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov%5Bbot%5D/received_events', 'type': 'Bot', 'site_admin': False}, 'created_at': '2018-12-14T10:22:28Z', 'updated_at': '2018-12-14T10:22:28Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=h1) Report\\n> Merging [#5635](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=desc) into [develop](https://codecov.io/gh/ethereum/solidity/commit/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d?src=pr&el=desc) will **decrease** coverage by `0.02%`.\\n> The diff coverage is `98%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/solidity/pull/5635/graphs/tree.svg?width=650&token=87PGzVEwU0&height=150&src=pr)](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## develop #5635 +/- ##\\n===========================================\\n- Coverage 88.26% 88.23% -0.03% \\n===========================================\\n Files 339 339 \\n Lines 32472 32458 -14 \\n Branches 3887 3885 -2 \\n===========================================\\n- Hits 28662 28640 -22 \\n- Misses 2494 2501 +7 \\n- Partials 1316 1317 +1\\n```\\n\\n| Flag | Coverage Δ | |\\n|---|---|---|\\n| #all | `88.23% <98%> (-0.03%)` | :arrow_down: |\\n| #syntax | `28.55% <24%> (-0.01%)` | :arrow_down: |\\n'}}, 'public': True, 'created_at': '2018-12-14T10:22:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754037696', 'type': 'PushEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137424218, 'size': 46, 'distinct_size': 2, 'ref': 'refs/heads/cpp-default-ctors', 'head': '714cb78794902d611f922aa52241baec2d9e8622', 'before': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-14T10:22:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754031393', 'type': 'WatchEvent', 'actor': {'id': 16360786, 'login': 'nafidurmus', 'display_login': 'nafidurmus', 'gravatar_id': '', 'url': 'https://api.github.com/users/nafidurmus', 'avatar_url': 'https://avatars.githubusercontent.com/u/16360786?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:21:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754010490', 'type': 'IssueCommentEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'repository_url': 'https://api.github.com/repos/ethereum/web3.js', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/events', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085', 'id': 386183041, 'node_id': 'MDU6SXNzdWUzODYxODMwNDE=', 'number': 2085, 'title': 'Add TypeScript typings for all packages', 'user': {'login': 'nivida', 'id': 1699173, 'node_id': 'MDQ6VXNlcjE2OTkxNzM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1699173?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'html_url': 'https://github.com/nivida', 'followers_url': 'https://api.github.com/users/nivida/followers', 'following_url': 'https://api.github.com/users/nivida/following{/other_user}', 'gists_url': 'https://api.github.com/users/nivida/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nivida/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nivida/subscriptions', 'organizations_url': 'https://api.github.com/users/nivida/orgs', 'repos_url': 'https://api.github.com/users/nivida/repos', 'events_url': 'https://api.github.com/users/nivida/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nivida/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 561222327, 'node_id': 'MDU6TGFiZWw1NjEyMjIzMjc=', 'url': 'https://api.github.com/repos/ethereum/web3.js/labels/bounty', 'name': 'bounty', 'color': 'fafad2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-30T13:15:08Z', 'updated_at': '2018-12-14T10:17:20Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"This is a gitcoin bounty.\\r\\n\\r\\n#### ToDo:\\r\\n- [ ] Add type definitions for all modules\\r\\n- [ ] Add dtslint tests for all modules\\r\\n- [ ] Add typings to PR template check list \\r\\n- [ ] See if there's a coverage tool for dtslint tests \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments/447280447', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085#issuecomment-447280447', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'id': 447280447, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MDQ0Nw==', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T10:17:20Z', 'updated_at': '2018-12-14T10:17:20Z', 'author_association': 'COLLABORATOR', 'body': 'PR number 10 - https://github.com/ethereum/web3.js/pull/2122'}}, 'public': True, 'created_at': '2018-12-14T10:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754009907', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8f56ddb559885e05d89230f9072293d14f1945b6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:17:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754005666', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8efd262bb66706ae968a59cf51241a692bab4956', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:16:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754002765', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137406190, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'before': '3796751efcc3fab71799450f1bff370d081438ec', 'commits': [{'sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'author': {'email': '31876119+qdgogogo@users.noreply.github.com', 'name': 'qd-ethan'}, 'message': 'Comment error (#18303)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/9940d93a43bab1f060e8fbfadff510c3298f2726'}]}, 'public': True, 'created_at': '2018-12-14T10:15:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754001592', 'type': 'PullRequestEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'opened', 'number': 2122, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122', 'id': 238671709, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjcxNzA5', 'html_url': 'https://github.com/ethereum/web3.js/pull/2122', 'diff_url': 'https://github.com/ethereum/web3.js/pull/2122.diff', 'patch_url': 'https://github.com/ethereum/web3.js/pull/2122.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122', 'number': 2122, 'state': 'open', 'locked': False, 'title': 'Web3 eth', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'body': 'web3-eth types 👍 ', 'created_at': '2018-12-14T10:15:45Z', 'updated_at': '2018-12-14T10:15:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d', 'head': {'label': 'joshstevens19:web3-eth', 'ref': 'web3-eth', 'sha': 'd1e648444943a877441a69a535ec60dcf3d04e7d', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 156678793, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTY2Nzg3OTM=', 'name': 'web3.js', 'full_name': 'joshstevens19/web3.js', 'private': False, 'owner': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/joshstevens19/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/joshstevens19/web3.js', 'forks_url': 'https://api.github.com/repos/joshstevens19/web3.js/forks', 'keys_url': 'https://api.github.com/repos/joshstevens19/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/joshstevens19/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/joshstevens19/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/joshstevens19/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/joshstevens19/web3.js/events', 'assignees_url': 'https://api.github.com/repos/joshstevens19/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/joshstevens19/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/joshstevens19/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/joshstevens19/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/joshstevens19/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/joshstevens19/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/joshstevens19/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/joshstevens19/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/joshstevens19/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/joshstevens19/web3.js/merges', 'archive_url': 'https://api.github.com/repos/joshstevens19/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/joshstevens19/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/joshstevens19/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/joshstevens19/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/joshstevens19/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/joshstevens19/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/joshstevens19/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/joshstevens19/web3.js/deployments', 'created_at': '2018-11-08T09:02:56Z', 'updated_at': '2018-11-17T23:52:35Z', 'pushed_at': '2018-12-14T10:15:02Z', 'git_url': 'git://github.com/joshstevens19/web3.js.git', 'ssh_url': 'git@github.com:joshstevens19/web3.js.git', 'clone_url': 'https://github.com/joshstevens19/web3.js.git', 'svn_url': 'https://github.com/joshstevens19/web3.js', 'homepage': '', 'size': 36736, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'JavaScript', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:ethereumProvider', 'ref': 'ethereumProvider', 'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 24655114, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNDY1NTExNA==', 'name': 'web3.js', 'full_name': 'ethereum/web3.js', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.js', 'description': 'Ethereum JavaScript API', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.js', 'forks_url': 'https://api.github.com/repos/ethereum/web3.js/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.js/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.js/deployments', 'created_at': '2014-09-30T20:50:37Z', 'updated_at': '2018-12-14T09:59:26Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/ethereum/web3.js.git', 'ssh_url': 'git@github.com:ethereum/web3.js.git', 'clone_url': 'https://github.com/ethereum/web3.js.git', 'svn_url': 'https://github.com/ethereum/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 7317, 'watchers_count': 7317, 'language': 'JavaScript', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 2181, 'mirror_url': None, 'archived': False, 'open_issues_count': 368, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 2181, 'open_issues': 368, 'watchers': 7317, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122'}, 'html': {'href': 'https://github.com/ethereum/web3.js/pull/2122'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 724, 'deletions': 9, 'changed_files': 7}}, 'public': True, 'created_at': '2018-12-14T10:15:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754000431', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18303, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303', 'id': 238355051, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU1MDUx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18303', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18303.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18303.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303', 'number': 18303, 'state': 'closed', 'locked': False, 'title': 'core/tx_cacher: Small comment error', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This is just a comment word misspelled', 'created_at': '2018-12-13T11:27:18Z', 'updated_at': '2018-12-14T10:15:32Z', 'closed_at': '2018-12-14T10:15:32Z', 'merged_at': '2018-12-14T10:15:32Z', 'merge_commit_sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b', 'head': {'label': 'qdgogogo:master', 'ref': 'master', 'sha': '60a98b030d1bd2744c73f00830966cf2307d646b', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153065737, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTMwNjU3Mzc=', 'name': 'go-ethereum', 'full_name': 'qdgogogo/go-ethereum', 'private': False, 'owner': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/qdgogogo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/qdgogogo/go-ethereum', 'forks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/deployments', 'created_at': '2018-10-15T06:48:24Z', 'updated_at': '2018-12-13T11:22:28Z', 'pushed_at': '2018-12-13T11:22:21Z', 'git_url': 'git://github.com/qdgogogo/go-ethereum.git', 'ssh_url': 'git@github.com:qdgogogo/go-ethereum.git', 'clone_url': 'https://github.com/qdgogogo/go-ethereum.git', 'svn_url': 'https://github.com/qdgogogo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106813, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 853, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 853, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18303'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:15:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753992098', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18294, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294', 'id': 238272662, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjcyNjYy', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18294', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18294.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18294.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294', 'number': 18294, 'state': 'closed', 'locked': False, 'title': 'Update interfaces.go', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T05:52:56Z', 'updated_at': '2018-12-14T10:14:00Z', 'closed_at': '2018-12-14T10:14:00Z', 'merged_at': None, 'merge_commit_sha': '68fe4ea495ce2d9048821926bbecfe07c824fd05', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079', 'head': {'label': 'shangsony:patch-1', 'ref': 'patch-1', 'sha': '5daec733cc12f5be4e953f64bfdb788bfe731079', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161590474, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1OTA0NzQ=', 'name': 'go-ethereum', 'full_name': 'shangsony/go-ethereum', 'private': False, 'owner': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/shangsony/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/shangsony/go-ethereum', 'forks_url': 'https://api.github.com/repos/shangsony/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/shangsony/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/shangsony/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/shangsony/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/shangsony/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/shangsony/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/shangsony/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/shangsony/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/shangsony/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/shangsony/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/shangsony/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/shangsony/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/shangsony/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/shangsony/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/shangsony/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/shangsony/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/shangsony/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/shangsony/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/shangsony/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/shangsony/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/shangsony/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/shangsony/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/shangsony/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/shangsony/go-ethereum/deployments', 'created_at': '2018-12-13T05:51:54Z', 'updated_at': '2018-12-13T05:52:05Z', 'pushed_at': '2018-12-13T05:52:44Z', 'git_url': 'git://github.com/shangsony/go-ethereum.git', 'ssh_url': 'git@github.com:shangsony/go-ethereum.git', 'clone_url': 'https://github.com/shangsony/go-ethereum.git', 'svn_url': 'https://github.com/shangsony/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107603, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4e6f53ac3360c4e90fdb419e7073e4316b2a49f7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:08:12Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 854, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 854, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18294'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 0, 'changed_files': 0}}, 'public': True, 'created_at': '2018-12-14T10:14:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753984053', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523', 'pull_request_review_id': 185042776, 'id': 241703523, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMzUyMw==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': 24, 'original_position': 24, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@ekpyron Actually it does make sense the way I wrote it, here, because it eliminates the need of constructors as long as you don't need custom logic in the constructor bodies.\", 'created_at': '2018-12-14T10:12:32Z', 'updated_at': '2018-12-14T10:12:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:12:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:12:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963192', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137385470, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '3796751efcc3fab71799450f1bff370d081438ec', 'before': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'commits': [{'sha': '3796751efcc3fab71799450f1bff370d081438ec', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'rpc: add application/json-rpc as accepted content type, fixes #18293 (#18310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/3796751efcc3fab71799450f1bff370d081438ec'}]}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963172', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18293', 'id': 390408146, 'node_id': 'MDU6SXNzdWUzOTA0MDgxNDY=', 'number': 18293, 'title': 'geth should accept application/json-rpc as Content-Type', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-12T21:04:37Z', 'updated_at': '2018-12-14T10:08:43Z', 'closed_at': '2018-12-14T10:08:43Z', 'author_association': 'MEMBER', 'body': 'currently when using the content-type `application/json-rpc`\\r\\nthen the geth rpc server answers with 415 (Unsupported Media Type)\\r\\n\\r\\nBut this SHOULD be the Content-Type for json rpc as in: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963052', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358', 'pull_request_review_id': 185041327, 'id': 241702358, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMjM1OA==', 'diff_hunk': '@@ -304,7 +304,7 @@ KnownState::StoreOperation KnownState::storeInStorage(\\n \\n \\tAssemblyItem item(Instruction::SSTORE, _location);\\n \\tId id = m_expressionClasses->find(item, {_slot, _value}, true, m_sequenceNumber);\\n-\\tStoreOperation operation(StoreOperation::Storage, _slot, m_sequenceNumber, id);\\n+\\tStoreOperation operation {StoreOperation::Storage, _slot, m_sequenceNumber, id};', 'path': 'libevmasm/KnownState.cpp', 'position': 5, 'original_position': 5, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually, I personally prefer spacing here, for readability. Also goes in line with `inline class member initialization`, such as `int m_value {1234};`. it would just look unreadable in not having that space there (but that's my opinion). What do you think? Maybe we should globally revisit our coding style guidelines in general (as a team). :)\", 'created_at': '2018-12-14T10:08:42Z', 'updated_at': '2018-12-14T10:08:42Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241026062}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:08:42Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:08:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753959914', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'closed', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T10:08:11Z', 'closed_at': '2018-12-14T10:08:11Z', 'merged_at': '2018-12-14T10:08:11Z', 'merge_commit_sha': '3796751efcc3fab71799450f1bff370d081438ec', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:28:27Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137982, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:05:33Z', 'pushed_at': '2018-12-14T10:08:11Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 856, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 856, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 20, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:08:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948406', 'type': 'PushEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137378095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'before': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'commits': [{'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Teach TrinityConfig to handle sub configs\\n\\nThis commits adds sub config handling to TrinityConfig.\\nThis is needed to support different kinds of nodes\\nthat are loosely related yet different enough to\\ndemand different configurations.\\n\\nThis allows us to handle shared configs on a base\\nlevel as well as mixing in different sub configs\\ndepending on the use case.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771'}]}, 'public': True, 'created_at': '2018-12-14T10:06:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948149', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1566, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'closed', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T10:05:59Z', 'closed_at': '2018-12-14T10:05:59Z', 'merged_at': '2018-12-14T10:05:59Z', 'merge_commit_sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T10:05:59Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 28, 'maintainer_can_modify': False, 'commits': 1, 'additions': 121, 'deletions': 21, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-14T10:06:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753945736', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:05:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753940765', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:04:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753915388', 'type': 'WatchEvent', 'actor': {'id': 8391134, 'login': 'lishenglincn', 'display_login': 'lishenglincn', 'gravatar_id': '', 'url': 'https://api.github.com/users/lishenglincn', 'avatar_url': 'https://avatars.githubusercontent.com/u/8391134?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:00:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753911225', 'type': 'WatchEvent', 'actor': {'id': 10215844, 'login': 'lag945', 'display_login': 'lag945', 'gravatar_id': '', 'url': 'https://api.github.com/users/lag945', 'avatar_url': 'https://avatars.githubusercontent.com/u/10215844?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:59:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753900409', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975', 'pull_request_review_id': 185037009, 'id': 241698975, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5ODk3NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': None, 'original_position': 138, 'commit_id': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I will move this into another PR so that we can discuss this separately. I'd also be interested to hear what @carver thinks about it. Something in me really likes to treat the beacon node as a separate program here. E.g what about the `NodeKey` would the regular trinity node share that with the beacon node? It seems cleaner to me to keep the root directories of each of them clearly separated..also in terms of logs etc.\", 'created_at': '2018-12-14T09:57:31Z', 'updated_at': '2018-12-14T09:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7f8da60b68e0e2ede47ffa9a56b550564e23f09d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:53:08Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753860032', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762', 'pull_request_review_id': 185034184, 'id': 241696762, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5Njc2Mg==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Agree with the string like checks. But I'd rather keep the `Iterable` as `Sequence` would exclude generators which might be nice to have in some cases.\", 'created_at': '2018-12-14T09:50:20Z', 'updated_at': '2018-12-14T09:50:20Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}, 'in_reply_to_id': 241546881}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-14T09:50:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:50:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753811671', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:41:30Z', 'closed_at': '2018-12-14T09:41:30Z', 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:41:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753807041', 'type': 'IssueCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:40:39Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447270575', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507#issuecomment-447270575', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'id': 447270575, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI3MDU3NQ==', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:40:39Z', 'updated_at': '2018-12-14T09:40:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"Sorry for not answering until now, I didn't notice your response. \\r\\nSo, the `rpcvhosts` is not the correct protection mechanism against an attacker which can create fully custom arbitrary requests. It is solely meant to prevent attacks originating from your own browser, where the attacker (a webpage) has certain restrictions about what types of requests can be made. \\r\\n\\r\\nIf an attacker has your ip, and you are allowing network traffic over the port, then it's a bit futile to rely on rpcvhosts as a protection mechanism: the only thing preventing the attacker from interacting with your node is that he doesn't know the correct name to use. \\r\\n\\r\\nHowever, if you have a public DNS, then a simple RDNS lookup would yield it, and the attacker could also try to bruteforce names. I'm not even sure that we don't leak it ourselves in certain circumstance, e.g. if we supply origin headers in the responses and the same origin is used as the vhost. \\r\\n\\r\\nSo it's kind of solving the wrong problem and giving people a false sense of security. A better approach is to simply not allow internet access ot the port(s). \"}}, 'public': True, 'created_at': '2018-12-14T09:40:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753800921', 'type': 'WatchEvent', 'actor': {'id': 26370659, 'login': 'shimakaze-git', 'display_login': 'shimakaze-git', 'gravatar_id': '', 'url': 'https://api.github.com/users/shimakaze-git', 'avatar_url': 'https://avatars.githubusercontent.com/u/26370659?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753798202', 'type': 'WatchEvent', 'actor': {'id': 77268, 'login': 'jolestar', 'display_login': 'jolestar', 'gravatar_id': '', 'url': 'https://api.github.com/users/jolestar', 'avatar_url': 'https://avatars.githubusercontent.com/u/77268?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753785836', 'type': 'IssueCommentEvent', 'actor': {'id': 22738317, 'login': 'mratsim', 'display_login': 'mratsim', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'avatar_url': 'https://avatars.githubusercontent.com/u/22738317?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-14T09:36:43Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447269514', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447269514', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447269514, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2OTUxNA==', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:36:43Z', 'updated_at': '2018-12-14T09:36:43Z', 'author_association': 'CONTRIBUTOR', 'body': '`uint384` or `hash48` would be better'}}, 'public': True, 'created_at': '2018-12-14T09:36:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753771491', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991', 'pull_request_review_id': 185027974, 'id': 241691991, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5MTk5MQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">A lot of my reasoning is centered around how the Config classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nAh, I missed that goal to spread out the `args` into individual parameters for better testing. That sounds reasonable.\\r\\n\\r\\nI would however, still favor to at least provide an `__init__(trinity_config: TrinityConfig)__` and have child classes overwrite and extend that. Not having the `trinity_config` access standardized just doesn't sit so well with me. \", 'created_at': '2018-12-14T09:34:04Z', 'updated_at': '2018-12-14T09:34:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:34:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9b90b009eb4cef849811f2a599c69cecf6d09885', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:34:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753766430', 'type': 'WatchEvent', 'actor': {'id': 15799431, 'login': 'xiaoch05', 'display_login': 'xiaoch05', 'gravatar_id': '', 'url': 'https://api.github.com/users/xiaoch05', 'avatar_url': 'https://avatars.githubusercontent.com/u/15799431?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:33:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753763965', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/146', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/146/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/146/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/146/events', 'html_url': 'https://github.com/ethereum/hive/issues/146', 'id': 383763681, 'node_id': 'MDU6SXNzdWUzODM3NjM2ODE=', 'number': 146, 'title': 'ethereum/consensus simulator failure', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-11-23T10:05:36Z', 'updated_at': '2018-12-14T09:32:40Z', 'closed_at': '2018-12-14T09:32:40Z', 'author_association': 'COLLABORATOR', 'body': 'These pops up:\\r\\n\\r\\n```\\r\\nINFO[11-23|10:04:13] message from simulator simulator=ethereum/consensus log=\"Failed to kill node Node[75de696d]@172.18.0.10: Traceback (most recent call last):\\\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\\\n self.hive.killNode(node)\\\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\\\n\"\\r\\n```\\r\\n\\r\\n```\\r\\nFailed to kill node Node[75de696d]@172.18.0.10: \\r\\nTraceback (most recent call last):\\r\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\r\\n self.hive.killNode(node)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\r\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\r\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\r\\n```\\r\\nSo the framework is giving us a `404` on deletion'}}, 'public': True, 'created_at': '2018-12-14T09:32:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753760058', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 93610217, 'name': 'ethereum/evmlab', 'url': 'https://api.github.com/repos/ethereum/evmlab'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/evmlab/issues/102', 'repository_url': 'https://api.github.com/repos/ethereum/evmlab', 'labels_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/comments', 'events_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/events', 'html_url': 'https://github.com/ethereum/evmlab/issues/102', 'id': 371486037, 'node_id': 'MDU6SXNzdWUzNzE0ODYwMzc=', 'number': 102, 'title': 'Fuzzer engine, spurious failures', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-10-18T11:32:29Z', 'updated_at': '2018-12-14T09:31:54Z', 'closed_at': '2018-12-14T09:31:54Z', 'author_association': 'COLLABORATOR', 'body': 'Sometimes, this happens:\\r\\n```\\r\\n2018-10-18 09:33:58,001 - INFO - Starting processes for [\\'geth\\', \\'parity\\'] on test DEFAULT-Wed_09_22_38-11214-573185\\r\\n2018-10-18 09:33:58,179 - INFO - All procs finished for test DEFAULT-Wed_09_22_38-11214-573183\\r\\n2018-10-18 09:33:58,232 - INFO - Processed 3228 steps for geth on test DEFAULT-Wed_09_22_38-11214-573183, pTime:53.07 ms\\r\\nTraceback (most recent call last):\\r\\n File \"utilities/fuzzerweb.py\", line 59, in \\r\\n main()\\r\\n File \"utilities/fuzzerweb.py\", line 55, in main\\r\\n f.startFuzzing()\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 593, in startFuzzing\\r\\n self.postprocess_test(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 524, in postprocess_test\\r\\n data = end_processes(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 424, in end_processes\\r\\n with open(test.tempTraceLocation(client_name)) as output:\\r\\nFileNotFoundError: [Errno 2] No such file or directory: \\'/datadrive/evmlabtemp/logs/DEFAULT-Wed_09_22_38-11214-573183-parity.trace.log\\'\\r\\n```\\r\\nI ran the testcase in question manually inside the parity docker image, and it worked fine. But for some reason, the file didn\\'t exist. Disk was not full. It happened after `573182` testcases, so it doesn\\'t happen often. '}}, 'public': True, 'created_at': '2018-12-14T09:31:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753759531', 'type': 'IssuesEvent', 'actor': {'id': 5955411, 'login': 'cheatfate', 'display_login': 'cheatfate', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'avatar_url': 'https://avatars.githubusercontent.com/u/5955411?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/320', 'id': 391032309, 'node_id': 'MDU6SXNzdWUzOTEwMzIzMDk=', 'number': 320, 'title': 'BLS signature verification requires double hashing message.', 'user': {'login': 'cheatfate', 'id': 5955411, 'node_id': 'MDQ6VXNlcjU5NTU0MTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5955411?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'html_url': 'https://github.com/cheatfate', 'followers_url': 'https://api.github.com/users/cheatfate/followers', 'following_url': 'https://api.github.com/users/cheatfate/following{/other_user}', 'gists_url': 'https://api.github.com/users/cheatfate/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cheatfate/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cheatfate/subscriptions', 'organizations_url': 'https://api.github.com/users/cheatfate/orgs', 'repos_url': 'https://api.github.com/users/cheatfate/repos', 'events_url': 'https://api.github.com/users/cheatfate/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cheatfate/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T09:31:47Z', 'updated_at': '2018-12-14T09:31:47Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"BLS signature verification requires double hashing message.\\r\\n\\r\\nIn current version of [BLS signature verification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/bls_verify.md#hash_to_g2) present such lines:\\r\\n\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + message), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + message), 'big')\\r\\n```\\r\\n\\r\\nIn such case `message` hashing performs 2x times, this can be ineffective, because\\r\\nmessage can be big in size or data gathering process for `message` can be cpu intensive task.\\r\\n\\r\\nThis is pseudo-code for current hashing method:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(message)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(message)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see only `domain` field hashing can be cached and optimized, and `hash(message)` must be performed twice for both `xre` and `xi`.\\r\\n\\r\\nIf you change current hashing method to:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x01'), 'big')\\r\\n x_im = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x02'), 'big')\\r\\n```\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see not only `domain` argument cached, but `message` too.\\r\\nSo `hash(message)` operation performed only once.\\r\\n\\r\\nBut if you dont like scheme above, here is one more:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + hash(message)), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + hash(message)), 'big')\\r\\n```\\r\\n\\r\\nIn such way you can perform `hash(message)` only one time too.\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nvar msgdigest = ctx1.finish()\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(msgdigest)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(msgdigest)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753758636', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/129', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/129/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/129/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/129/events', 'html_url': 'https://github.com/ethereum/hive/issues/129', 'id': 367139971, 'node_id': 'MDU6SXNzdWUzNjcxMzk5NzE=', 'number': 129, 'title': 'Multistage docker build does not reload base image', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-10-05T09:55:13Z', 'updated_at': '2018-12-14T09:31:38Z', 'closed_at': '2018-12-14T09:31:38Z', 'author_association': 'COLLABORATOR', 'body': \"aleth seems to only ever run on `40566e5` : http://hivetests.ethstats.net/. Seems there's some problem with caching in hive, where it doesn't refetch the base image when building\\r\\n\\r\\nhttps://github.com/karalabe/hive/blob/master/clients/aleth:nightly/Dockerfile#L10\\r\\n\\r\\ncc @chfast \"}}, 'public': True, 'created_at': '2018-12-14T09:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753757292', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18181', 'id': 384269858, 'node_id': 'MDU6SXNzdWUzODQyNjk4NTg=', 'number': 18181, 'title': 'Performance: disable EvictNS', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 72233652, 'node_id': 'MDU6TGFiZWw3MjIzMzY1Mg==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-11-26T10:39:56Z', 'updated_at': '2018-12-14T09:31:22Z', 'closed_at': '2018-12-14T09:31:22Z', 'author_association': 'CONTRIBUTOR', 'body': 'See https://github.com/syndtr/goleveldb/issues/245 \\r\\n\\r\\nProfiling done while importing blocks during a full sync, somewhere around the 4M -range. \\r\\n![profile002](https://user-images.githubusercontent.com/142290/49008933-6d2b0580-f16f-11e8-8869-a15f6c1788c2.gif)\\r\\n\\r\\nEvictNS responsible for `10.28s` , which is more than double the time spent on `keccakF1600`'}}, 'public': True, 'created_at': '2018-12-14T09:31:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753557', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753536', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447267963', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583#issuecomment-447267963', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'id': 447267963, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Nzk2Mw==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:30:39Z', 'updated_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues. My best bet right now is that there may be something in our `networking` process that can lead to a stalled event loop in general (which could explain the described symptoms) but there's no strong evidence that this would be caused by the `EventBus`. That doesn't mean it isn't, just that I couldn't find strong evidence for it.\\r\\n\\r\\nI will close this for now.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753739327', 'type': 'WatchEvent', 'actor': {'id': 45157707, 'login': 'Dreampursers', 'display_login': 'Dreampursers', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dreampursers', 'avatar_url': 'https://avatars.githubusercontent.com/u/45157707?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:28:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734627', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1584, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'id': 238000103, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'number': 1584, 'state': 'closed', 'locked': False, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 ', 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:18Z', 'closed_at': '2018-12-14T09:27:17Z', 'merged_at': None, 'merge_commit_sha': '9c9a46da881c6c3ae87017dd59eb90b33736c1ba', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'head': {'label': 'cburgdorf:christoph/debug/debug-lahja-stability', 'ref': 'christoph/debug/debug-lahja-stability', 'sha': 'c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '5055f5be75c0a784158df4f35bd2990afddb49c9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1584'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 142, 'deletions': 0, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734593', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'id': 390179066, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'number': 1584, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:17Z', 'closed_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch'}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447266996', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584#issuecomment-447266996', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'id': 447266996, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Njk5Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:27:17Z', 'updated_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues stated in #1583. \"}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753689564', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240', 'pull_request_review_id': 185021965, 'id': 241687240, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY4NzI0MA==', 'diff_hunk': '@@ -36,11 +36,14 @@ import (\\n )\\n \\n const (\\n-\\tcontentType = \"application/json\"\\n \\tmaxRequestContentLength = 1024 * 512\\n )\\n \\n-var nullAddr, _ = net.ResolveTCPAddr(\"tcp\", \"127.0.0.1:0\")\\n+var (\\n+\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\"}', 'path': 'rpc/http.go', 'position': 10, 'original_position': 10, 'commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'original_commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\", \"application/jsonrequest\"}\\r\\n```\\r\\n\\r\\nlet\\'s directly add application/jsonrequest so we cover the full set given here: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header', 'created_at': '2018-12-14T09:18:48Z', 'updated_at': '2018-12-14T09:18:48Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:18:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e33ed2b0216ada4345f15254a29395f9ebbed2a6', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:18:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753659310', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137228247, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'before': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'commits': [{'sha': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/08ecb90922c87a21d22aad7396958e718e04d2a9'}]}, 'public': True, 'created_at': '2018-12-14T09:12:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753648846', 'type': 'ForkEvent', 'actor': {'id': 39949991, 'login': 'Drunpi', 'display_login': 'Drunpi', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'avatar_url': 'https://avatars.githubusercontent.com/u/39949991?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161759923, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTk5MjM=', 'name': 'go-ethereum', 'full_name': 'Drunpi/go-ethereum', 'private': False, 'owner': {'login': 'Drunpi', 'id': 39949991, 'node_id': 'MDQ6VXNlcjM5OTQ5OTkx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/39949991?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'html_url': 'https://github.com/Drunpi', 'followers_url': 'https://api.github.com/users/Drunpi/followers', 'following_url': 'https://api.github.com/users/Drunpi/following{/other_user}', 'gists_url': 'https://api.github.com/users/Drunpi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Drunpi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Drunpi/subscriptions', 'organizations_url': 'https://api.github.com/users/Drunpi/orgs', 'repos_url': 'https://api.github.com/users/Drunpi/repos', 'events_url': 'https://api.github.com/users/Drunpi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Drunpi/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Drunpi/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Drunpi/go-ethereum', 'forks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Drunpi/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Drunpi/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Drunpi/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Drunpi/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Drunpi/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Drunpi/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Drunpi/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Drunpi/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Drunpi/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Drunpi/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Drunpi/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Drunpi/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Drunpi/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Drunpi/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Drunpi/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/deployments', 'created_at': '2018-12-14T09:10:43Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/Drunpi/go-ethereum.git', 'ssh_url': 'git@github.com:Drunpi/go-ethereum.git', 'clone_url': 'https://github.com/Drunpi/go-ethereum.git', 'svn_url': 'https://github.com/Drunpi/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:10:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753632721', 'type': 'WatchEvent', 'actor': {'id': 20773978, 'login': 'jinhokong', 'display_login': 'jinhokong', 'gravatar_id': '', 'url': 'https://api.github.com/users/jinhokong', 'avatar_url': 'https://avatars.githubusercontent.com/u/20773978?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:07:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753621503', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:05:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7711, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7711, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 19, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T09:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753608354', 'type': 'ForkEvent', 'actor': {'id': 9623159, 'login': 'aj07', 'display_login': 'aj07', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'avatar_url': 'https://avatars.githubusercontent.com/u/9623159?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161758859, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTg4NTk=', 'name': 'web3.js', 'full_name': 'aj07/web3.js', 'private': False, 'owner': {'login': 'aj07', 'id': 9623159, 'node_id': 'MDQ6VXNlcjk2MjMxNTk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9623159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'html_url': 'https://github.com/aj07', 'followers_url': 'https://api.github.com/users/aj07/followers', 'following_url': 'https://api.github.com/users/aj07/following{/other_user}', 'gists_url': 'https://api.github.com/users/aj07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/aj07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/aj07/subscriptions', 'organizations_url': 'https://api.github.com/users/aj07/orgs', 'repos_url': 'https://api.github.com/users/aj07/repos', 'events_url': 'https://api.github.com/users/aj07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/aj07/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/aj07/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/aj07/web3.js', 'forks_url': 'https://api.github.com/repos/aj07/web3.js/forks', 'keys_url': 'https://api.github.com/repos/aj07/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/aj07/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/aj07/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/aj07/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/aj07/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/aj07/web3.js/events', 'assignees_url': 'https://api.github.com/repos/aj07/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/aj07/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/aj07/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/aj07/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/aj07/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/aj07/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/aj07/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/aj07/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/aj07/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/aj07/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/aj07/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/aj07/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/aj07/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/aj07/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/aj07/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/aj07/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/aj07/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/aj07/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/aj07/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/aj07/web3.js/merges', 'archive_url': 'https://api.github.com/repos/aj07/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/aj07/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/aj07/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/aj07/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/aj07/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/aj07/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/aj07/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/aj07/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/aj07/web3.js/deployments', 'created_at': '2018-12-14T09:02:35Z', 'updated_at': '2018-12-14T07:49:34Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/aj07/web3.js.git', 'ssh_url': 'git@github.com:aj07/web3.js.git', 'clone_url': 'https://github.com/aj07/web3.js.git', 'svn_url': 'https://github.com/aj07/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:02:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753598685', 'type': 'PullRequestEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1163, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163', 'id': 238651451, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUxNDUx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1163', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1163.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1163.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163', 'number': 1163, 'state': 'open', 'locked': False, 'title': 'WIP Remove 3.5 support and update eth-abiV2', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWIP\\r\\n\\r\\nRelated to Issue #\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->]()\\r\\n', 'created_at': '2018-12-14T09:00:38Z', 'updated_at': '2018-12-14T09:00:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1', 'head': {'label': 'njgheorghita:v5-update', 'ref': 'v5-update', 'sha': '4344c565cee977b0ce61b19195b22adb84da53f1', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 89746051, 'node_id': 'MDEwOlJlcG9zaXRvcnk4OTc0NjA1MQ==', 'name': 'web3.py', 'full_name': 'njgheorghita/web3.py', 'private': False, 'owner': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/njgheorghita/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/njgheorghita/web3.py', 'forks_url': 'https://api.github.com/repos/njgheorghita/web3.py/forks', 'keys_url': 'https://api.github.com/repos/njgheorghita/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/njgheorghita/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/njgheorghita/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/njgheorghita/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/njgheorghita/web3.py/events', 'assignees_url': 'https://api.github.com/repos/njgheorghita/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/njgheorghita/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/njgheorghita/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/njgheorghita/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/njgheorghita/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/njgheorghita/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/njgheorghita/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/njgheorghita/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/njgheorghita/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/njgheorghita/web3.py/merges', 'archive_url': 'https://api.github.com/repos/njgheorghita/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/njgheorghita/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/njgheorghita/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/njgheorghita/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/njgheorghita/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/njgheorghita/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/njgheorghita/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/njgheorghita/web3.py/deployments', 'created_at': '2017-04-28T21:27:28Z', 'updated_at': '2018-12-14T08:50:09Z', 'pushed_at': '2018-12-14T08:59:51Z', 'git_url': 'git://github.com/njgheorghita/web3.py.git', 'ssh_url': 'git@github.com:njgheorghita/web3.py.git', 'clone_url': 'https://github.com/njgheorghita/web3.py.git', 'svn_url': 'https://github.com/njgheorghita/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-14T05:20:57Z', 'pushed_at': '2018-12-14T08:53:26Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3088, 'stargazers_count': 1218, 'watchers_count': 1218, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1218, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1163'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 9, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:00:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578638', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137185723, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'before': '751c856953060d68ae7be2c62306d11935e32345', 'commits': [{'sha': '6fa7b83832c7c40221b756814d372b828cdb96ea', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Add `get_fork_version` and `get_domain`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/6fa7b83832c7c40221b756814d372b828cdb96ea'}, {'sha': 'dfdde18bb7953a787e479a188d429f3a42ae00b6', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Put eth/beacon/enums/ objects in one file', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dfdde18bb7953a787e479a188d429f3a42ae00b6'}, {'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'author': {'email': 'chihchengliang@gmail.com', 'name': 'Chih Cheng Liang'}, 'message': 'Apply suggestions from code review: update enums\\n\\nCo-Authored-By: hwwhww ', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8bfef33798e69f214473c941d1263cb4075ea7a2'}, {'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #1591 from hwwhww/get_fork\\n\\nAdd `get_fork_version` and `get_domain` helpers', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dae7910b84c6c5f3d5ab0594ddb550f92a4fb072'}]}, 'public': True, 'created_at': '2018-12-14T08:56:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578392', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1591, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'closed', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:56:31Z', 'closed_at': '2018-12-14T08:56:31Z', 'merged_at': '2018-12-14T08:56:31Z', 'merge_commit_sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T08:44:44Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T08:56:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 9, 'maintainer_can_modify': False, 'commits': 3, 'additions': 123, 'deletions': 39, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-14T08:56:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753563402', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137177774, 'size': 52, 'distinct_size': 21, 'ref': 'refs/heads/pm-api', 'head': '62aa0131c4506f40795f1e5102bdf405740f1054', 'before': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'commits': [{'sha': 'e013febcef6fd538ed2620646317feea66abb07e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Add default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e013febcef6fd538ed2620646317feea66abb07e'}, {'sha': '4c52f0d592571077ad2573cefe0587a336685d44', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1121 from carver/trinity-auto-ipc\\n\\nAdd default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4c52f0d592571077ad2573cefe0587a336685d44'}, {'sha': '94b8b40d6df51730243a713c14cf174bcb14bb32', 'author': {'email': 'michael.razoumovitch@gmail.com', 'name': 'Michael Razoumovitch'}, 'message': \"removed _function_names and _event_names\\n\\nContractEvents and ContractFunctions have not used lists _event_names / _function_names.\\r\\nEach time a contract is created through the factory method, the _event_names list and the _function_names list are extended.\\r\\nCreating many contract's results in high memory usage.\", 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/94b8b40d6df51730243a713c14cf174bcb14bb32'}, {'sha': 'acfd3d548336d3560d746fbf96156c3fd98d4dda', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Write docs for construct_sign_and_send_raw_middleware', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/acfd3d548336d3560d746fbf96156c3fd98d4dda'}, {'sha': 'feb67fee5e7ed5e8aeaa91118176698bfb479d22', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Merge pull request #1137 from njgheorghita/signing-documentation\\n\\nWrite docs for `construct_sign_and_send_raw_middleware`', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/feb67fee5e7ed5e8aeaa91118176698bfb479d22'}, {'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1135 from MichaelRazum/master\\n\\nremoved _function_names and _event_names', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8'}, {'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': '101b5712fc993ed8104d3510ac731067ceda8c5f', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add a listStorageKeys RPC (parity-specific one)', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/101b5712fc993ed8104d3510ac731067ceda8c5f'}, {'sha': 'ea439e1481322c1014515c6213761d0ac413edad', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add tests for list_storage_keys when --fat-db is off.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ea439e1481322c1014515c6213761d0ac413edad'}, {'sha': 'a362bb8f61af05ea4533f7ea53758b7e6c99df6d', 'author': {'email': 'freeatnet@freeatnet.com', 'name': 'Arseniy Ivanov'}, 'message': 'Bump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/a362bb8f61af05ea4533f7ea53758b7e6c99df6d'}, {'sha': '5f8198cc52ed4b4d980297d61a2d96d4b8d6d816', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Correctly convert the address for the listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/5f8198cc52ed4b4d980297d61a2d96d4b8d6d816'}, {'sha': 'e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1145 from palkeo/master\\n\\nAdd parity-specific listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3'}, {'sha': '1fea824b089ac186824e1c6ded2127e7fa64333f', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1146 from forkdelta/websockets-7.0.0\\n\\nBump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/1fea824b089ac186824e1c6ded2127e7fa64333f'}, {'sha': 'ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix doc typos', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5'}, {'sha': '0eb804188a51415f2b985d31fd2db526da46efd2', 'author': {'email': 'fubuloubu@gmail.com', 'name': 'Bryant Eisenbach'}, 'message': 'Added other network options', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0eb804188a51415f2b985d31fd2db526da46efd2'}, {'sha': '31310f91f284f84ab1f9835c8d7133b16dea04dd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix unicorn contract doctest failure', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/31310f91f284f84ab1f9835c8d7133b16dea04dd'}, {'sha': '3b93236994cd5643b144b77d5b536d3e2e95023d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1150 from fubuloubu/moar-infura\\n\\nMoar infura', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b93236994cd5643b144b77d5b536d3e2e95023d'}]}, 'public': True, 'created_at': '2018-12-14T08:53:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753543621', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137167346, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/pm-api', 'head': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'before': '0491779fe5fb7d9fd98b9c02943794b7acf69b63', 'commits': [{'sha': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Minor adjustments from pr comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20'}]}, 'public': True, 'created_at': '2018-12-14T08:49:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753536725', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137163795, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'before': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'commits': [{'sha': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'fix `exit_validator`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/4b4311fa8dcefb21819517d2449658bc6fbb2323'}]}, 'public': True, 'created_at': '2018-12-14T08:47:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451878', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Introduction', 'title': 'Ethereum Introduction', 'summary': None, 'action': 'edited', 'sha': 'c87be54da0b86e702a0434741fd12c0e13eecd78', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Introduction'}]}, 'public': True, 'created_at': '2018-12-14T08:28:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451198', 'type': 'IssuesEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451187', 'type': 'IssueCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447252468', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447252468', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447252468, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI1MjQ2OA==', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:28:44Z', 'updated_at': '2018-12-14T08:28:44Z', 'author_association': 'MEMBER', 'body': 'Please help to keep this issue-tracker clean and only for real issues with go-ethereum. For questions please go to http://ethereum.stackexchange.com\\r\\n\\r\\nIf the issue-tracker gets littered with questions - it is really hard to keep track of real issues. So I am sorry to close this issue - but feel free to answer here with the link to your question on stackexchange. Thanks!'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753450471', 'type': 'IssuesEvent', 'actor': {'id': 33201827, 'login': 'nisdas', 'display_login': 'nisdas', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'avatar_url': 'https://avatars.githubusercontent.com/u/33201827?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/319', 'id': 391012090, 'node_id': 'MDU6SXNzdWUzOTEwMTIwOTA=', 'number': 319, 'title': 'RandaoLayers Should Not Be Incremented Every Slot', 'user': {'login': 'nisdas', 'id': 33201827, 'node_id': 'MDQ6VXNlcjMzMjAxODI3', 'avatar_url': 'https://avatars2.githubusercontent.com/u/33201827?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'html_url': 'https://github.com/nisdas', 'followers_url': 'https://api.github.com/users/nisdas/followers', 'following_url': 'https://api.github.com/users/nisdas/following{/other_user}', 'gists_url': 'https://api.github.com/users/nisdas/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nisdas/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nisdas/subscriptions', 'organizations_url': 'https://api.github.com/users/nisdas/orgs', 'repos_url': 'https://api.github.com/users/nisdas/repos', 'events_url': 'https://api.github.com/users/nisdas/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nisdas/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T08:28:33Z', 'updated_at': '2018-12-14T08:28:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"In the spec over here: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#misc-counters, \\r\\n\\r\\nThe block proposer has their `randao layers` incremented every slot when they should only have it incremented in the case where the proposer doesn't propose a block in that particular slot instead of every slot. \\r\\n```\\r\\nSet state.validator_registry[get_beacon_proposer_index(state, state.slot)].randao_layers += 1.\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-14T08:28:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431687', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809', 'pull_request_review_id': 185002359, 'id': 241672809, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MjgwOQ==', 'diff_hunk': \"@@ -661,3 +664,68 @@ def test_get_new_validator_registry_delta_chain_tip(index,\\n flag=flag,\\n )\\n assert result == expected\\n+\\n+\\n+@pytest.mark.parametrize(\\n+ (\\n+ 'pre_fork_version,'\\n+ 'post_fork_version,'\\n+ 'fork_slot,'\\n+ 'current_slot,'\\n+ 'expected'\\n+ ),\\n+ [\\n+ (0, 0, 0, 0, 0),\\n+ (0, 0, 0, 1, 0),\\n+ (0, 0, 20, 10, 0),\", 'path': 'tests/beacon/test_helpers.py', 'position': 39, 'original_position': 39, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': 'would it be more meaningful if\\r\\n```suggestion\\r\\n (0, 1, 20, 10, 0),\\r\\n```', 'created_at': '2018-12-14T08:20:17Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:20:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431686', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446', 'pull_request_review_id': 185002359, 'id': 241671446, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTQ0Ng==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2\\n+ EXITED_WITHOUT_PENALTY = 3\\n+ EXITED_WITH_PENALTY = 4\\n+\\n+\\n+class ValidatorRegistryDeltaFlag(IntEnum):\\n+ ACTIVATION = 0\\n+ EXIT = 1\\n+\\n+\\n+class SignatureDomain(IntEnum):\\n+ DOMAIN_DEPOSIT = 0\\n+ DOMAIN_ATTESTATION = 1\\n+ DOMAIN_PROPOSAL = 2\\n+ DOMAIN_LOGOUT = 3', 'path': 'eth/beacon/enums.py', 'position': 21, 'original_position': 21, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n DOMAIN_EXIT = 3\\r\\n```', 'created_at': '2018-12-14T08:14:37Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:14:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753426087', 'type': 'ForkEvent', 'actor': {'id': 508559, 'login': 'cderong', 'display_login': 'cderong', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'avatar_url': 'https://avatars.githubusercontent.com/u/508559?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161754139, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTQxMzk=', 'name': 'go-ethereum', 'full_name': 'cderong/go-ethereum', 'private': False, 'owner': {'login': 'cderong', 'id': 508559, 'node_id': 'MDQ6VXNlcjUwODU1OQ==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/508559?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'html_url': 'https://github.com/cderong', 'followers_url': 'https://api.github.com/users/cderong/followers', 'following_url': 'https://api.github.com/users/cderong/following{/other_user}', 'gists_url': 'https://api.github.com/users/cderong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cderong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cderong/subscriptions', 'organizations_url': 'https://api.github.com/users/cderong/orgs', 'repos_url': 'https://api.github.com/users/cderong/repos', 'events_url': 'https://api.github.com/users/cderong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cderong/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cderong/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/cderong/go-ethereum', 'forks_url': 'https://api.github.com/repos/cderong/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/cderong/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cderong/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cderong/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/cderong/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cderong/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/cderong/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cderong/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cderong/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cderong/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cderong/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cderong/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cderong/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/cderong/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/cderong/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/cderong/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/cderong/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/cderong/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cderong/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cderong/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cderong/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cderong/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cderong/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/cderong/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cderong/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/cderong/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cderong/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cderong/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cderong/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cderong/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/cderong/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cderong/go-ethereum/deployments', 'created_at': '2018-12-14T08:22:56Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/cderong/go-ethereum.git', 'ssh_url': 'git@github.com:cderong/go-ethereum.git', 'clone_url': 'https://github.com/cderong/go-ethereum.git', 'svn_url': 'https://github.com/cderong/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T08:22:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753400068', 'type': 'WatchEvent', 'actor': {'id': 8707532, 'login': 'serical', 'display_login': 'serical', 'gravatar_id': '', 'url': 'https://api.github.com/users/serical', 'avatar_url': 'https://avatars.githubusercontent.com/u/8707532?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:16:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386879', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245', 'pull_request_review_id': 185002110, 'id': 241671245, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTI0NQ==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2', 'path': 'eth/beacon/enums.py', 'position': 7, 'original_position': 7, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n ACTIVE_PENDING_EXIT = 2\\r\\n```', 'created_at': '2018-12-14T08:13:43Z', 'updated_at': '2018-12-14T08:13:44Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:13:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386498', 'type': 'PullRequestEvent', 'actor': {'id': 20079910, 'login': 'yahtoo', 'display_login': 'yahtoo', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'avatar_url': 'https://avatars.githubusercontent.com/u/20079910?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18309, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309', 'id': 238641377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjQxMzc3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18309', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18309.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18309.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309', 'number': 18309, 'state': 'open', 'locked': False, 'title': 'p2p/discv5: Fix target id repeat hash error', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'q.target is the hash that needs to be found, no need to hash again.', 'created_at': '2018-12-14T08:13:39Z', 'updated_at': '2018-12-14T08:13:39Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'head': {'label': 'yahtoo:discv5', 'ref': 'discv5', 'sha': 'b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 113520981, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTM1MjA5ODE=', 'name': 'go-ethereum', 'full_name': 'yahtoo/go-ethereum', 'private': False, 'owner': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/yahtoo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/yahtoo/go-ethereum', 'forks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/yahtoo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/yahtoo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/yahtoo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/yahtoo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/yahtoo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/yahtoo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/yahtoo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/yahtoo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/yahtoo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/yahtoo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/yahtoo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/yahtoo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/yahtoo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/yahtoo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/yahtoo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/deployments', 'created_at': '2017-12-08T02:20:59Z', 'updated_at': '2018-12-14T07:55:57Z', 'pushed_at': '2018-12-14T08:10:12Z', 'git_url': 'git://github.com/yahtoo/go-ethereum.git', 'ssh_url': 'git@github.com:yahtoo/go-ethereum.git', 'clone_url': 'https://github.com/yahtoo/go-ethereum.git', 'svn_url': 'https://github.com/yahtoo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 90889, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22058, 'watchers_count': 22058, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22058, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18309'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T08:13:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753378866', 'type': 'WatchEvent', 'actor': {'id': 25615578, 'login': 'ByLuxury', 'display_login': 'ByLuxury', 'gravatar_id': '', 'url': 'https://api.github.com/users/ByLuxury', 'avatar_url': 'https://avatars.githubusercontent.com/u/25615578?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:11:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753352327', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T08:05:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447247081', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447247081', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447247081, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NzA4MQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:05:16Z', 'updated_at': '2018-12-14T08:05:16Z', 'author_association': 'CONTRIBUTOR', 'body': '`Type Hinting` is done now.'}}, 'public': True, 'created_at': '2018-12-14T08:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753322823', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-14T07:57:53Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447245506', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447245506', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447245506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NTUwNg==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T07:57:53Z', 'updated_at': '2018-12-14T07:57:53Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah the reframing is very helpful, thank you 😊I think we were talking past each other a bit but I'm on the same page now 😅\\r\\n\\r\\nGoing off your suggestion above, what're your thoughts on something like this:\\r\\n\\r\\n```python\\r\\ndef foo(a: uint256[2...4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n\\r\\n# Produces ABI type: 'uint256[]', with optionals 'min=2', and 'max=4'\\r\\n```\\r\\n\\r\\nCould pre-parse the `...` to `:` and then it parses fine. Also going about it this way would in-turn remove `...` from Vyper syntax which is probably a reasonable thing to do anyway as it seems better to make people use `pass`, which is much more explicit and readable and `...`.\"}}, 'public': True, 'created_at': '2018-12-14T07:57:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753303900', 'type': 'ForkEvent', 'actor': {'id': 42035461, 'login': 'ParkIan', 'display_login': 'ParkIan', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'avatar_url': 'https://avatars.githubusercontent.com/u/42035461?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161750627, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA2Mjc=', 'name': 'solc-js', 'full_name': 'ParkIan/solc-js', 'private': False, 'owner': {'login': 'ParkIan', 'id': 42035461, 'node_id': 'MDQ6VXNlcjQyMDM1NDYx', 'avatar_url': 'https://avatars1.githubusercontent.com/u/42035461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'html_url': 'https://github.com/ParkIan', 'followers_url': 'https://api.github.com/users/ParkIan/followers', 'following_url': 'https://api.github.com/users/ParkIan/following{/other_user}', 'gists_url': 'https://api.github.com/users/ParkIan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ParkIan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ParkIan/subscriptions', 'organizations_url': 'https://api.github.com/users/ParkIan/orgs', 'repos_url': 'https://api.github.com/users/ParkIan/repos', 'events_url': 'https://api.github.com/users/ParkIan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ParkIan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ParkIan/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ParkIan/solc-js', 'forks_url': 'https://api.github.com/repos/ParkIan/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ParkIan/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ParkIan/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ParkIan/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ParkIan/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ParkIan/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ParkIan/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ParkIan/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ParkIan/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ParkIan/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ParkIan/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ParkIan/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ParkIan/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ParkIan/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ParkIan/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ParkIan/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ParkIan/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ParkIan/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ParkIan/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ParkIan/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ParkIan/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ParkIan/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ParkIan/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ParkIan/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ParkIan/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ParkIan/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ParkIan/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ParkIan/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ParkIan/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ParkIan/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ParkIan/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ParkIan/solc-js/deployments', 'created_at': '2018-12-14T07:53:10Z', 'updated_at': '2018-12-14T07:37:29Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ParkIan/solc-js.git', 'ssh_url': 'git@github.com:ParkIan/solc-js.git', 'clone_url': 'https://github.com/ParkIan/solc-js.git', 'svn_url': 'https://github.com/ParkIan/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:53:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753297612', 'type': 'ForkEvent', 'actor': {'id': 28505705, 'login': 'Bytom', 'display_login': 'Bytom', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'avatar_url': 'https://avatars.githubusercontent.com/u/28505705?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161750468, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA0Njg=', 'name': 'go-ethereum', 'full_name': 'Bytom/go-ethereum', 'private': False, 'owner': {'login': 'Bytom', 'id': 28505705, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjI4NTA1NzA1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/28505705?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'html_url': 'https://github.com/Bytom', 'followers_url': 'https://api.github.com/users/Bytom/followers', 'following_url': 'https://api.github.com/users/Bytom/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bytom/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bytom/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bytom/subscriptions', 'organizations_url': 'https://api.github.com/users/Bytom/orgs', 'repos_url': 'https://api.github.com/users/Bytom/repos', 'events_url': 'https://api.github.com/users/Bytom/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bytom/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/Bytom/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Bytom/go-ethereum', 'forks_url': 'https://api.github.com/repos/Bytom/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Bytom/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bytom/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bytom/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Bytom/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bytom/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Bytom/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bytom/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bytom/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bytom/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Bytom/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Bytom/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bytom/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bytom/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bytom/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bytom/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Bytom/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bytom/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bytom/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bytom/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bytom/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bytom/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bytom/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bytom/go-ethereum/deployments', 'created_at': '2018-12-14T07:51:34Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/Bytom/go-ethereum.git', 'ssh_url': 'git@github.com:Bytom/go-ethereum.git', 'clone_url': 'https://github.com/Bytom/go-ethereum.git', 'svn_url': 'https://github.com/Bytom/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753289770', 'type': 'WatchEvent', 'actor': {'id': 15043067, 'login': 'RichardLai88', 'display_login': 'RichardLai88', 'gravatar_id': '', 'url': 'https://api.github.com/users/RichardLai88', 'avatar_url': 'https://avatars.githubusercontent.com/u/15043067?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:49:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753270322', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'f364c47d08af2766507c808327e2c9266ef44501', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753261377', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd2c96d0fb6736540b5d6545b6ed9a005d9ccf2ec', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:42:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753257146', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd15a828414b6f1820d4820ae9cf3789a70f5a961', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:41:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753252577', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137015669, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'before': '0e669e2319a8baba5bac14d5ef8de402874641fe', 'commits': [{'sha': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Fix genesis block', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9b25615691299e1050d83a2453eeba3cdb11e78e'}]}, 'public': True, 'created_at': '2018-12-14T07:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242976', 'type': 'WatchEvent', 'actor': {'id': 15884902, 'login': 'chrislo2004', 'display_login': 'chrislo2004', 'gravatar_id': '', 'url': 'https://api.github.com/users/chrislo2004', 'avatar_url': 'https://avatars.githubusercontent.com/u/15884902?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242885', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '782fb523d673ccbcb024a80f80e1d6a51334d0d6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:37:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753240565', 'type': 'WatchEvent', 'actor': {'id': 36795293, 'login': 'jeikhan', 'display_login': 'jeikhan', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeikhan', 'avatar_url': 'https://avatars.githubusercontent.com/u/36795293?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:36:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753237508', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137007689, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'before': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'commits': [{'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'author': {'email': 'Frank@franks.technology', 'name': 'Frank Szendzielarz'}, 'message': 'Include devp2p fix to compensate for modified API', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/b8ce9f2d228d4e3b262eae17493dde5626b41647'}]}, 'public': True, 'created_at': '2018-12-14T07:35:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753215672', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390', 'pull_request_review_id': 184992539, 'id': 241663390, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY2MzM5MA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': None, 'original_position': 5, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '@cburgdorf I put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py` now. (using plural for being aligned with `constants.py`)\\r\\nI hope that we will use SSZ before the stable beacon chain release. 😊\\r\\n', 'created_at': '2018-12-14T07:30:08Z', 'updated_at': '2018-12-14T07:30:08Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T07:30:08Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T07:30:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753205354', 'type': 'WatchEvent', 'actor': {'id': 17264431, 'login': 'IExpo', 'display_login': 'IExpo', 'gravatar_id': '', 'url': 'https://api.github.com/users/IExpo', 'avatar_url': 'https://avatars.githubusercontent.com/u/17264431?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:27:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753201242', 'type': 'WatchEvent', 'actor': {'id': 2927849, 'login': 'zhiyul', 'display_login': 'zhiyul', 'gravatar_id': '', 'url': 'https://api.github.com/users/zhiyul', 'avatar_url': 'https://avatars.githubusercontent.com/u/2927849?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:26:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753199403', 'type': 'WatchEvent', 'actor': {'id': 18085237, 'login': 'novemberde', 'display_login': 'novemberde', 'gravatar_id': '', 'url': 'https://api.github.com/users/novemberde', 'avatar_url': 'https://avatars.githubusercontent.com/u/18085237?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:25:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753193646', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'ebbf6ab750c3f8c957fe773084d913f5f910c964', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:24:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753184451', 'type': 'WatchEvent', 'actor': {'id': 9201851, 'login': 'naveen7252', 'display_login': 'naveen7252', 'gravatar_id': '', 'url': 'https://api.github.com/users/naveen7252', 'avatar_url': 'https://avatars.githubusercontent.com/u/9201851?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:21:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753168859', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '9c075526b1f08aec2d3f66840f4faf5f58c44326', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:17:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753166735', 'type': 'ForkEvent', 'actor': {'id': 43934934, 'login': 'quangdo3112', 'display_login': 'quangdo3112', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'avatar_url': 'https://avatars.githubusercontent.com/u/43934934?'}, 'repo': {'id': 30197536, 'name': 'ethereum/meteor-dapp-wallet', 'url': 'https://api.github.com/repos/ethereum/meteor-dapp-wallet'}, 'payload': {'forkee': {'id': 161746724, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDY3MjQ=', 'name': 'meteor-dapp-wallet', 'full_name': 'quangdo3112/meteor-dapp-wallet', 'private': False, 'owner': {'login': 'quangdo3112', 'id': 43934934, 'node_id': 'MDQ6VXNlcjQzOTM0OTM0', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43934934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'html_url': 'https://github.com/quangdo3112', 'followers_url': 'https://api.github.com/users/quangdo3112/followers', 'following_url': 'https://api.github.com/users/quangdo3112/following{/other_user}', 'gists_url': 'https://api.github.com/users/quangdo3112/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/quangdo3112/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/quangdo3112/subscriptions', 'organizations_url': 'https://api.github.com/users/quangdo3112/orgs', 'repos_url': 'https://api.github.com/users/quangdo3112/repos', 'events_url': 'https://api.github.com/users/quangdo3112/events{/privacy}', 'received_events_url': 'https://api.github.com/users/quangdo3112/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet', 'forks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/forks', 'keys_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/teams', 'hooks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/hooks', 'issue_events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/events', 'assignees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/tags', 'blobs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/languages', 'stargazers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/stargazers', 'contributors_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contributors', 'subscribers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscribers', 'subscription_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscription', 'commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/merges', 'archive_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/downloads', 'issues_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/labels{/name}', 'releases_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/deployments', 'created_at': '2018-12-14T07:16:49Z', 'updated_at': '2018-12-08T23:55:17Z', 'pushed_at': '2018-12-02T21:00:45Z', 'git_url': 'git://github.com/quangdo3112/meteor-dapp-wallet.git', 'ssh_url': 'git@github.com:quangdo3112/meteor-dapp-wallet.git', 'clone_url': 'https://github.com/quangdo3112/meteor-dapp-wallet.git', 'svn_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'homepage': 'https://wallet.ethereum.org', 'size': 16875, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:16:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753155933', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'hwwhww-patch-2', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T07:13:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753146586', 'type': 'WatchEvent', 'actor': {'id': 19973971, 'login': 'bhalla98', 'display_login': 'bhalla98', 'gravatar_id': '', 'url': 'https://api.github.com/users/bhalla98', 'avatar_url': 'https://avatars.githubusercontent.com/u/19973971?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:11:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753127401', 'type': 'WatchEvent', 'actor': {'id': 1203972, 'login': 'rexshihaoren', 'display_login': 'rexshihaoren', 'gravatar_id': '', 'url': 'https://api.github.com/users/rexshihaoren', 'avatar_url': 'https://avatars.githubusercontent.com/u/1203972?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:05:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753111443', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Natural-Specification-Format', 'title': 'Ethereum Natural Specification Format', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format'}, {'page_name': 'FAQ', 'title': 'FAQ', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/FAQ'}, {'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}, {'page_name': 'JSON-RPC', 'title': 'JSON RPC', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JSON-RPC'}, {'page_name': 'JavaScript-API', 'title': 'JavaScript API', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JavaScript-API'}, {'page_name': 'Proof-of-Stake-FAQs', 'title': 'Proof of Stake FAQs', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs'}, {'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}, {'page_name': '[Chinese-Simplified]-Ethash-Design-Rationale中文翻译', 'title': '[Chinese Simplified] Ethash Design Rationale中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash-Design-Rationale%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethash中文翻译', 'title': '[Chinese Simplified] Ethash中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethereum-白皮书中文版', 'title': '[Chinese Simplified] Ethereum 白皮书中文版', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethereum-%E7%99%BD%E7%9A%AE%E4%B9%A6%E4%B8%AD%E6%96%87%E7%89%88'}]}, 'public': True, 'created_at': '2018-12-14T07:00:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753099469', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': 'f01b98128a365d01104d342b3a496d4b3bbd9410', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:57:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753066489', 'type': 'WatchEvent', 'actor': {'id': 39462187, 'login': 'lola73', 'display_login': 'lola73', 'gravatar_id': '', 'url': 'https://api.github.com/users/lola73', 'avatar_url': 'https://avatars.githubusercontent.com/u/39462187?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:47:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753056941', 'type': 'WatchEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753020567', 'type': 'PullRequestEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1602, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602', 'id': 238623634, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjIzNjM0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1602', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1602.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1602.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602', 'number': 1602, 'state': 'open', 'locked': False, 'title': 'Replaces set with frozenset', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1601\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nReplaces set with frozenset\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n', 'created_at': '2018-12-14T06:34:19Z', 'updated_at': '2018-12-14T06:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'head': {'label': 'vardan10:vardan/setFix', 'ref': 'vardan/setFix', 'sha': '33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T06:18:38Z', 'pushed_at': '2018-12-14T06:26:02Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1602'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T06:34:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753016058', 'type': 'PullRequestEvent', 'actor': {'id': 8636562, 'login': 'YaoZengzeng', 'display_login': 'YaoZengzeng', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'avatar_url': 'https://avatars.githubusercontent.com/u/8636562?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 17517, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517', 'id': 210947844, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjEwOTQ3ODQ0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/17517', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/17517.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/17517.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517', 'number': 17517, 'state': 'closed', 'locked': False, 'title': 'eth,miner: encapsulate the mining-related options of eth config', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Encapsulate the mining-related options in `eth.Config` to `miner.Config`', 'created_at': '2018-08-26T11:56:23Z', 'updated_at': '2018-12-14T06:32:55Z', 'closed_at': '2018-12-14T06:32:55Z', 'merged_at': None, 'merge_commit_sha': 'c34698f1f91fdb6d7cb8441008729d1722d00577', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}, {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'head': {'label': 'YaoZengzeng:encap-mining', 'ref': 'encap-mining', 'sha': '8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 144448340, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDQ0NDgzNDA=', 'name': 'go-ethereum', 'full_name': 'YaoZengzeng/go-ethereum', 'private': False, 'owner': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/YaoZengzeng/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum', 'forks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/deployments', 'created_at': '2018-08-12T07:54:54Z', 'updated_at': '2018-08-12T07:55:03Z', 'pushed_at': '2018-10-01T13:04:45Z', 'git_url': 'git://github.com/YaoZengzeng/go-ethereum.git', 'ssh_url': 'git@github.com:YaoZengzeng/go-ethereum.git', 'clone_url': 'https://github.com/YaoZengzeng/go-ethereum.git', 'svn_url': 'https://github.com/YaoZengzeng/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106850, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '70398d300d4da97c89f96f5c9629caa327de5c39', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T04:00:25Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22057, 'watchers_count': 22057, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 858, 'watchers': 22057, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/17517'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 135, 'deletions': 84, 'changed_files': 8}}, 'public': True, 'created_at': '2018-12-14T06:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753013016', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '7566458f9aa49c06faa8d2804536c1464b911e00', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:31:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007103', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038', 'pull_request_review_id': 184974719, 'id': 241652038, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MjAzOA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\n+ logs = log_filter.get_new_entries()\\n+ # ChainStart event should not be triggered\\n+ assert len(logs) == 0\\n \\n+ # Make 1 more deposit with value MAX_DEPOSIT to trigger ChainStart event\\n+ deposit_parameters = b\\'\\\\x06\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 126, 'original_position': 126, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:56Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007098', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969', 'pull_request_review_id': 184974719, 'id': 241651969, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTk2OQ==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 118, 'original_position': 118, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:24Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007097', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680', 'pull_request_review_id': 184974719, 'id': 241651680, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTY4MA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9', 'path': 'tests/contracts/test_deposit.py', 'position': 113, 'original_position': 113, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n max_deposit_amount = MAX_DEPOSIT * eth_utils.denoms.gwei # in gwei\\r\\n```', 'created_at': '2018-12-14T06:06:39Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007093', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416', 'pull_request_review_id': 184974719, 'id': 241651416, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTQxNg==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Then this line would be:\\r\\n```suggestion\\r\\n (False, MAX_DEPOSIT + 1)\\r\\n```', 'created_at': '2018-12-14T06:04:17Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:04:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007092', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348', 'pull_request_review_id': 184974719, 'id': 241651348, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTM0OA==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'What do you think about defining the constants in `conftest.py`?\\r\\n```\\r\\nMIN_DEPOSIT: constant(uint256) = 1 # ETH\\r\\nMAX_DEPOSIT: constant(uint256) = 32 # ETH\\r\\nGWEI_PER_ETH: constant(uint256) = 1000000000 # 10**9\\r\\nCHAIN_START_FULL_DEPOSIT_THRESHOLD: constant(uint256) = 16384 # 2**14\\r\\nDEPOSIT_CONTRACT_TREE_DEPTH: constant(uint256) = 32\\r\\n```\\r\\n\\r\\n', 'created_at': '2018-12-14T06:03:37Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:03:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007088', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423', 'pull_request_review_id': 184974719, 'id': 241649423, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY0OTQyMw==', 'diff_hunk': \"@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock='latest')\", 'path': 'tests/contracts/test_deposit.py', 'position': 49, 'original_position': 49, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': \"nitpick\\r\\n```python\\r\\n log_filter = registration_contract.events.Eth1Deposit.createFilter(\\r\\n fromBlock='latest',\\r\\n )\\r\\n```\", 'created_at': '2018-12-14T05:46:02Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T05:46:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753004100', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': '_Sidebar', 'title': '_Sidebar', 'summary': None, 'action': 'edited', 'sha': 'b6f6576795708794795eda15345e139dd116e9a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/_Sidebar'}]}, 'public': True, 'created_at': '2018-12-14T06:29:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753003206', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '93df733d97f7b773d62b64a6fbac3f2f289bfbe1', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752999575', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '793fc15fe4b50dda8bd0fb6ec000b7d6de9f5a29', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:27:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752975271', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '2073b0d741754ee81fcabd3f18fdf771dc0100d8', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:20:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752970116', 'type': 'ForkEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T06:18:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752969043', 'type': 'IssueCommentEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T06:18:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types in `subscription_msg_types`. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447226645', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601#issuecomment-447226645', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'id': 447226645, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyNjY0NQ==', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T06:18:13Z', 'updated_at': '2018-12-14T06:18:13Z', 'author_association': 'NONE', 'body': \"@carver I only found 2 instances where ```set()``` is used. [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/state.py#L104) and [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/chain.py#L143).\\r\\n\\r\\nPlease let me know if I have missed anything. I'll Raise a PR for this.\"}}, 'public': True, 'created_at': '2018-12-14T06:18:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752963589', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '9948c5bbf5c32169ef05c24c41751eb8956ea4ab', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752957503', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '18e82785b342a4a9be330fadf416ca31b73b98a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:14:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752956003', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '3cf1b1cddb92f9acfa0c681727cf842b78681a4c', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:13:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752900486', 'type': 'IssueCommentEvent', 'actor': {'id': 20085459, 'login': 'amitOodles', 'display_login': 'amitOodles', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'avatar_url': 'https://avatars.githubusercontent.com/u/20085459?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T05:56:27Z', 'closed_at': None, 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447222357', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447222357', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447222357, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyMjM1Nw==', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:56:27Z', 'updated_at': '2018-12-14T05:56:27Z', 'author_association': 'NONE', 'body': 'Ran the geth node with the following version \\r\\n`Geth/v1.8.20-stable-24d727b6/linux-amd64/go1.9.7` and in --nodiscover mode\\r\\n\\r\\nAdded the peers stated in the following gist \\r\\n`https://gist.github.com/rfikki/31393c66b59f906a9a2e5a84215e8b00/5a5a0503f83773e19035577dab0f861ef993e87f`\\r\\n\\r\\nAnd was able to sync completely last night. There is one issue\\r\\n\\r\\n1) I have production nodes running with the previous versions (version - `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7` which are connected to mainnet unlike this node) , will i need to update the version on that node too? What is the issue here ?\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T05:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752897010', 'type': 'ForkEvent', 'actor': {'id': 10784863, 'login': 'nanjia', 'display_login': 'nanjia', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'avatar_url': 'https://avatars.githubusercontent.com/u/10784863?'}, 'repo': {'id': 96542036, 'name': 'ethereum/sharding', 'url': 'https://api.github.com/repos/ethereum/sharding'}, 'payload': {'forkee': {'id': 161738241, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzgyNDE=', 'name': 'sharding', 'full_name': 'nanjia/sharding', 'private': False, 'owner': {'login': 'nanjia', 'id': 10784863, 'node_id': 'MDQ6VXNlcjEwNzg0ODYz', 'avatar_url': 'https://avatars2.githubusercontent.com/u/10784863?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'html_url': 'https://github.com/nanjia', 'followers_url': 'https://api.github.com/users/nanjia/followers', 'following_url': 'https://api.github.com/users/nanjia/following{/other_user}', 'gists_url': 'https://api.github.com/users/nanjia/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nanjia/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nanjia/subscriptions', 'organizations_url': 'https://api.github.com/users/nanjia/orgs', 'repos_url': 'https://api.github.com/users/nanjia/repos', 'events_url': 'https://api.github.com/users/nanjia/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nanjia/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/nanjia/sharding', 'description': 'Sharding manager contract, and related software and tests', 'fork': True, 'url': 'https://api.github.com/repos/nanjia/sharding', 'forks_url': 'https://api.github.com/repos/nanjia/sharding/forks', 'keys_url': 'https://api.github.com/repos/nanjia/sharding/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/nanjia/sharding/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/nanjia/sharding/teams', 'hooks_url': 'https://api.github.com/repos/nanjia/sharding/hooks', 'issue_events_url': 'https://api.github.com/repos/nanjia/sharding/issues/events{/number}', 'events_url': 'https://api.github.com/repos/nanjia/sharding/events', 'assignees_url': 'https://api.github.com/repos/nanjia/sharding/assignees{/user}', 'branches_url': 'https://api.github.com/repos/nanjia/sharding/branches{/branch}', 'tags_url': 'https://api.github.com/repos/nanjia/sharding/tags', 'blobs_url': 'https://api.github.com/repos/nanjia/sharding/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/nanjia/sharding/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/nanjia/sharding/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/nanjia/sharding/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/nanjia/sharding/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/nanjia/sharding/languages', 'stargazers_url': 'https://api.github.com/repos/nanjia/sharding/stargazers', 'contributors_url': 'https://api.github.com/repos/nanjia/sharding/contributors', 'subscribers_url': 'https://api.github.com/repos/nanjia/sharding/subscribers', 'subscription_url': 'https://api.github.com/repos/nanjia/sharding/subscription', 'commits_url': 'https://api.github.com/repos/nanjia/sharding/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/nanjia/sharding/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/nanjia/sharding/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/nanjia/sharding/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/nanjia/sharding/contents/{+path}', 'compare_url': 'https://api.github.com/repos/nanjia/sharding/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/nanjia/sharding/merges', 'archive_url': 'https://api.github.com/repos/nanjia/sharding/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/nanjia/sharding/downloads', 'issues_url': 'https://api.github.com/repos/nanjia/sharding/issues{/number}', 'pulls_url': 'https://api.github.com/repos/nanjia/sharding/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/nanjia/sharding/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/nanjia/sharding/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/nanjia/sharding/labels{/name}', 'releases_url': 'https://api.github.com/repos/nanjia/sharding/releases{/id}', 'deployments_url': 'https://api.github.com/repos/nanjia/sharding/deployments', 'created_at': '2018-12-14T05:55:29Z', 'updated_at': '2018-12-07T04:33:37Z', 'pushed_at': '2018-06-21T15:54:19Z', 'git_url': 'git://github.com/nanjia/sharding.git', 'ssh_url': 'git@github.com:nanjia/sharding.git', 'clone_url': 'https://github.com/nanjia/sharding.git', 'svn_url': 'https://github.com/nanjia/sharding', 'homepage': '', 'size': 624, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752885025', 'type': 'WatchEvent', 'actor': {'id': 10951677, 'login': 'xuefengyuan', 'display_login': 'xuefengyuan', 'gravatar_id': '', 'url': 'https://api.github.com/users/xuefengyuan', 'avatar_url': 'https://avatars.githubusercontent.com/u/10951677?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:51:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865628', 'type': 'ForkEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161737264, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzcyNjQ=', 'name': 'wiki', 'full_name': 'totaking/wiki', 'private': False, 'owner': {'login': 'totaking', 'id': 45840931, 'node_id': 'MDQ6VXNlcjQ1ODQwOTMx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45840931?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'html_url': 'https://github.com/totaking', 'followers_url': 'https://api.github.com/users/totaking/followers', 'following_url': 'https://api.github.com/users/totaking/following{/other_user}', 'gists_url': 'https://api.github.com/users/totaking/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/totaking/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/totaking/subscriptions', 'organizations_url': 'https://api.github.com/users/totaking/orgs', 'repos_url': 'https://api.github.com/users/totaking/repos', 'events_url': 'https://api.github.com/users/totaking/events{/privacy}', 'received_events_url': 'https://api.github.com/users/totaking/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/totaking/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/totaking/wiki', 'forks_url': 'https://api.github.com/repos/totaking/wiki/forks', 'keys_url': 'https://api.github.com/repos/totaking/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/totaking/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/totaking/wiki/teams', 'hooks_url': 'https://api.github.com/repos/totaking/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/totaking/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/totaking/wiki/events', 'assignees_url': 'https://api.github.com/repos/totaking/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/totaking/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/totaking/wiki/tags', 'blobs_url': 'https://api.github.com/repos/totaking/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/totaking/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/totaking/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/totaking/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/totaking/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/totaking/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/totaking/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/totaking/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/totaking/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/totaking/wiki/subscription', 'commits_url': 'https://api.github.com/repos/totaking/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/totaking/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/totaking/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/totaking/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/totaking/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/totaking/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/totaking/wiki/merges', 'archive_url': 'https://api.github.com/repos/totaking/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/totaking/wiki/downloads', 'issues_url': 'https://api.github.com/repos/totaking/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/totaking/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/totaking/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/totaking/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/totaking/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/totaking/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/totaking/wiki/deployments', 'created_at': '2018-12-14T05:44:41Z', 'updated_at': '2018-12-14T02:12:18Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/totaking/wiki.git', 'ssh_url': 'git@github.com:totaking/wiki.git', 'clone_url': 'https://github.com/totaking/wiki.git', 'svn_url': 'https://github.com/totaking/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:44:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865281', 'type': 'DeleteEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T05:44:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865194', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136815396, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'before': '9e74043a1737b1a792e259ef93c995e0634df086', 'commits': [{'sha': 'c43724132b06086ae51a11001794dce802c74644', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Clarify block hash -> block root', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/c43724132b06086ae51a11001794dce802c74644'}, {'sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #318 from ethereum/vbuterin-patch-16\\n\\nClarify block hash -> block root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/357167d8c201b0106a50e6cd62b81fc795eaa0f1'}]}, 'public': True, 'created_at': '2018-12-14T05:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865139', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'closed', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T05:44:32Z', 'closed_at': '2018-12-14T05:44:32Z', 'merged_at': '2018-12-14T05:44:32Z', 'merge_commit_sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T05:44:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752854205', 'type': 'WatchEvent', 'actor': {'id': 17971842, 'login': 'Tinycl', 'display_login': 'Tinycl', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tinycl', 'avatar_url': 'https://avatars.githubusercontent.com/u/17971842?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:40:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802462', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802390', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752770962', 'type': 'ForkEvent', 'actor': {'id': 19933442, 'login': 'ArnauSantamaria', 'display_login': 'ArnauSantamaria', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'avatar_url': 'https://avatars.githubusercontent.com/u/19933442?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161734300, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzQzMDA=', 'name': 'solc-js', 'full_name': 'ArnauSantamaria/solc-js', 'private': False, 'owner': {'login': 'ArnauSantamaria', 'id': 19933442, 'node_id': 'MDQ6VXNlcjE5OTMzNDQy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/19933442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'html_url': 'https://github.com/ArnauSantamaria', 'followers_url': 'https://api.github.com/users/ArnauSantamaria/followers', 'following_url': 'https://api.github.com/users/ArnauSantamaria/following{/other_user}', 'gists_url': 'https://api.github.com/users/ArnauSantamaria/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ArnauSantamaria/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ArnauSantamaria/subscriptions', 'organizations_url': 'https://api.github.com/users/ArnauSantamaria/orgs', 'repos_url': 'https://api.github.com/users/ArnauSantamaria/repos', 'events_url': 'https://api.github.com/users/ArnauSantamaria/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ArnauSantamaria/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ArnauSantamaria/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ArnauSantamaria/solc-js', 'forks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/deployments', 'created_at': '2018-12-14T05:08:09Z', 'updated_at': '2018-12-13T11:30:06Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ArnauSantamaria/solc-js.git', 'ssh_url': 'git@github.com:ArnauSantamaria/solc-js.git', 'clone_url': 'https://github.com/ArnauSantamaria/solc-js.git', 'svn_url': 'https://github.com/ArnauSantamaria/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752769047', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T05:07:22Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447214936', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447214936', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447214936, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxNDkzNg==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:07:22Z', 'updated_at': '2018-12-14T05:07:22Z', 'author_association': 'CONTRIBUTOR', 'body': \"@pipermerriam the following issues still have not been addressed till this point and I have some questions.\\r\\n* Instead of using `classmethod` or `staticmethod` decorators, I was thinking that maybe we could instantiate an object in `_init__.py` like `bn128 = BN128_Curve()`, and the users could use this object itself directly. Need your suggestion on this.\\r\\n* I still haven't received a response to the comments raised by me [here](https://github.com/ethereum/py_ecc/issues/24#issuecomment-446088199), and hence I am reverting back to the old phase itself (where instead of `division` we would be doing `multiplication`). I will open an issue for this bug and leave the code and tests unchanged in this issue.\\r\\n* I still haven't done the type hinting completely and hence didn't include it in `tox`.\\r\\n* Still have to replace `asserts` with `Exceptions`.\\r\\n* `circleci` was annoying with the installation of `mypy-extensions`, and hence I have flooded `tox.ini` with the installation of `mypy-extensions`. It's working for now, but might not be suboptimal.\\r\\n* Last but not least, we need a mechanism to validate the `constants` of the curves. For example, we need to be sure that the `field_modulus` is a prime number. I feel that these shouldn't be part of the `tests` and maybe we have to test the `validity` of these constants everytime we import the whole module or it's submodule. I was thinking maybe we can validate these constants in `__init__.py`. What do you say?\"}}, 'public': True, 'created_at': '2018-12-14T05:07:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752739093', 'type': 'IssueCommentEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/events', 'html_url': 'https://github.com/ethereum/vyper/issues/1140', 'id': 390449234, 'node_id': 'MDU6SXNzdWUzOTA0NDkyMzQ=', 'number': 1140, 'title': 'Monday 17th December 2018', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 962355094, 'node_id': 'MDU6TGFiZWw5NjIzNTUwOTQ=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/meeting', 'name': 'meeting', 'color': '7ff9e3', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T23:12:04Z', 'updated_at': '2018-12-14T04:55:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Start: Monday 17th December 2018, 13:00 UTC (https://time.is/UTC)\\r\\nHangouts: https://meet.google.com/czc-kuep-jda\\r\\n\\r\\nAgenda:\\r\\n- Slithr'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447213087', 'html_url': 'https://github.com/ethereum/vyper/issues/1140#issuecomment-447213087', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'id': 447213087, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxMzA4Nw==', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:55:28Z', 'updated_at': '2018-12-14T04:55:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Another agenda topic I'd like to add - struct calling convention / ABI issues / scope of #1019\"}}, 'public': True, 'created_at': '2018-12-14T04:55:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752730925', 'type': 'WatchEvent', 'actor': {'id': 26325992, 'login': 'hsauers5', 'display_login': 'hsauers5', 'gravatar_id': '', 'url': 'https://api.github.com/users/hsauers5', 'avatar_url': 'https://avatars.githubusercontent.com/u/26325992?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:52:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752690782', 'type': 'WatchEvent', 'actor': {'id': 1610828, 'login': 'vinaymavi', 'display_login': 'vinaymavi', 'gravatar_id': '', 'url': 'https://api.github.com/users/vinaymavi', 'avatar_url': 'https://avatars.githubusercontent.com/u/1610828?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:35:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620924', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620912', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447206906', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305#issuecomment-447206906', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'id': 447206906, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIwNjkwNg==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:07:36Z', 'updated_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'closing in favor of #314'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604667', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'open', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T04:01:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T04:01:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604442', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T04:01:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601400', 'type': 'WatchEvent', 'actor': {'id': 2513446, 'login': 'anirudh-chhangani', 'display_login': 'anirudh-chhangani', 'gravatar_id': '', 'url': 'https://api.github.com/users/anirudh-chhangani', 'avatar_url': 'https://avatars.githubusercontent.com/u/2513446?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601144', 'type': 'WatchEvent', 'actor': {'id': 7011738, 'login': 'hiro8ma', 'display_login': 'hiro8ma', 'gravatar_id': '', 'url': 'https://api.github.com/users/hiro8ma', 'avatar_url': 'https://avatars.githubusercontent.com/u/7011738?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586965', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180', 'pull_request_review_id': 184961540, 'id': 241638180, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzODE4MA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'One of the operations involving aggregate signatures _is_ aggregate signature verification. So I guess this depends what we want the order to be: simple sig verification first, then all aggregate sig stuff, or pubkey and sig aggregation first, then all sig verification?', 'created_at': '2018-12-14T03:55:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}, 'in_reply_to_id': 241634854}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586432', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667', 'pull_request_review_id': 184960929, 'id': 241637667, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNzY2Nw==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,', 'path': 'specs/core/0_beacon-chain.md', 'position': 56, 'original_position': 56, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, need to update the keyword argument where that this function is being called.\\r\\n(in `def activate_validator()` and in `def exit_validator()`)', 'created_at': '2018-12-14T03:50:16Z', 'updated_at': '2018-12-14T03:55:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-14T03:55:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:50:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752567103', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136657017, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '1683c108885da84f8b81b3669b6e40e9111e147b', 'before': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'commits': [{'sha': '1683c108885da84f8b81b3669b6e40e9111e147b', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: package config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/1683c108885da84f8b81b3669b6e40e9111e147b'}]}, 'public': True, 'created_at': '2018-12-14T03:48:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752564560', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136655721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'before': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'commits': [{'sha': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: disabling package cache', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d7dfa4faa2d41ac42b641a6cfe3a13f529eac853'}]}, 'public': True, 'created_at': '2018-12-14T03:47:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752562158', 'type': 'PullRequestEvent', 'actor': {'id': 17670147, 'login': 'NIC619', 'display_login': 'NIC619', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'avatar_url': 'https://avatars.githubusercontent.com/u/17670147?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'opened', 'number': 137, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T03:46:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 78, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-11-23T13:37:58Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 138, 'deletions': 57, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-14T03:46:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752498077', 'type': 'WatchEvent', 'actor': {'id': 7344025, 'login': 'jeojoe', 'display_login': 'jeojoe', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeojoe', 'avatar_url': 'https://avatars.githubusercontent.com/u/7344025?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T03:23:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752497430', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854', 'pull_request_review_id': 184957523, 'id': 241634854, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNDg1NA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Perhaps move \"## Signature verification\" section after \"## Operations involving aggregate signatures\" section.', 'created_at': '2018-12-14T03:22:34Z', 'updated_at': '2018-12-14T03:23:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:23:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:22:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752385152', 'type': 'ForkEvent', 'actor': {'id': 19542680, 'login': 'dctlsk', 'display_login': 'dctlsk', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19542680?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'forkee': {'id': 161722668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MjI2Njg=', 'name': 'eth2.0-specs', 'full_name': 'dctlsk/eth2.0-specs', 'private': False, 'owner': {'login': 'dctlsk', 'id': 19542680, 'node_id': 'MDQ6VXNlcjE5NTQyNjgw', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19542680?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'html_url': 'https://github.com/dctlsk', 'followers_url': 'https://api.github.com/users/dctlsk/followers', 'following_url': 'https://api.github.com/users/dctlsk/following{/other_user}', 'gists_url': 'https://api.github.com/users/dctlsk/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dctlsk/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dctlsk/subscriptions', 'organizations_url': 'https://api.github.com/users/dctlsk/orgs', 'repos_url': 'https://api.github.com/users/dctlsk/repos', 'events_url': 'https://api.github.com/users/dctlsk/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dctlsk/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dctlsk/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/dctlsk/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/deployments', 'created_at': '2018-12-14T02:45:29Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/dctlsk/eth2.0-specs.git', 'ssh_url': 'git@github.com:dctlsk/eth2.0-specs.git', 'clone_url': 'https://github.com/dctlsk/eth2.0-specs.git', 'svn_url': 'https://github.com/dctlsk/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752377568', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'id': 390934833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'number': 5399, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T02:43:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch'}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447194231', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#issuecomment-447194231', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'id': 447194231, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE5NDIzMQ==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T02:43:04Z', 'updated_at': '2018-12-14T02:43:04Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=h1) Report\\n> Merging [#5399](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/aleth/commit/ec3886029393fc9927b130ba8f8671480d810391?src=pr&el=desc) will **decrease** coverage by `0.48%`.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/aleth/pull/5399/graphs/tree.svg?width=650&token=FLNAK13ErJ&height=150&src=pr)](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #5399 +/- ##\\n==========================================\\n- Coverage 61.24% 60.75% -0.49% \\n==========================================\\n Files 344 344 \\n Lines 28178 28184 +6 \\n Branches 3245 3247 +2 \\n==========================================\\n- Hits 17257 17123 -134 \\n- Misses 9792 9925 +133 \\n- Partials 1129 1136 +7\\n```\\n'}}, 'public': True, 'created_at': '2018-12-14T02:43:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752283212', 'type': 'WatchEvent', 'actor': {'id': 38976, 'login': 'yorzi', 'display_login': 'yorzi', 'gravatar_id': '', 'url': 'https://api.github.com/users/yorzi', 'avatar_url': 'https://avatars.githubusercontent.com/u/38976?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:12:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752249772', 'type': 'WatchEvent', 'actor': {'id': 15381920, 'login': 'chiaki-i', 'display_login': 'chiaki-i', 'gravatar_id': '', 'url': 'https://api.github.com/users/chiaki-i', 'avatar_url': 'https://avatars.githubusercontent.com/u/15381920?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:01:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752245403', 'type': 'ForkEvent', 'actor': {'id': 13427145, 'login': 'coolhackboy', 'display_login': 'coolhackboy', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'avatar_url': 'https://avatars.githubusercontent.com/u/13427145?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161718404, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTg0MDQ=', 'name': 'go-ethereum', 'full_name': 'coolhackboy/go-ethereum', 'private': False, 'owner': {'login': 'coolhackboy', 'id': 13427145, 'node_id': 'MDQ6VXNlcjEzNDI3MTQ1', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13427145?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'html_url': 'https://github.com/coolhackboy', 'followers_url': 'https://api.github.com/users/coolhackboy/followers', 'following_url': 'https://api.github.com/users/coolhackboy/following{/other_user}', 'gists_url': 'https://api.github.com/users/coolhackboy/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coolhackboy/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coolhackboy/subscriptions', 'organizations_url': 'https://api.github.com/users/coolhackboy/orgs', 'repos_url': 'https://api.github.com/users/coolhackboy/repos', 'events_url': 'https://api.github.com/users/coolhackboy/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coolhackboy/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/coolhackboy/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/coolhackboy/go-ethereum', 'forks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/deployments', 'created_at': '2018-12-14T02:00:14Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/coolhackboy/go-ethereum.git', 'ssh_url': 'git@github.com:coolhackboy/go-ethereum.git', 'clone_url': 'https://github.com/coolhackboy/go-ethereum.git', 'svn_url': 'https://github.com/coolhackboy/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:00:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752240909', 'type': 'PullRequestEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'opened', 'number': 5399, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local arg to aleth/aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones\\r\\nlocal machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T01:58:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 3, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:58:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752217273', 'type': 'IssueCommentEvent', 'actor': {'id': 1195159, 'login': 'dete', 'display_login': 'dete', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'avatar_url': 'https://avatars.githubusercontent.com/u/1195159?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654', 'id': 390492191, 'node_id': 'MDU6SXNzdWUzOTA0OTIxOTE=', 'number': 1654, 'title': 'ERC-1654 Dapp-wallet authentication process with contract wallets support', 'user': {'login': 'pazams', 'id': 9962080, 'node_id': 'MDQ6VXNlcjk5NjIwODA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9962080?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pazams', 'html_url': 'https://github.com/pazams', 'followers_url': 'https://api.github.com/users/pazams/followers', 'following_url': 'https://api.github.com/users/pazams/following{/other_user}', 'gists_url': 'https://api.github.com/users/pazams/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pazams/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pazams/subscriptions', 'organizations_url': 'https://api.github.com/users/pazams/orgs', 'repos_url': 'https://api.github.com/users/pazams/repos', 'events_url': 'https://api.github.com/users/pazams/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pazams/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T02:31:17Z', 'updated_at': '2018-12-14T01:51:34Z', 'closed_at': None, 'author_association': 'NONE', 'body': '---\\r\\neip: \\r\\ntitle: Dapp-wallet authentication process with contract wallets support\\r\\nauthor: Maor Zamski (@pazams)\\r\\ndiscussions-to: \\r\\nstatus: Draft\\r\\ntype: Meta\\r\\ncreated: 2018-12-12\\r\\n---\\r\\n\\r\\n\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nAn off-chain process for dapps to prove actionable control (informally, \"ownership\") over a public Ethereum address using `eth_sign`. Supports both external wallets and contract wallets.\\r\\n\\r\\n## Definitions\\r\\n- `contract wallet` A contract [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts) deployed with the intent to be used as the ownership address for on-chain assets (including ether, ERC-20 tokens, and ERC-721 NFTs). It has the ability to transfer ether or dynamically execute actions on other contracts (acting as the owner of assets controlled by those contracts). Common examples of contract wallets are `multisig wallets` (such as the ones provided by [Gnosis](https://github.com/Gnosis/MultiSigWallet) and [Parity](https://github.com/ConsenSys/MultiSigWallet)) and `identity contracts`, as defined in [ERC-725](https://github.com/ethereum/EIPs/issues/725).\\r\\n- `external wallet` An externally owned [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts), controlled by a private key. Currently, most on-chain assets are owned by such accounts. A common example for an external wallet are the wallets generated by MetaMask.\\r\\n- `actionable control` A public key is defined to have actionable control over an address if either:\\r\\n - It is an external wallet AND the key is determined to correspond to the address.\\r\\n - It is a contract wallet AND the key exists in the contract account state and has a purpose of `ACTION` as defined in EIP-725.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe authentication process starts with the dapp client component requesting a message signature from the wallet.\\r\\nThe client then proceeds to send the result to the dapp backend component along with the requested address to be used for authentication. The dapp backend recovers a public key from the signature, and checks if it has actionable control over the requested address. This check is done under consideration that the address may represent either an external wallet or a contract wallet. This process works with external wallets and EIP-725 contract wallets. For this process to be compatible with any other contract wallet, it requires the wallet to implement a small subset of EIP-725.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nDapps frequently offer a customised off-chain user experience in addition to their smart-contract interface. For example, a dapp may provide a push notification feature to their users, allowing them to stay notified about successful state changes associated with their public addresses. For these type of features, a dapp needs a way to authenticate that a user has actionable control over the public address associated with their account.\\r\\n\\r\\nA common practice dapps use in an authentication process is to only check if a recovered public key matches the requested authentication address. For contract wallets, this check is broken, as there is no corresponding private key to which to generate a signed message, and hence why some dapps are inaccessible for contract wallet users. It is therefore argued that a more broader approach is needed.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Dapp\\r\\n\\r\\nOn the dapp side, the dapp-wallet authentication process MUST follow these steps:\\r\\n1. Dapp client requests the wallet software to sign a challenge message via [`eth_sign`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign).\\r\\n2. Dapp client sends the signature to the dapp\\'s backend component, along with the wallet address to be authenticated with. The address may be obtained via [`eth_accounts`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts).\\r\\n3. Dapp backend recovers a public key from the signature.\\r\\n4. Dapp backend checks if the recovered key has actionable control over the provided wallet address under the assumption it could represent an external wallet OR a contract wallet. For the case of a contract wallet, it MUST be determined it supports the entirety of the EIP-725 interface via a EIP-165 interfaceID `0xdc3d2a7b` or just the `keyHasPurpose` method as a subset of it using the EIP-165 interfaceID `0xd202158d`.\\r\\n5. The result of the actionable control check is returned as the result of the authentication and the flow is complete.\\r\\n\\r\\nA challenge message SHOULD contain a random component. This will reduce the risk of replay attacks.\\r\\n\\r\\nA challenge message SHOULD be generated by the dapp backend AND not get sent back as input from the dapp client, but be persisted in the backend for at least the entirety of the authentication process. This will remove the risk of accepting forged challenges.\\r\\n\\r\\nThe following algorithm MAY be used by dapp backend when authenticating users with personal signed messages:\\r\\n\\r\\n```\\r\\nFUNCTION isSignerActionableOnAddress(challengeString, signature, walletAddress) RETURNS (successFlag, errorMsg)\\r\\n\\r\\n SET challengeHash to the hash of: challengeString prepended with `\"\\\\x19Ethereum Signed Message:\\\\n\" + len(challengeString)`\\r\\n\\r\\n SET recoveredKey to the public key recovered from signature and challengeHash\\r\\n\\r\\n SET recoveredAddress to the address corresponding with recoveredKey\\r\\n\\r\\n // try external wallet\\r\\n IF walletAddress EQUALS recoveredAddress\\r\\n RETURN true, nil\\r\\n END IF\\r\\n\\r\\n // else try contract wallet\\r\\n SET isSupportedContract to TRUE IF walletAddress is a smart contract AND (has interfaceID 0xd202158d OR has interfaceID 0xdc3d2a7b)\\r\\n\\r\\n IF isSupportedContract resulted in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n IF isSupportedContract equals FALSE\\r\\n RETURN false, nil\\r\\n END IF\\r\\n\\r\\n SET keyHasActionPurpose to the result of calling a contract method keyHasPurpose with recoveredKey and ACTION parameters\\r\\n\\r\\n IF keyHasActionPurpose in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n RETURN keyHasActionPurpose, nil\\r\\n\\r\\nEND FUNCTION\\r\\n```\\r\\n\\r\\n### Wallet\\r\\n\\r\\n#### External wallet\\r\\nAny software agents managing external wallets are not required to make any changes to continue to work with this process.\\r\\n\\r\\n#### Contract wallet\\r\\n\\r\\n1. The contract MUST implement the [keyHasPurpose](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-725.md#keyhaspurpose) method as in EIP-725:\\r\\n\\r\\n ```Solidity\\r\\n function keyHasPurpose(bytes32 _key, uint256 purpose) constant returns(bool exists);\\r\\n ```\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `true` if a key is present AND it can perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `false` if a key is not present OR it cannot perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n2. The contract MUST implement the EIP-165 method:\\r\\n\\r\\n ```Solidity\\r\\n function supportsInterface(bytes4 interfaceID) external view returns (bool);\\r\\n ```\\r\\n\\r\\n It MUST return `true` if passed an `interfaceID` of `0xd202158d` OR `0xdc3d2a7b`. The former value represents a minimal subset of EIP-725 with just the `keyHasPurpose` method, while the later represents the full EIP-725 interface.\\r\\n\\r\\n## Rationale\\r\\n\\r\\nThere has been a great body of work in standardizing contracts wallets, namely https://github.com/ethereum/EIPs/issues/725. However, for the current process of dapp-wallet authentication, interfaces for claims and key management are not required. Instead, a single contract method and a modification for the current process suffices. The small surface area of this proposal should allow it to be easily compatible across different types of contract wallets.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\n- external wallets are backwards compatible with this process.\\r\\n- contract wallets with EIP-725 support, are compatible with this process without modification.\\r\\n- contract wallets without EIP-725 support must implement the proposed subset of EIP-725 to be compatible with this process.\\r\\n\\r\\n## Implementation\\r\\n\\r\\nPackages implementing the purposed algorithm: \\r\\n- Javascript: https://github.com/dapperlabs/dappauth.js\\r\\n- Go: https://github.com/dapperlabs/dappauth\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n\\r\\n---\\r\\nThanks to @dete @Arachnid @chrisaxiom @igorbarbashin @turbolent @jordanschalm @hwrdtm for feedback and suggestions'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447185503', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654#issuecomment-447185503', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'id': 447185503, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE4NTUwMw==', 'user': {'login': 'dete', 'id': 1195159, 'node_id': 'MDQ6VXNlcjExOTUxNTk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1195159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'html_url': 'https://github.com/dete', 'followers_url': 'https://api.github.com/users/dete/followers', 'following_url': 'https://api.github.com/users/dete/following{/other_user}', 'gists_url': 'https://api.github.com/users/dete/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dete/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dete/subscriptions', 'organizations_url': 'https://api.github.com/users/dete/orgs', 'repos_url': 'https://api.github.com/users/dete/repos', 'events_url': 'https://api.github.com/users/dete/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dete/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:51:34Z', 'updated_at': '2018-12-14T01:51:34Z', 'author_association': 'NONE', 'body': 'Thanks to @pazams for writing this up. We think that there are lots of good reasons to use smart contract wallets, even for individual users. Hopefully, lots of Dapps will make this simple change to make that use-case viable (as we will for [CryptoKitties](https://www.cryptokitties.co/)!).'}}, 'public': True, 'created_at': '2018-12-14T01:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752196298', 'type': 'WatchEvent', 'actor': {'id': 863281, 'login': 'zouguangxian', 'display_login': 'zouguangxian', 'gravatar_id': '', 'url': 'https://api.github.com/users/zouguangxian', 'avatar_url': 'https://avatars.githubusercontent.com/u/863281?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T01:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752181948', 'type': 'IssuesEvent', 'actor': {'id': 32337870, 'login': 'landedexperts', 'display_login': 'landedexperts', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'avatar_url': 'https://avatars.githubusercontent.com/u/32337870?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/322', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/322', 'id': 390931434, 'node_id': 'MDU6SXNzdWUzOTA5MzE0MzQ=', 'number': 322, 'title': 'Which pragma version for compiler 0.5.1+commit.c8a2cb62.Emscripten.clang', 'user': {'login': 'landedexperts', 'id': 32337870, 'node_id': 'MDQ6VXNlcjMyMzM3ODcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/32337870?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'html_url': 'https://github.com/landedexperts', 'followers_url': 'https://api.github.com/users/landedexperts/followers', 'following_url': 'https://api.github.com/users/landedexperts/following{/other_user}', 'gists_url': 'https://api.github.com/users/landedexperts/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/landedexperts/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/landedexperts/subscriptions', 'organizations_url': 'https://api.github.com/users/landedexperts/orgs', 'repos_url': 'https://api.github.com/users/landedexperts/repos', 'events_url': 'https://api.github.com/users/landedexperts/events{/privacy}', 'received_events_url': 'https://api.github.com/users/landedexperts/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:40:20Z', 'updated_at': '2018-12-14T01:40:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi,\\r\\n\\r\\nI am trying to compile the following SC:\\r\\n`pragma solidity ^0.5.1\\r\\n\\r\\ncontract x {\\r\\n\\tfunction f() {}\\r\\n};\\r\\n`\\r\\nin JavaScript using the following code:\\r\\n`const fs = require(\"fs\")\\r\\nconst solc = require(\"solc\")\\r\\n\\r\\nconst source = fs.readFileSync(\\'contract.sol\\', \"utf8\")\\r\\n\\r\\nconsole.log(source)\\r\\n\\r\\nconst compiled = solc.compile(JSON.stringify({\\r\\n\\tlanguage: \"Solidity\",\\r\\n\\tsources: {\\r\\n\\t\\t\"contract.sol\": {\\r\\n\\t\\t\\t\"content\": source\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\tsettings: {\\r\\n\\t\\toutputSelection: {\\r\\n\\t\\t\\t\"*\": {\\r\\n\\t\\t\\t\\t\"*\": [\"*\"]\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}))\\r\\n\\r\\nconsole.log(JSON.stringify(compiled))`\\r\\nin `package.json`, the versioning is `\"solc\": \"^0.5.0\"`, but I get the following error:\\r\\n`\"{\\\\\"contracts\\\\\":{},\\\\\"errors\\\\\":[{\\\\\"component\\\\\":\\\\\"general\\\\\",\\\\\"formattedMessage\\\\\":\\\\\"contract.sol:1:1: SyntaxError: Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\\\\npragma solidity ^0.5.1\\\\\\\\r\\\\\\\\n^ (Relevant source part starts here and spans across multiple\\r\\nlines).\\\\\\\\n\\\\\",\\\\\"message\\\\\":\\\\\"Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\",\\\\\"severity\\\\\":\\\\\"error\\\\\",\\\\\"sourceLocation\\\\\":{\\\\\"end\\\\\":60,\\\\\"file\\\\\":\\\\\"contract.sol\\\\\",\\\\\"start\\\\\":0},\\\\\"type\\\\\":\\\\\"SyntaxError\\\\\"}],\\\\\"sources\\\\\":{}}\"`\\r\\n\\r\\nSo I tried each `<=`, `<`, `>`, `>=` combined with each `0.5.1` and `0.5.0` but the same error shows up.\\r\\n\\r\\nSo which pragma version to use?\\r\\nMy guess is that the error comes from somewhere else, but I have no clue where.\\r\\nCan you help?\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T01:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752164638', 'type': 'PullRequestEvent', 'actor': {'id': 807580, 'login': 'SamuelMarks', 'display_login': 'SamuelMarks', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'avatar_url': 'https://avatars.githubusercontent.com/u/807580?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18308, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'id': 238585621, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'number': 18308, 'state': 'open', 'locked': False, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html', 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T01:35:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'head': {'label': 'SamuelMarks:go-1.11.3', 'ref': 'go-1.11.3', 'sha': 'c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 146245869, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDYyNDU4Njk=', 'name': 'go-ethereum', 'full_name': 'SamuelMarks/go-ethereum', 'private': False, 'owner': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SamuelMarks/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/SamuelMarks/go-ethereum', 'forks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/deployments', 'created_at': '2018-08-27T04:12:20Z', 'updated_at': '2018-12-14T01:29:02Z', 'pushed_at': '2018-12-14T01:34:35Z', 'git_url': 'git://github.com/SamuelMarks/go-ethereum.git', 'ssh_url': 'git@github.com:SamuelMarks/go-ethereum.git', 'clone_url': 'https://github.com/SamuelMarks/go-ethereum.git', 'svn_url': 'https://github.com/SamuelMarks/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107276, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 859, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18308'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T01:35:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752124781', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007', 'pull_request_review_id': 184938979, 'id': 241619007, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxOTAwNw==', 'diff_hunk': '@@ -751,6 +759,9 @@ func (p *Pss) enqueue(msg *PssMsg) error {\\n //\\n // Will fail if raw messages are disallowed\\n func (p *Pss) SendRaw(address PssAddress, topic Topic, msg []byte) error {\\n+\\tif !checkAddress(address) {\\n+\\t\\treturn errors.New(\"invalid address\")', 'path': 'swarm/pss/pss.go', 'position': 158, 'original_position': 158, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'll handle exported errors in separate PR\", 'created_at': '2018-12-14T01:23:16Z', 'updated_at': '2018-12-14T01:23:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241615168}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:23:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:23:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752123721', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962', 'pull_request_review_id': 184938921, 'id': 241618962, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODk2Mg==', 'diff_hunk': '@@ -30,6 +30,7 @@ import (\\n // asymmetrical key exchange between two directly connected peers\\n // full address, partial address (8 bytes) and empty address\\n func TestHandshake(t *testing.T) {\\n+\\tt.Skip(\"handshakes are not adapted to current pss core code\")', 'path': 'swarm/pss/handshake_test.go', 'position': 4, 'original_position': 4, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually I'm tempted to just throw the whole thing out...\", 'created_at': '2018-12-14T01:22:55Z', 'updated_at': '2018-12-14T01:22:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241614493}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:22:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:22:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752112582', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521', 'pull_request_review_id': 184938419, 'id': 241618521, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODUyMQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:', 'path': 'trinity/sync/common/headers.py', 'position': 528, 'original_position': 528, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Do you think we're still going the `black` route in the next few months? If so:\\r\\n\\r\\n1. I assume `black` will try to get as much as possible on one line\\r\\n2. Whatever we do now will be overwritten soon-ish\\r\\n\\r\\nI should really add something of significance to eth-utils to see how much it annoys me and if I want to object to using it. :smile: \", 'created_at': '2018-12-14T01:19:40Z', 'updated_at': '2018-12-14T01:19:40Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240770066}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:19:40Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:19:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752106571', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271', 'pull_request_review_id': 184938116, 'id': 241618271, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODI3MQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()', 'path': 'trinity/sync/common/headers.py', 'position': 497, 'original_position': 497, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1601 ', 'created_at': '2018-12-14T01:17:47Z', 'updated_at': '2018-12-14T01:17:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240769529}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:17:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:17:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752103378', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T01:16:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}}, 'public': True, 'created_at': '2018-12-14T01:16:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752093866', 'type': 'IssueCommentEvent', 'actor': {'id': 19257612, 'login': 'pakaplace', 'display_login': 'pakaplace', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'avatar_url': 'https://avatars.githubusercontent.com/u/19257612?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594', 'id': 382147100, 'node_id': 'MDU6SXNzdWUzODIxNDcxMDA=', 'number': 1594, 'title': 'ERC 1594: Core Security Token Standard', 'user': {'login': 'adamdossa', 'id': 2633913, 'node_id': 'MDQ6VXNlcjI2MzM5MTM=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2633913?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/adamdossa', 'html_url': 'https://github.com/adamdossa', 'followers_url': 'https://api.github.com/users/adamdossa/followers', 'following_url': 'https://api.github.com/users/adamdossa/following{/other_user}', 'gists_url': 'https://api.github.com/users/adamdossa/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/adamdossa/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/adamdossa/subscriptions', 'organizations_url': 'https://api.github.com/users/adamdossa/orgs', 'repos_url': 'https://api.github.com/users/adamdossa/repos', 'events_url': 'https://api.github.com/users/adamdossa/events{/privacy}', 'received_events_url': 'https://api.github.com/users/adamdossa/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-19T10:24:10Z', 'updated_at': '2018-12-14T01:13:56Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"---\\r\\n\\r\\neip: ERC-1594\\r\\ntitle: Core Security Token Standard (part of the ERC-1400 Security Token Standards)\\r\\nauthor: Adam Dossa (@adamdossa), Pablo Ruiz (@pabloruiz55), Fabian Vogelsteller (@frozeman), Stephane Gosselin (@thegostep)\\r\\ndiscussions-to: #1411\\r\\nstatus: Draft\\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\ncreated: 2018-09-09\\r\\nrequire: ERC-20 (#20), ERC-1066 (#1066)\\r\\n\\r\\n---\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nThis standard sits under the ERC-1400 (#1411) umbrella set of standards related to security tokens.\\r\\n\\r\\nProvides a standard to support off-chain injection of data into transfers / issuance / redemption and the ability to check the validity of a transfer distinct from it's execution.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nIncorporates error signalling, off-chain data injection and issuance / redemption semantics.\\r\\n\\r\\nThis standard inherits from ERC-20 (#20) and could be easily extended to meet the ERC-777 (#777) standard if needed.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nAccelerate the issuance and management of securities on the Ethereum blockchain by specifying a standard interface through which security tokens can be operated on and interrogated by all relevant parties.\\r\\n\\r\\nSecurity tokens differ materially from other token use-cases, with more complex interactions between off-chain and on-chain actors, and considerable regulatory scrutiny.\\r\\n\\r\\nThe ability to provide data (e.g. signed authorisation) alongside transfer, issuance and redemption functions allows security tokens to more flexibly implement transfer restrictions without depending on on-chain whitelists exclusively.\\r\\n\\r\\nUsing ERC-1066 (#1066) to provide reason codes as to why a transfer would fail, without requiring a user to actually try and execute a transfer, allows for improved UX and potentially saves gas on what would otherwise be failed transfers.\\r\\n\\r\\nFormalising issuance and redemption semantics (similar to minting / burning) provides visibility into the total supply of the token and how it has changed over time.\\r\\n\\r\\n## Requirements\\r\\n\\r\\nSee ERC-1400 (#1411) for a full set of requirements across the library of standards.\\r\\n\\r\\nThe following requirements have been compiled following discussions with parties across the Security Token ecosystem.\\r\\n\\r\\n- MUST have a standard interface to query if a transfer would be successful and return a reason for failure.\\r\\n- MUST emit standard events for issuance and redemption.\\r\\n- MAY require signed data to be passed into a transfer transaction in order to validate it on-chain.\\r\\n- SHOULD NOT restrict the range of asset classes across jurisdictions which can be represented.\\r\\n- MUST be ERC-20 (#20) compatible.\\r\\n- COULD be ERC-777 (#777) compatible.\\r\\n\\r\\n## Rationale\\r\\n\\r\\n### Transfer Restrictions\\r\\n\\r\\nTransfers of securities can fail for a variety of reasons in contrast to utility tokens which generally only require the sender to have a sufficient balance.\\r\\n\\r\\nThese conditions could be related to metadata of the securities being transferred (i.e. whether they are subject to a lock-up period), the identity of the sender and receiver of the securities (i.e. whether they have been through a KYC process, whether they are accredited or an affiliate of the issuer) or for reasons unrelated to the specific transfer but instead set at the token level (i.e. the token contract enforces a maximum number of investors or a cap on the percentage held by any single investor).\\r\\n\\r\\nFor ERC-20 / ERC-777 tokens, the `balanceOf` and `allowance` functions provide a way to check that a transfer is likely to succeed before executing the transfer, which can be executed both on and off-chain.\\r\\n\\r\\nFor tokens representing securities the standard introduces a function `canTransfer` which provides a more general purpose way to achieve this when the reasons for failure are more complex; and a function of the whole transfer (i.e. includes any data sent with the transfer and the receiver of the securities).\\r\\n\\r\\nIn order to support off-chain data inputs to transfer functions, transfer functions are extended to `transferWithData` / `transferFromWithData` which can optionally take an additional `bytes _data` parameter.\\r\\n\\r\\nIn order to provide a richer result than just true or false, a byte return code is returned. This allows us to give a reason for why the transfer failed, or at least which category of reason the failure was in. The ability to query documents and the expected success of a transfer is included in Security Token section.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Restricted Transfers\\r\\n\\r\\n#### canTransfer / canTransferFrom\\r\\n\\r\\nTransfers of securities may fail for a number of reasons, for example relating to:\\r\\n - the identity of the sender or receiver of the tokens\\r\\n - limits placed on the specific tokens being transferred (i.e. lockups on certain quantities of token)\\r\\n - limits related to the overall state of the token (i.e. total number of investors)\\r\\n\\r\\nThe standard provides an on-chain function to determine whether a transfer will succeed, and return details indicating the reason if the transfer is not valid.\\r\\n\\r\\nThese rules can either be defined using smart contracts and on-chain data, or rely on `_data` passed as part of the `transferWithData` function which could represent authorisation for the transfer (e.g. a signed message by a transfer agent attesting to the validity of this specific transfer).\\r\\n\\r\\nThe function will return both a ESC (Ethereum Status Code) following the EIP-1066 standard, and an additional `bytes32` parameter that can be used to define application specific reason codes with additional details (for example the transfer restriction rule responsible for making the transfer operation invalid).\\r\\n\\r\\nIf `bytes _data` is empty, then this corresponds to a check on whether a `transfer` (or `transferFrom`) request will succeed, if `bytes _data` is populated, then this corresponds to a check on `transferWithData` (or `transferFromWithData`) will succeed.\\r\\n\\r\\n`canTransfer` assumes the sender of tokens is `msg.sender` and will be executed via `transfer` or `transferWithData` whereas `canTransferFrom` allows the specification of the sender of tokens and that the transfer will be executed via `transferFrom` or `transferFromWithData`.\\r\\n\\r\\n``` solidity\\r\\nfunction canTransfer(address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\nfunction canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\n```\\r\\n\\r\\n#### transferWithData\\r\\n\\r\\nTransfer restrictions can take many forms and typically involve on-chain rules or whitelists. However for many types of approved transfers, maintaining an on-chain list of approved transfers can be cumbersome and expensive. An alternative is the co-signing approach, where in addition to the token holder approving a token transfer, and authorised entity provides signed data which further validates the transfer.\\r\\n\\r\\nThe `bytes _data` allows arbitrary data to be submitted alongside the transfer, for the token contract to interpret or record. This could be signed data authorising the transfer (e.g. a dynamic whitelist) but is flexible enough to accomadate other use-cases.\\r\\n\\r\\n`transferWithData` MUST emit a `Transfer` event with details of the transfer.\\r\\n\\r\\n``` solidity\\r\\nfunction transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### transferFromWithData\\r\\n\\r\\nThis is the analogy to the `transferWithData` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\n``` solidity\\r\\nfunction transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Issuance\\r\\n\\r\\n#### isIssuable\\r\\n\\r\\nA security token issuer can specify that issuance has finished for the token (i.e. no new tokens can be minted or issued).\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST always return FALSE in the future.\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST never allow additional tokens to be issued.\\r\\n\\r\\n``` solidity\\r\\nfunction isIssuable() external view returns (bool);\\r\\n```\\r\\n\\r\\n#### issue\\r\\n\\r\\nThis function must be called to increase the total supply.\\r\\n\\r\\nThe `bytes _data` parameter can be used to inject off-chain data (e.g. signed data) to authorise or authenticate the issuance and receiver of issued tokens.\\r\\n\\r\\nWhen called, this function MUST emit the `Issued` event.\\r\\n\\r\\n``` solidity\\r\\nfunction issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Redemption\\r\\n\\r\\n#### redeem\\r\\n\\r\\nAllows a token holder to redeem tokens.\\r\\n\\r\\nThe redeemed tokens must be subtracted from the total supply and the balance of the token holder. The token redemption should act like sending tokens and be subject to the same conditions.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\nAs with `transferWithData` this function has a `bytes _data` parameter that can be used in the token contract to authenticate the redemption.\\r\\n\\r\\n``` solidity\\r\\nfunction redeem(uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### redeemFrom\\r\\n\\r\\nThis is the analogy to the `redeem` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\n``` solidity\\r\\nfunction redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n## Interface\\r\\n\\r\\n``` solidity\\r\\n/// @title IERC1594 Security Token Standard\\r\\n/// @dev See https://github.com/SecurityTokenStandard/EIP-Spec\\r\\n\\r\\ninterface IERC1594 is IERC20 {\\r\\n\\r\\n // Transfers\\r\\n function transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n function transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Issuance\\r\\n function isIssuable() external view returns (bool);\\r\\n function issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Redemption\\r\\n function redeem(uint256 _value, bytes _data) external;\\r\\n function redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Transfer Validity\\r\\n function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n function canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n\\r\\n // Issuance / Redemption Events\\r\\n event Issued(address indexed _operator, address indexed _to, uint256 _value, bytes _data);\\r\\n event Redeemed(address indexed _operator, address indexed _from, uint256 _value, bytes _data);\\r\\n\\r\\n}\\r\\n```\\r\\n\\r\\n## References\\r\\n- [EIP 1400: Security Token Standard With Partitions](https://github.com/ethereum/EIPs/issues/1411)\\r\\n- [EIP Draft](https://github.com/SecurityTokenStandard/EIP-Spec)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447178846', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594#issuecomment-447178846', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'id': 447178846, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3ODg0Ng==', 'user': {'login': 'pakaplace', 'id': 19257612, 'node_id': 'MDQ6VXNlcjE5MjU3NjEy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/19257612?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'html_url': 'https://github.com/pakaplace', 'followers_url': 'https://api.github.com/users/pakaplace/followers', 'following_url': 'https://api.github.com/users/pakaplace/following{/other_user}', 'gists_url': 'https://api.github.com/users/pakaplace/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pakaplace/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pakaplace/subscriptions', 'organizations_url': 'https://api.github.com/users/pakaplace/orgs', 'repos_url': 'https://api.github.com/users/pakaplace/repos', 'events_url': 'https://api.github.com/users/pakaplace/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pakaplace/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:13:56Z', 'updated_at': '2018-12-14T01:13:56Z', 'author_association': 'NONE', 'body': 'Great work @adamdossa . We\\'re pretty in line with this design at Meridio, and the community\\'s decomposition of 1400. A few comments around issuance/redemption as part of the standard:\\r\\n* If issuance/redemption is part of the required interface and `isIssuable()` is defined, then shouldn\\'t a`finishIssuance()` function be included in the standard? Even if you deem its inclusion out of the scope of an interface, I think it would help explain a non-intuitive concept for readers of the standard. \\r\\n* Curious to hear why \"issue\" and \"redeem\" were chosen terminology given the prominence of \"mint\" and \"burn.\" I understand it may be more in line with industry terminology, but on the other hand I would argue \"redemption\" does not imply convey burn/destroy-tokens functionality at first glance. \\r\\n* I\\'m still hesitant to vie for 1066 status codes in a core standard given their WIP status. Including a `Bool` as the first returned variable of `canTransfer()` would be much easier to implement and adopt, and it would still allow people to query transfer success. With a `bool` as a first parameter, you could still allow for optional 1066 and application specific status codes. Dependency on 1066 comes with an uncertain ETA for completion, and security token projects are going to market **soon**.\\r\\n \\r\\ni.e. ```function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool success, byte statusCode, bytes32 reason);```\\r\\n\\r\\n\\r\\nA peer at Meridio (Asha Dakshi) pointed out that from an audit perspective, `controllerTransfer` might be preferable for fund recovery, since events could be emitted on `controllerTransfer` would show matching debits/credits and sender/recipient. Not sure if `controllerTransfer()` should necessarily be part of the base standard, but I guess the same could be argued for issuance/redemption. In either case, I\\'m okay with this being in the standard. The implementation decision should probably be left to the issuer and regulator. @0age interested to hear your thoughts on this. '}}, 'public': True, 'created_at': '2018-12-14T01:13:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752079953', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077', 'pull_request_review_id': 184936758, 'id': 241617077, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNzA3Nw==', 'diff_hunk': '@@ -0,0 +1,67 @@\\n+from asyncio import (\\n+ PriorityQueue,\\n+)\\n+from typing import (\\n+ Generic,\\n+ Type,\\n+ TypeVar,\\n+)\\n+\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+\\n+from p2p.protocol import Command\\n+\\n+from trinity.protocol.common.peer import BaseChainPeer\\n+from trinity.utils.datastructures import (\\n+ SortableTask,\\n+)\\n+\\n+TChainPeer = TypeVar(\\'TChainPeer\\', bound=BaseChainPeer)\\n+\\n+\\n+class WaitingPeers(Generic[TChainPeer]):\\n+ \"\"\"\\n+ Peers waiting to perform some action. When getting a peer from this queue,\\n+ prefer the peer with the best throughput for the given command.\\n+ \"\"\"\\n+ _waiting_peers: \\'PriorityQueue[SortableTask[TChainPeer]]\\'\\n+\\n+ def __init__(self, response_command_type: Type[Command]) -> None:\\n+ self._waiting_peers = PriorityQueue()\\n+ self._response_command_type = response_command_type\\n+ self._peer_wrapper = SortableTask.orderable_by_func(self._ranked_peer)\\n+\\n+ def _ranked_peer(self, peer: TChainPeer) -> float:\\n+ relevant_throughputs = [\\n+ exchange.tracker.items_per_second_ema.value\\n+ for exchange in peer.requests\\n+ if issubclass(exchange.response_cmd_type, self._response_command_type)\\n+ ]\\n+\\n+ if len(relevant_throughputs) == 0:\\n+ raise ValidationError(\\n+ f\"Could not find any exchanges on {peer} \"\\n+ f\"with response {self._response_command_type!r}\"\\n+ )\\n+\\n+ avg_throughput = sum(relevant_throughputs) / len(relevant_throughputs)', 'path': 'trinity/sync/common/peers.py', 'position': 49, 'original_position': 49, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Right, and other than `mypy` complaining, `response_command_type` could theoretically be a tuple if you really wanted to average throughput across a couple different commands.', 'created_at': '2018-12-14T01:09:56Z', 'updated_at': '2018-12-14T01:09:56Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240776544}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:09:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752074277', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819', 'pull_request_review_id': 184936426, 'id': 241616819, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjgxOQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:\\n+ \"\"\"\\n+ :param parent_header: the parent of the gap to fill\\n+ :param gap_length: how long is the header gap\\n+ :param skeleton_peer: the peer that provided the parent_header - will not use to fill gaps\\n+ \"\"\"\\n+ await self.wait(self._filler_header_tasks.add((\\n+ (parent_header, gap_length, skeleton_peer),\\n+ )))\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ with self.subscribe(self._peer_pool):\\n+ await self.wait(self._match_header_dls_to_peers())\\n+\\n+ async def _display_stats(self) -> None:\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\\n+ \"(in progress, queued, max size) of header filler gaps: %r\",\\n+ [(q.num_in_progress(), len(q), q._maxsize) for q in (\\n+ self._filler_header_tasks,\\n+ )],\\n+ )\\n+\\n+ async def _match_header_dls_to_peers(self) -> None:\\n+ while self.is_operational:\\n+ batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ) = await self._filler_header_tasks.get(1)\\n+\\n+ await self._match_dl_to_peer(batch_id, parent_header, gap, skeleton_peer)\\n+\\n+ async def _match_dl_to_peer(\\n+ self,\\n+ batch_id: int,\\n+ parent_header: BlockHeader,\\n+ gap: int,\\n+ skeleton_peer: TChainPeer) -> None:\\n+ def fail_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, tuple())\\n+\\n+ peer = await self._waiting_peers.get_fastest()\\n+\\n+ def complete_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ))\\n+ self.run_task(self._run_fetch_segment(peer, parent_header, gap, complete_task, fail_task))\\n+\\n+ async def _run_fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int,\\n+ complete_task: Callable[[], None],\\n+ fail_task: Callable[[], None]) -> None:\\n+ # If there is an exception during _fetch_segment, prepare to mark the task as finished\\n+ # with no headers collected:\\n+ completed_headers: Tuple[BlockHeader, ...] = tuple()\\n+ try:\\n+ completed_headers = await peer.wait(self._fetch_segment(peer, parent_header, length))\\n+ except BaseP2PError as exc:\\n+ self.logger.info(\"Unexpected p2p err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ except OperationCancelled:\\n+ self.logger.debug(\\n+ \"Service cancellation while fetching segment, dropping %s from queue\",\\n+ peer,\\n+ exc_info=True,\\n+ )\\n+ fail_task()\\n+ raise\\n+ except Exception as exc:\\n+ self.logger.info(\"Unexpected err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ else:\\n+ if len(completed_headers) == length:\\n+ # peer completed successfully, so have it get back in line for processing\\n+ self._waiting_peers.put_nowait(peer)\\n+ complete_task()\\n+ else:\\n+ # peer didn\\'t return enough results, wait a while before trying again\\n+ delay = EMPTY_PEER_RESPONSE_PENALTY\\n+ self.logger.debug(\\n+ \"Pausing %s for %.1fs, for sending %d headers\",\\n+ peer,\\n+ delay,\\n+ len(completed_headers),\\n+ )\\n+ self.call_later(delay, self._waiting_peers.put_nowait, peer)\\n+ fail_task()\\n+\\n+ async def _fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int) -> Tuple[BlockHeader, ...]:\\n+ if length > peer.max_headers_fetch:\\n+ raise ValidationError(\\n+ f\"Can\\'t request {length} headers, because peer maximum is {peer.max_headers_fetch}\"\\n+ )\\n+ headers = await self._request_headers(peer, parent_header.block_number + 1, length)\\n+ if not headers:\\n+ return tuple()\\n+ elif headers[0].parent_hash != parent_header.hash:\\n+ # Segment doesn\\'t match leading peer, drop this peer\\n+ # Eventually, we\\'ll do something smarter, in case the leading peer is the divergent one\\n+ self.logger.warning(\\n+ \"%s returned segment starting %s & parent %s, doesn\\'t match %s, ignoring result...\",\\n+ peer,\\n+ headers[0],\\n+ headers[0].parent_hash,\\n+ parent_header,\\n+ )\\n+ return tuple()\\n+ elif len(headers) != length:\\n+ self.logger.debug(\\n+ \"Ignoring %d headers from %s, because wanted %d\",\\n+ len(headers),\\n+ peer,\\n+ length,\\n+ )\\n+ return tuple()\\n+ else:\\n+ try:\\n+ await self._chain.coro_validate_chain(\\n+ parent_header,\\n+ headers,\\n+ SEAL_CHECK_RANDOM_SAMPLE_RATE,\\n+ )\\n+ except ValidationError as e:\\n+ self.logger.warning(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+ else:\\n+ # stitch headers together in order, ignoring duplicates\\n+ try:\\n+ self._stitcher.register_tasks(headers)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in headers if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)\\n+\\n+ return headers\\n+\\n+ async def _request_headers(\\n+ self, peer: TChainPeer, start_at: BlockNumber, length: int) -> Tuple[BlockHeader, ...]:\\n+ self.logger.debug(\"Requesting %d headers from %s\", length, peer)\\n+ try:\\n+ return await peer.requests.get_block_headers(start_at, length, skip=0, reverse=False)\\n+ except TimeoutError as err:\\n+ self.logger.debug(\"Timed out requesting %d headers from %s\", length, peer)\\n+ return tuple()\\n+ except CancelledError:\\n+ self.logger.debug(\"Pending headers call to %r future cancelled\", peer)\\n+ return tuple()\\n+ except OperationCancelled:\\n+ self.logger.debug2(\"Pending headers call to %r operation cancelled\", peer)\\n+ return tuple()\\n+ except PeerConnectionLost:\\n+ self.logger.debug(\"Peer went away, cancelling the headers request and moving on...\")\\n+ return tuple()\\n+ except Exception:\\n+ self.logger.exception(\"Unknown error when getting headers\")\\n+ raise\\n+\\n+\\n+class BaseHeaderChainSyncer(BaseService, HeaderSyncerAPI, Generic[TChainPeer]):\\n+ \"\"\"\\n+ Generate a skeleton header, then use all peers to fill in the headers\\n+ returned by the skeleton syncer.\\n+ \"\"\"\\n+ _meat: HeaderMeatSyncer[TChainPeer]\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer_pool: BaseChainPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(token)\\n+ self._db = db\\n+ self._chain = chain\\n+ self._peer_pool = peer_pool\\n+ self._tip_monitor = self.tip_monitor_class(peer_pool, token=self.cancel_token)\\n+ self._skeleton: SkeletonSyncer[TChainPeer] = None\\n+ # stitch together headers as they come in\\n+ self._stitcher = OrderedTaskPreparation(\\n+ # we don\\'t have to do any prep work on the headers, just linearize them, so empty enum\\n+ OrderedTaskPreparation.NoPrerequisites,\\n+ id_extractor=attrgetter(\\'hash\\'),\\n+ # make sure that a header is not returned in new_sync_headers until its parent has been\\n+ dependency_extractor=attrgetter(\\'parent_hash\\'),\\n+ # headers will come in out of order\\n+ accept_dangling_tasks=True,\\n+ )\\n+ # When downloading the headers into the gaps left by the syncer, they must be linearized\\n+ # by the stitcher\\n+ self._meat = HeaderMeatSyncer(chain, peer_pool, self._stitcher, token)\\n+ self._last_target_header_hash: Hash32 = None\\n+\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational:\\n+ next_header_batch = await self.wait(self._stitcher.ready_tasks())\\n+ yield cast(Tuple[BlockHeader, ...], next_header_batch)\\n+\\n+ def get_target_header_hash(self) -> Hash32:\\n+ if not self._is_syncing_skeleton and self._last_target_header_hash is None:\\n+ raise ValidationError(\"Cannot check the target hash before the first sync has started\")\\n+ elif self._is_syncing_skeleton:\\n+ return self._skeleton.peer.head_hash\\n+ else:\\n+ return self._last_target_header_hash\\n+\\n+ @property\\n+ @abstractmethod\\n+ def tip_monitor_class(self) -> Type[BaseChainTipMonitor]:\\n+ pass\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon(self._tip_monitor)\\n+ self.run_daemon(self._meat)\\n+ await self.wait(self._build_skeleton())\\n+\\n+ async def _build_skeleton(self) -> None:\\n+ \"\"\"\\n+ Find best peer to build a skeleton, and build it immediately\\n+ \"\"\"\\n+ # iterator yields the peer with the highest TD in our pool\\n+ async for peer in self._tip_monitor.wait_tip_info():\\n+ try:\\n+ await self._validate_peer_is_ahead(peer)\\n+ except _PeerBehind:\\n+ self.logger.info(\"At or behind peer %s, skipping skeleton sync\", peer)\\n+ else:\\n+ async with self._get_skeleton_syncer(peer) as syncer:\\n+ await self._full_skeleton_sync(syncer)\\n+\\n+ @asynccontextmanager\\n+ async def _get_skeleton_syncer(\\n+ self, peer: TChainPeer) -> AsyncIterator[SkeletonSyncer[TChainPeer]]:\\n+ if self._is_syncing_skeleton:\\n+ raise ValidationError(\"Cannot sync skeleton headers from two peers at the same time\")\\n+\\n+ self._skeleton = SkeletonSyncer(\\n+ self._chain,\\n+ self._db,\\n+ peer,\\n+ self.cancel_token,\\n+ )\\n+ self.run_child_service(self._skeleton)\\n+ await self._skeleton.events.started.wait()\\n+ try:\\n+ yield self._skeleton\\n+ except OperationCancelled:\\n+ pass\\n+ else:\\n+ if self._skeleton.is_operational:\\n+ self._skeleton.cancel_nowait()\\n+ finally:\\n+ self.logger.info(\"Skeleton sync with %s ended\", peer)\\n+ self._last_target_header_hash = peer.head_hash\\n+ self._skeleton = None\\n+\\n+ @property\\n+ def _is_syncing_skeleton(self) -> bool:\\n+ return self._skeleton is not None\\n+\\n+ async def _full_skeleton_sync(self, skeleton_syncer: SkeletonSyncer[TChainPeer]) -> None:\\n+ skeleton_generator = skeleton_syncer.next_skeleton_segment()\\n+ try:\\n+ first_segment = await skeleton_generator.__anext__()\\n+ except StopAsyncIteration:\\n+ self.logger.debug(\\n+ \"Skeleton %s was cancelled before first header was returned\",\\n+ skeleton_syncer.peer,\\n+ )\\n+ return\\n+\\n+ self.logger.debug(\\n+ \"Skeleton syncer asserts that parent (%s) of the first header (%s) is already present\",\\n+ first_segment[0].parent_hash,\\n+ first_segment[0],\\n+ )\\n+ first_parent = await self._db.coro_get_block_header_by_hash(first_segment[0].parent_hash)\\n+ try:\\n+ self._stitcher.set_finished_dependency(first_parent)\\n+ except DuplicateTasks:\\n+ # the first header of this segment was already registered: no problem, carry on\\n+ pass\\n+\\n+ try:\\n+ self._stitcher.register_tasks(first_segment)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in first_segment if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)', 'path': 'trinity/sync/common/headers.py', 'position': 826, 'original_position': 826, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1600', 'created_at': '2018-12-14T01:08:09Z', 'updated_at': '2018-12-14T01:08:09Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240775432}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:08:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752073306', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1600, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600', 'id': 238581722, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTgxNzIy', 'html_url': 'https://github.com/ethereum/py-evm/pull/1600', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1600.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1600.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600', 'number': 1600, 'state': 'open', 'locked': False, 'title': 'Option to ignore duplicates in OrderedTaskPreparation', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nSome use cases are totally fine with duplicates in `OrderedTaskPreparation`, but they have a bit of boilerplate to overcome the dups.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nAdd option to drop duplicates when registering tasks.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://theawesomedaily.com/wp-content/uploads/2014/10/cute-animals-twins-14.jpg)', 'created_at': '2018-12-14T01:07:50Z', 'updated_at': '2018-12-14T01:07:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'head': {'label': 'carver:task-prep-duplicates', 'ref': 'task-prep-duplicates', 'sha': '0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1600'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 26, 'deletions': 7, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:07:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752058628', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095', 'pull_request_review_id': 184935511, 'id': 241616095, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjA5NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lint reports also https://travis-ci.org/ethereum/go-ethereum/jobs/467536235#L514', 'created_at': '2018-12-14T01:03:16Z', 'updated_at': '2018-12-14T01:03:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241613965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:03:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752053738', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850', 'pull_request_review_id': 184935233, 'id': 241615850, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTg1MA==', 'diff_hunk': '@@ -1034,3 +1047,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr *PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': None, 'original_position': 63, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '05eae4f31250d085602a86074dd278a8861fb567', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'should be the same way as proposed for `checkMsg`', 'created_at': '2018-12-14T01:01:44Z', 'updated_at': '2018-12-14T01:01:45Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241387376}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:01:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:01:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051108', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508', 'pull_request_review_id': 184933055, 'id': 241615508, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTUwOA==', 'diff_hunk': '@@ -1034,3 +1039,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': 209, 'original_position': 209, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'better return the (exported) error here where it belongs\\r\\n\\r\\n```golang\\r\\nfunc validate(addr PssAddress) error \\r\\n```', 'created_at': '2018-12-14T00:59:27Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703', 'pull_request_review_id': 184933055, 'id': 241615703, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTcwMw==', 'diff_hunk': '@@ -1008,6 +1008,34 @@ func TestRawAllow(t *testing.T) {\\n \\t}\\n }\\n \\n+// BELOW HERE ARE TESTS USING THE SIMULATION FRAMEWORK\\n+\\n+// tests that the API layer can handle edge case values\\n+func TestApi(t *testing.T) {\\n+\\tclients, err := setupNetwork(2, true)\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\ttopic := \"0xdeadbeef\"\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0x\", topic, \"0x666f6f\")\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0xabcdef\", topic, \"0x\")\\n+\\tif err == nil {\\n+\\t\\tt.Fatal(\"expected error on empty msg\")\\n+\\t}\\n+\\n+\\toverflowAddr := [33]byte{}\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", hexutil.Encode(overflowAddr[:]), topic, \"0x666f6f\")\\n+\\tif err == nil {', 'path': 'swarm/pss/pss_test.go', 'position': 74, 'original_position': 74, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lets check the actual error returned', 'created_at': '2018-12-14T01:00:41Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:00:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051104', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965', 'pull_request_review_id': 184933055, 'id': 241613965, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxMzk2NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'redundant. `len(msg) == 0 ` covers the nil case too. ', 'created_at': '2018-12-14T00:49:53Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:49:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751989838', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'id': 390917644, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'number': 317, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:41:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447173057', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317#issuecomment-447173057', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'id': 447173057, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3MzA1Nw==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:41:50Z', 'updated_at': '2018-12-14T00:41:50Z', 'author_association': 'CONTRIBUTOR', 'body': 'One aesthetic change I think we should consider is switching the `get_effective_balance` function to just take the state as an argument instead of (as in this PR right now) the validator balance entry. I could see future changes that use parts of the validator registry entry as well as the balance entry to calculate the effective balance, so we may as well just make grab all the data it needs from the state.'}}, 'public': True, 'created_at': '2018-12-14T00:41:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751984020', 'type': 'PushEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136352433, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/vbuterin-patch-15', 'head': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'before': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'commits': [{'sha': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Some bugfixes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/964395c362f90cfed2cda1224ea6587d01e8d80b'}]}, 'public': True, 'created_at': '2018-12-14T00:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751978095', 'type': 'ForkEvent', 'actor': {'id': 34241240, 'login': 'lostjcwide', 'display_login': 'lostjcwide', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'avatar_url': 'https://avatars.githubusercontent.com/u/34241240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161711418, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTE0MTg=', 'name': 'go-ethereum', 'full_name': 'lostjcwide/go-ethereum', 'private': False, 'owner': {'login': 'lostjcwide', 'id': 34241240, 'node_id': 'MDQ6VXNlcjM0MjQxMjQw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/34241240?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'html_url': 'https://github.com/lostjcwide', 'followers_url': 'https://api.github.com/users/lostjcwide/followers', 'following_url': 'https://api.github.com/users/lostjcwide/following{/other_user}', 'gists_url': 'https://api.github.com/users/lostjcwide/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lostjcwide/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lostjcwide/subscriptions', 'organizations_url': 'https://api.github.com/users/lostjcwide/orgs', 'repos_url': 'https://api.github.com/users/lostjcwide/repos', 'events_url': 'https://api.github.com/users/lostjcwide/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lostjcwide/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/lostjcwide/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/lostjcwide/go-ethereum', 'forks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/deployments', 'created_at': '2018-12-14T00:38:08Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/lostjcwide/go-ethereum.git', 'ssh_url': 'git@github.com:lostjcwide/go-ethereum.git', 'clone_url': 'https://github.com/lostjcwide/go-ethereum.git', 'svn_url': 'https://github.com/lostjcwide/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:38:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751969024', 'type': 'ForkEvent', 'actor': {'id': 32267442, 'login': 'tootooquan', 'display_login': 'tootooquan', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'avatar_url': 'https://avatars.githubusercontent.com/u/32267442?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161711222, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTEyMjI=', 'name': 'wiki', 'full_name': 'tootooquan/wiki', 'private': False, 'owner': {'login': 'tootooquan', 'id': 32267442, 'node_id': 'MDQ6VXNlcjMyMjY3NDQy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/32267442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'html_url': 'https://github.com/tootooquan', 'followers_url': 'https://api.github.com/users/tootooquan/followers', 'following_url': 'https://api.github.com/users/tootooquan/following{/other_user}', 'gists_url': 'https://api.github.com/users/tootooquan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tootooquan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tootooquan/subscriptions', 'organizations_url': 'https://api.github.com/users/tootooquan/orgs', 'repos_url': 'https://api.github.com/users/tootooquan/repos', 'events_url': 'https://api.github.com/users/tootooquan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tootooquan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/tootooquan/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/tootooquan/wiki', 'forks_url': 'https://api.github.com/repos/tootooquan/wiki/forks', 'keys_url': 'https://api.github.com/repos/tootooquan/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/tootooquan/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/tootooquan/wiki/teams', 'hooks_url': 'https://api.github.com/repos/tootooquan/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/tootooquan/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/tootooquan/wiki/events', 'assignees_url': 'https://api.github.com/repos/tootooquan/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/tootooquan/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/tootooquan/wiki/tags', 'blobs_url': 'https://api.github.com/repos/tootooquan/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/tootooquan/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/tootooquan/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/tootooquan/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/tootooquan/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/tootooquan/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/tootooquan/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/tootooquan/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/tootooquan/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/tootooquan/wiki/subscription', 'commits_url': 'https://api.github.com/repos/tootooquan/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/tootooquan/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/tootooquan/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/tootooquan/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/tootooquan/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/tootooquan/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/tootooquan/wiki/merges', 'archive_url': 'https://api.github.com/repos/tootooquan/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/tootooquan/wiki/downloads', 'issues_url': 'https://api.github.com/repos/tootooquan/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/tootooquan/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/tootooquan/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/tootooquan/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/tootooquan/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/tootooquan/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/tootooquan/wiki/deployments', 'created_at': '2018-12-14T00:35:13Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/tootooquan/wiki.git', 'ssh_url': 'git@github.com:tootooquan/wiki.git', 'clone_url': 'https://github.com/tootooquan/wiki.git', 'svn_url': 'https://github.com/tootooquan/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:35:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949703', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 317, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'id': 238576035, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'number': 317, 'state': 'open', 'locked': False, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:29:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'head': {'label': 'ethereum:vbuterin-patch-15', 'ref': 'vbuterin-patch-15', 'sha': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/317'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 47, 'deletions': 54, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:29:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949477', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-15', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:29:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751924428', 'type': 'WatchEvent', 'actor': {'id': 9455140, 'login': 'BITjiangrui', 'display_login': 'BITjiangrui', 'gravatar_id': '', 'url': 'https://api.github.com/users/BITjiangrui', 'avatar_url': 'https://avatars.githubusercontent.com/u/9455140?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:21:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751892952', 'type': 'ForkEvent', 'actor': {'id': 40443354, 'login': 'akkaorig', 'display_login': 'akkaorig', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'avatar_url': 'https://avatars.githubusercontent.com/u/40443354?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161709668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MDk2Njg=', 'name': 'wiki', 'full_name': 'akkaorig/wiki', 'private': False, 'owner': {'login': 'akkaorig', 'id': 40443354, 'node_id': 'MDQ6VXNlcjQwNDQzMzU0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/40443354?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'html_url': 'https://github.com/akkaorig', 'followers_url': 'https://api.github.com/users/akkaorig/followers', 'following_url': 'https://api.github.com/users/akkaorig/following{/other_user}', 'gists_url': 'https://api.github.com/users/akkaorig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/akkaorig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/akkaorig/subscriptions', 'organizations_url': 'https://api.github.com/users/akkaorig/orgs', 'repos_url': 'https://api.github.com/users/akkaorig/repos', 'events_url': 'https://api.github.com/users/akkaorig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/akkaorig/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/akkaorig/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/akkaorig/wiki', 'forks_url': 'https://api.github.com/repos/akkaorig/wiki/forks', 'keys_url': 'https://api.github.com/repos/akkaorig/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/akkaorig/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/akkaorig/wiki/teams', 'hooks_url': 'https://api.github.com/repos/akkaorig/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/akkaorig/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/akkaorig/wiki/events', 'assignees_url': 'https://api.github.com/repos/akkaorig/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/akkaorig/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/akkaorig/wiki/tags', 'blobs_url': 'https://api.github.com/repos/akkaorig/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/akkaorig/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/akkaorig/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/akkaorig/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/akkaorig/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/akkaorig/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/akkaorig/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/akkaorig/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/akkaorig/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/akkaorig/wiki/subscription', 'commits_url': 'https://api.github.com/repos/akkaorig/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/akkaorig/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/akkaorig/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/akkaorig/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/akkaorig/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/akkaorig/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/akkaorig/wiki/merges', 'archive_url': 'https://api.github.com/repos/akkaorig/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/akkaorig/wiki/downloads', 'issues_url': 'https://api.github.com/repos/akkaorig/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/akkaorig/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/akkaorig/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/akkaorig/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/akkaorig/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/akkaorig/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/akkaorig/wiki/deployments', 'created_at': '2018-12-14T00:11:33Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/akkaorig/wiki.git', 'ssh_url': 'git@github.com:akkaorig/wiki.git', 'clone_url': 'https://github.com/akkaorig/wiki.git', 'svn_url': 'https://github.com/akkaorig/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:11:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751888250', 'type': 'WatchEvent', 'actor': {'id': 168240, 'login': 'miguelmota', 'display_login': 'miguelmota', 'gravatar_id': '', 'url': 'https://api.github.com/users/miguelmota', 'avatar_url': 'https://avatars.githubusercontent.com/u/168240?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:10:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751876088', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 103953670, 'name': 'ethereum/snake-charmers-tactical-manual', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual'}, 'payload': {'action': 'opened', 'number': 32, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32', 'id': 238572554, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTU0', 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32', 'diff_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32', 'number': 32, 'state': 'open', 'locked': False, 'title': 'Add link to release file in README', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Forgot the push to master step originally. Also added link to the readme.', 'created_at': '2018-12-14T00:06:41Z', 'updated_at': '2018-12-14T00:06:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'head': {'label': 'kclowes:edit-release-docs', 'ref': 'edit-release-docs', 'sha': '781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 157785913, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTc3ODU5MTM=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'kclowes/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/deployments', 'created_at': '2018-11-15T23:33:08Z', 'updated_at': '2018-11-15T23:33:10Z', 'pushed_at': '2018-12-14T00:01:33Z', 'git_url': 'git://github.com/kclowes/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:kclowes/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/kclowes/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 39, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dcdfa5c8345876b6bab867f1d1736a8fdc3cde4a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 103953670, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMDM5NTM2NzA=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'ethereum/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/deployments', 'created_at': '2017-09-18T15:00:44Z', 'updated_at': '2018-12-12T19:12:49Z', 'pushed_at': '2018-12-12T19:12:47Z', 'git_url': 'git://github.com/ethereum/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 57, 'stargazers_count': 28, 'watchers_count': 28, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 11, 'mirror_url': None, 'archived': False, 'open_issues_count': 15, 'license': None, 'forks': 11, 'open_issues': 15, 'watchers': 28, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T00:06:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751875553', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300', 'id': 390356377, 'node_id': 'MDU6SXNzdWUzOTAzNTYzNzc=', 'number': 300, 'title': 'Add aggregation description to BLS document', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:39:12Z', 'updated_at': '2018-12-14T00:06:32Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '- [ ] Add `aggregate_pubkeys` function description\\r\\n- [ ] Add `aggregate_signatures` function description\\r\\n- [ ] Rename `bls_verify.md` -> `bls_signature.md`\\r\\n\\r\\n\\r\\nTBD:\\r\\n* Add more description: BLS signature scheme for Ethereum 2.0: Aggregate and Multi-Signatures based on BLS (Boneh–Lynn–Shacham) over BLS12-381.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447166455', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300#issuecomment-447166455', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'id': 447166455, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2NjQ1NQ==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:06:32Z', 'updated_at': '2018-12-14T00:06:32Z', 'author_association': 'CONTRIBUTOR', 'body': 'Addressed with https://github.com/ethereum/eth2.0-specs/pull/316'}}, 'public': True, 'created_at': '2018-12-14T00:06:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874995', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 316, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T00:06:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:06:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874194', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-13', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:06:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751821039', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3136263998, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'before': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'commits': [{'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Add a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}, {'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Change readthedocs yaml to build from latest image\\n\\nSupport python >=3.5.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/62448d0858e80d3e8bad219f4669360249a1031c'}, {'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1162 from kclowes/add-rtd-yml\\n\\nAdd a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/911e2a4842b8b5cda51cc312df55a329881b6dc7'}]}, 'public': True, 'created_at': '2018-12-13T23:51:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751820926', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'closed', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:51:16Z', 'closed_at': '2018-12-13T23:51:16Z', 'merged_at': '2018-12-13T23:51:16Z', 'merge_commit_sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T23:39:31Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3083, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:51:16Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T23:51:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811322', 'type': 'PullRequestEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1088, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'id': 220916221, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'number': 1088, 'state': 'closed', 'locked': False, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\", 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:29Z', 'closed_at': '2018-12-13T23:48:28Z', 'merged_at': None, 'merge_commit_sha': 'b3cc4fa473d82228fcef84656ca96203d710533c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'head': {'label': 'dylanjw:async_modules', 'ref': 'async_modules', 'sha': 'b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111731372, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTE3MzEzNzI=', 'name': 'web3.py', 'full_name': 'dylanjw/web3.py', 'private': False, 'owner': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dylanjw/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/dylanjw/web3.py', 'forks_url': 'https://api.github.com/repos/dylanjw/web3.py/forks', 'keys_url': 'https://api.github.com/repos/dylanjw/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dylanjw/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dylanjw/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/dylanjw/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dylanjw/web3.py/events', 'assignees_url': 'https://api.github.com/repos/dylanjw/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dylanjw/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dylanjw/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dylanjw/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dylanjw/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dylanjw/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dylanjw/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/dylanjw/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/dylanjw/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/dylanjw/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/dylanjw/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/dylanjw/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dylanjw/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dylanjw/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dylanjw/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dylanjw/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dylanjw/web3.py/merges', 'archive_url': 'https://api.github.com/repos/dylanjw/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dylanjw/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/dylanjw/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dylanjw/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dylanjw/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dylanjw/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dylanjw/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/dylanjw/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dylanjw/web3.py/deployments', 'created_at': '2017-11-22T20:53:39Z', 'updated_at': '2018-11-02T10:22:38Z', 'pushed_at': '2018-11-01T11:55:01Z', 'git_url': 'git://github.com/dylanjw/web3.py.git', 'ssh_url': 'git@github.com:dylanjw/web3.py.git', 'clone_url': 'https://github.com/dylanjw/web3.py.git', 'svn_url': 'https://github.com/dylanjw/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 19370, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '22a215fb6a0e8f0b4479c994f3d88e65bff3dda1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:39:33Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1088'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 10, 'review_comments': 19, 'maintainer_can_modify': False, 'commits': 21, 'additions': 734, 'deletions': 461, 'changed_files': 43}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811316', 'type': 'IssueCommentEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'id': 367503181, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'number': 1088, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:28Z', 'closed_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch'}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447162791', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088#issuecomment-447162791', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'id': 447162791, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2Mjc5MQ==', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:48:28Z', 'updated_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'body': 'This PR was mostly experimentation and can be closed now.'}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751780935', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653', 'pull_request_review_id': 184918499, 'id': 241601653, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMTY1Mw==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))', 'path': 'trinity/sync/common/headers.py', 'position': 139, 'original_position': 139, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Eh, no great reason. A future change might make the queue smaller than `launch_headers` and it seems slightly better to pause while the queue is drained than to crash.\\r\\n\\r\\nI'm on the fence, and it's easier to change than to document clearly :)\", 'created_at': '2018-12-13T23:40:11Z', 'updated_at': '2018-12-13T23:40:11Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240762923}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:40:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:40:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751774402', 'type': 'PushEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3136239202, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/test-allowlocal', 'head': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'before': '160dba6eefb5f8cb9eb12d1daee2903a699d1cd7', 'commits': [{'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'author': {'email': 'nilserik.frantzell@gmail.com', 'name': 'Nils-Erik Frantzell'}, 'message': 'Add allow-local arg to aleth/aleth-bootnode\\n\\nArg is used to enable nodes from your local network to be added to the\\nnode table. Useful for testing discovery running multiple nodes on ones\\nlocal machine', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}]}, 'public': True, 'created_at': '2018-12-13T23:38:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751772151', 'type': 'CreateEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'test-allowlocal', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T23:37:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751768176', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:36:31Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447160464', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447160464', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447160464, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2MDQ2NA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:36:31Z', 'updated_at': '2018-12-13T23:36:31Z', 'author_association': 'COLLABORATOR', 'body': '> Do you have a preference between cherry picking that commit or updating the file here?\\r\\n\\r\\nNo need to cherry-pick it, update in place is fine. :+1: '}}, 'public': True, 'created_at': '2018-12-13T23:36:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751763013', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1599', 'id': 390905959, 'node_id': 'MDU6SXNzdWUzOTA5MDU5NTk=', 'number': 1599, 'title': 'Change the DB fixture naming convention to `pow_headers_20` so that they sort intuitively', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T23:35:01Z', 'updated_at': '2018-12-13T23:35:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '_Originally posted by @pipermerriam in https://github.com/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDc2MTEyMQ==/comments/review_comment_'}}, 'public': True, 'created_at': '2018-12-13T23:35:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751760637', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540', 'pull_request_review_id': 184917173, 'id': 241600540, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMDU0MA==', 'diff_hunk': \"@@ -147,6 +147,7 @@ def load_mining_chain(db):\\n \\n class DBFixture(Enum):\\n twenty_pow_headers = '20pow_headers.ldb'\\n+ thousand_pow_headers = '1000pow_headers.ldb'\", 'path': 'tests/trinity/core/integration_test_helpers.py', 'position': 4, 'original_position': 4, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Maybe :football: this to a follow-up to avoid growing this PR', 'created_at': '2018-12-13T23:34:18Z', 'updated_at': '2018-12-13T23:34:19Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240761121}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '014fbbfeee97efbf059d633982a5940a7745526f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:34:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751739960', 'type': 'IssueCommentEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:28:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447158885', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447158885', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447158885, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1ODg4NQ==', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:28:57Z', 'updated_at': '2018-12-13T23:28:57Z', 'author_association': 'CONTRIBUTOR', 'body': \"> I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\nooo, sweet! I'll check it out\\r\\n\\r\\n> For whatever reason, we used a slightly different yaml in v4:\\r\\nNeat! I didn't even see that one. It looks like build.latest should work. Do you have a preference between cherry picking that commit or updating the file here?\"}}, 'public': True, 'created_at': '2018-12-13T23:28:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751731443', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1598, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598', 'id': 238565680, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTY1Njgw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1598', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1598.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1598.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598', 'number': 1598, 'state': 'open', 'locked': False, 'title': 'Pretty hash display utility', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWe\\'re likely to write little bits of hash display code here and there. Better to have a common utility.\\r\\n\\r\\nInspired by https://github.com/ethereum/py-evm/pull/1392#discussion_r240773225\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDecided to keep it super simple by only supporting the long form.\\r\\n\\r\\nThe short form seems just so short to implement, that it\\'s better not to worry about the utility, like:\\r\\n\\r\\n```py\\r\\nf\"{header.hash[:4].hex()}\"\\r\\n```\\r\\n\\r\\nI don\\'t feel super strongly though.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![screenshot_2018-12-13_15-25-22](https://user-images.githubusercontent.com/205327/49973811-63353080-feeb-11e8-8909-8165087b7d9c.png)\\r\\n_\"hash browns\"_', 'created_at': '2018-12-13T23:26:41Z', 'updated_at': '2018-12-13T23:26:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13', 'head': {'label': 'carver:humanize-hash', 'ref': 'humanize-hash', 'sha': '5147609fc43470c2b01e273f7b00f1cc71728d13', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1598'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 22, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T23:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751671993', 'type': 'WatchEvent', 'actor': {'id': 1105978, 'login': 'ajbennett', 'display_login': 'ajbennett', 'gravatar_id': '', 'url': 'https://api.github.com/users/ajbennett', 'avatar_url': 'https://avatars.githubusercontent.com/u/1105978?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T23:11:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751668907', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T23:10:23Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447154718', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447154718', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447154718, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1NDcxOA==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:10:23Z', 'updated_at': '2018-12-13T23:10:23Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener (or maybe we can create the `NodeTable `without going through `Host`, though I doubt it since I think the `NodeTable `depends on the host e.g. it uses a reference to `Host`'s boost IO service to listen for discovery packets)\\r\\n\\r\\nI'm thinking of adding a boolean parameter to `NetworkConfig` named something like `p2p `which aleth-bootnode's `main `would set to `false`. In `Host `we would then skip starting the capability threads and the tcp4 acceptor in `Host::startedWorking`:\\r\\n\\r\\nhttps://github.com/ethereum/aleth/blob/ec3886029393fc9927b130ba8f8671480d810391/libp2p/Host.cpp#L774-L787\\r\\n\\r\\nWe could also turn `Host::m_tcp4Acceptor` and `Host::m_ioService` into pointer types and only create them if `NetworkConfig::p2p` is `true`. \\r\\n\\r\\nI think we should still restore the data from `aleth-bootnode-network.rlp` since that can contain node table data.\\r\\n\\r\\n@gumb0,@chfast: Thoughts? \"}}, 'public': True, 'created_at': '2018-12-13T23:10:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751172385', 'type': 'CreateEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'ref': 'circleci-mac', 'ref_type': 'branch', 'master_branch': 'master', 'description': None, 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T21:28:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751170970', 'type': 'ForkEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-13T21:27:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751159042', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3135924837, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'before': '1ed1030c3496f6a0c0699037929d9c316a9915f4', 'commits': [{'sha': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': \"ToDo's added\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/cf128eeb6f85373e36fe562db7cf0faea7b95f09'}]}, 'public': True, 'created_at': '2018-12-13T21:25:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751139500', 'type': 'IssueCommentEvent', 'actor': {'id': 37226745, 'login': 'binary-adam', 'display_login': 'binary-adam', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'avatar_url': 'https://avatars.githubusercontent.com/u/37226745?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/223', 'id': 211957086, 'node_id': 'MDU6SXNzdWUyMTE5NTcwODY=', 'number': 223, 'title': 'ERC223 token standard', 'user': {'login': 'Dexaran', 'id': 26142412, 'node_id': 'MDQ6VXNlcjI2MTQyNDEy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/26142412?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dexaran', 'html_url': 'https://github.com/Dexaran', 'followers_url': 'https://api.github.com/users/Dexaran/followers', 'following_url': 'https://api.github.com/users/Dexaran/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dexaran/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dexaran/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dexaran/subscriptions', 'organizations_url': 'https://api.github.com/users/Dexaran/orgs', 'repos_url': 'https://api.github.com/users/Dexaran/repos', 'events_url': 'https://api.github.com/users/Dexaran/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dexaran/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 290507092, 'node_id': 'MDU6TGFiZWwyOTA1MDcwOTI=', 'url': 'https://api.github.com/repos/ethereum/EIPs/labels/ERC', 'name': 'ERC', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 633, 'created_at': '2017-03-05T14:43:51Z', 'updated_at': '2018-12-13T21:21:41Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"```\\r\\nERC: 223\\r\\nTitle: Token standard\\r\\nAuthor: Dexaran, dexaran@ethereumclassic.org\\r\\nStatus: Draft\\r\\nType: ERC\\r\\nCreated: 5-03.2017\\r\\nResolution: https://github.com/Dexaran/ERC223-token-standard\\r\\nRecommended implementation: https://github.com/Dexaran/ERC223-token-standard/tree/Recommended\\r\\n```\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe following describes standard functions a token contract and contract working with specified token can implement to prevent accidentally sends of tokens to contracts and make token transactions behave like ether transactions.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nHere is a description of the ERC20 token standard problem that is solved by ERC223:\\r\\n\\r\\nERC20 token standard is leading to money losses for end users. The main problem is lack of possibility to handle incoming ERC20 transactions, that were performed via `transfer` function of ERC20 token.\\r\\n\\r\\nIf you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it cant recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.\\r\\n\\r\\nHow much ERC20 tokens are currently lost (27 Dec, 2017):\\r\\n\\r\\n1. QTUM, **$1,204,273** lost. [watch on Etherscan](https://etherscan.io/address/0x9a642d6b3368ddc662CA244bAdf32cDA716005BC)\\r\\n\\r\\n2. EOS, **$1,015,131** lost. [watch on Etherscan](https://etherscan.io/address/0x86fa049857e0209aa7d9e616f7eb3b3b78ecfdb0)\\r\\n\\r\\n3. GNT, **$249,627** lost. [watch on Etherscan](https://etherscan.io/address/0xa74476443119A942dE498590Fe1f2454d7D4aC0d)\\r\\n\\r\\n4. STORJ, **$217,477** lost. [watch on Etherscan](https://etherscan.io/address/0xe41d2489571d322189246dafa5ebde1f4699f498)\\r\\n\\r\\n5. Tronix , **$201,232** lost. [watch on Etherscan](https://etherscan.io/address/0xf230b790e05390fc8295f4d3f60332c93bed42e2)\\r\\n\\r\\n6. DGD, **$151,826** lost. [watch on Etherscan](https://etherscan.io/address/0xe0b7927c4af23765cb51314a0e0521a9645f0e2a)\\r\\n\\r\\n7. OMG, **$149,941** lost. [watch on Etherscan](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07)\\r\\n\\r\\nNOTE: These are only 8 token contracts that I know. Each Ethereum contract is a potential token trap for ERC20 tokens, thus, there are much more losses than I showed at this example.\\r\\n\\r\\nAnother disadvantages of ERC20 that ERC223 will solve: \\r\\n1. Lack of `transfer` handling possibility.\\r\\n2. Loss of tokens.\\r\\n3. Token-transactions should match Ethereum ideology of uniformity. When a user wants to transfer tokens, he should always call `transfer`. It doesn't matter if the user is depositing to a contract or sending to an externally owned account.\\r\\n\\r\\nThose will allow contracts to handle incoming token transactions and prevent accidentally sent tokens from being accepted by contracts (and stuck at contract's balance).\\r\\n\\r\\nFor example decentralized exchange will no more need to require users to call `approve` then call `deposit` (which is internally calling `transferFrom` to withdraw approved tokens). Token transaction will automatically be handled at the exchange contract.\\r\\n\\r\\nThe most important here is a call of `tokenFallback` when performing a transaction to a contract.\\r\\n\\r\\n## Specification\\r\\n\\r\\nToken\\r\\nContracts that works with tokens\\r\\n\\r\\n## Methods\\r\\n\\r\\nNOTE: An important point is that contract developers must implement `tokenFallback` if they want their contracts to work with the specified tokens.\\r\\n\\r\\nIf the receiver does not implement the `tokenFallback` function, consider the contract is not designed to work with tokens, then the transaction must fail and no tokens will be transferred. An analogy with an Ether transaction that is failing when trying to send Ether to a contract that did not implement `function() payable`.\\r\\n\\r\\n\\r\\n#### totalSupply\\r\\n\\r\\n```js\\r\\nfunction totalSupply() constant returns (uint256 totalSupply)\\r\\n```\\r\\nGet the total token supply\\r\\n\\r\\n#### name\\r\\n\\r\\n```js\\r\\nfunction name() constant returns (string _name)\\r\\n```\\r\\nGet the name of token\\r\\n\\r\\n#### symbol\\r\\n\\r\\n```js\\r\\nfunction symbol() constant returns (bytes32 _symbol)\\r\\n```\\r\\nGet the symbol of token\\r\\n\\r\\n#### decimals\\r\\n\\r\\n```js\\r\\nfunction decimals() constant returns (uint8 _decimals)\\r\\n```\\r\\nGet decimals of token\\r\\n\\r\\n#### balanceOf\\r\\n\\r\\n```js\\r\\nfunction balanceOf(address _owner) constant returns (uint256 balance)\\r\\n```\\r\\nGet the account balance of another account with address _owner\\r\\n\\r\\n\\r\\n#### transfer(address, uint)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value) returns (bool)\\r\\n```\\r\\nNeeded due to backwards compatibility reasons because of ERC20 transfer function doesn't have `bytes` parameter. This function must transfer tokens and invoke the function `tokenFallback(address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\n\\r\\n\\r\\n#### transfer(address, uint, bytes)\\r\\n\\r\\n```js\\r\\nfunction transfer(address _to, uint _value, bytes _data) returns (bool)\\r\\n```\\r\\nfunction that is always called when someone wants to transfer tokens.\\r\\nThis function must transfer tokens and invoke the function `tokenFallback (address, uint256, bytes)` in `_to`, if _to is a contract. If the `tokenFallback` function is not implemented in ` _to` (receiver contract), then the transaction must fail and the transfer of tokens should not occur. \\r\\nIf `_to` is an externally owned address, then the transaction must be sent without trying to execute ` tokenFallback` in `_to`.\\r\\n `_data` can be attached to this token transaction and it will stay in blockchain forever (requires more gas). `_data` can be empty.\\r\\n\\r\\nNOTE: The recommended way to check whether the `_to` is a contract or an address is to assemble the code of ` _to`. If there is no code in `_to`, then this is an externally owned address, otherwise it's a contract.\\r\\n\\r\\n## Events\\r\\n\\r\\n#### Transfer\\r\\n\\r\\n```js\\r\\nevent Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)\\r\\n```\\r\\nTriggered when tokens are transferred.\\r\\n\\r\\n## Contract to work with tokens\\r\\n\\r\\n```js\\r\\nfunction tokenFallback(address _from, uint _value, bytes _data)\\r\\n```\\r\\nA function for handling token transfers, which is called from the token contract, when a token holder sends tokens. `_from` is the address of the sender of the token,` _value` is the amount of incoming tokens, and `_data` is attached data similar to` msg.data` of Ether transactions. It works by analogy with the fallback function of Ether transactions and returns nothing.\\r\\n\\r\\nNOTE: `msg.sender` will be a token-contract inside the `tokenFallback` function. It may be important to filter which tokens are sent (by token-contract address). The token sender (the person who initiated the token transaction) will be `_from` inside the` tokenFallback` function.\\r\\n\\r\\nIMPORTANT: This function must be named `tokenFallback` and take parameters` address`, `uint256`,` bytes` to match the [function signature](https://www.4byte.directory/signatures/?bytes4_signature=0xc0ee0b8a) `0xc0ee0b8a`.\\r\\n\\r\\n## Recommended implementation\\r\\nThis is highly recommended implementation of ERC 223 token: https://github.com/Dexaran/ERC23-tokens/tree/Recommended\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447125011', 'html_url': 'https://github.com/ethereum/EIPs/issues/223#issuecomment-447125011', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/223', 'id': 447125011, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNTAxMQ==', 'user': {'login': 'binary-adam', 'id': 37226745, 'node_id': 'MDQ6VXNlcjM3MjI2NzQ1', 'avatar_url': 'https://avatars3.githubusercontent.com/u/37226745?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/binary-adam', 'html_url': 'https://github.com/binary-adam', 'followers_url': 'https://api.github.com/users/binary-adam/followers', 'following_url': 'https://api.github.com/users/binary-adam/following{/other_user}', 'gists_url': 'https://api.github.com/users/binary-adam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/binary-adam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/binary-adam/subscriptions', 'organizations_url': 'https://api.github.com/users/binary-adam/orgs', 'repos_url': 'https://api.github.com/users/binary-adam/repos', 'events_url': 'https://api.github.com/users/binary-adam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/binary-adam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:21:41Z', 'updated_at': '2018-12-13T21:21:41Z', 'author_association': 'NONE', 'body': \"@Enelar You have to check msg.sender to find out what kind of token you have received anyway, msg.sender is authoritative on which tokens you own, so trusting it to tell you which you've received is no increase in trust.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:21:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751118694', 'type': 'ReleaseEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'published', 'release': {'url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194', 'assets_url': 'https://api.github.com/repos/ethereum/py-evm/releases/14526194/assets', 'upload_url': 'https://uploads.github.com/repos/ethereum/py-evm/releases/14526194/assets{?name,label}', 'html_url': 'https://github.com/ethereum/py-evm/releases/tag/trinity-v0.1.0-alpha.20', 'id': 14526194, 'node_id': 'MDc6UmVsZWFzZTE0NTI2MTk0', 'tag_name': 'trinity-v0.1.0-alpha.20', 'target_commitish': 'master', 'name': 'Trinity v0.1.0-alpha.20 \"Elpis Kesaratsian\"', 'draft': False, 'author': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'prerelease': True, 'created_at': '2018-12-13T20:40:37Z', 'published_at': '2018-12-13T21:17:43Z', 'assets': [], 'tarball_url': 'https://api.github.com/repos/ethereum/py-evm/tarball/trinity-v0.1.0-alpha.20', 'zipball_url': 'https://api.github.com/repos/ethereum/py-evm/zipball/trinity-v0.1.0-alpha.20', 'body': 'This is our seventh major alpha release of the Trinity Ethereum client. This release goes out under the name \"Elpis Kesaratsian\".\\r\\n\\r\\n> With each release we like to highlight one of the amazing women from history and present day.\\r\\n Meet [Elpis Kesaratsian](https://en.wikipedia.org/wiki/Constantinople#Women_in_Literature), who was a ground-breaking author and editor in Constantinople in the 1800s.\\r\\n\\r\\nThe most notable update in this release is full Constantinople support, including the mainnet transition to Constantinople on block 7080000.\\r\\n\\r\\nAnother significant new feature is support for genesis files following this [proposed format](https://github.com/ethereum/EIPs/issues/1085).\\r\\n\\r\\nIncluded in this release is a variety of improvements to performance, testing, and documentation.\\r\\n\\r\\nThe research team continues to add significant code in preparation for the Beacon Chain protocol of Eth2.0, which is not available yet in `trinity`, but keep checking in.\\r\\n\\r\\nSee the [full release notes here](https://py-evm.readthedocs.io/en/latest/release_notes/trinity.html#alpha-20)\\r\\n\\r\\nSee the [quickstart guide here](https://py-evm.readthedocs.io/en/latest/quickstart.html) for information on how to install and run the Trinity client.\\r\\n\\r\\n---\\r\\n\\r\\nYou may note that we skipped a couple alpha version numbers. A release hiccup caused a broken genesis definition for mainnet/ropsten. Forgive us?\\r\\n\\r\\n![messy love](https://www.aspca.org/sites/default/files/dog-care_common-dog-behavior-problems_overcoming-separation-anxiety_main-image.jpg)'}}, 'public': True, 'created_at': '2018-12-13T21:17:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115475', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085', 'pull_request_review_id': 184871603, 'id': 241564085, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2NDA4NQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.\\n \"\"\"\\n- return hash(\\n- current_validator_registry_delta_chain_tip +\\n- bytes1(flag) +\\n- bytes3(index) +\\n- bytes48(pubkey)\\n+ return hash_tree_root(\\n+ ValidatorRegistryDeltaBlock(\\n+ current_validator_registry_delta_chain_tip,', 'path': 'specs/core/0_beacon-chain.md', 'position': 70, 'original_position': 70, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': '`validator_registry_delta_chain_tip= current_validator_registry_delta_chain_tip,`', 'created_at': '2018-12-13T21:16:31Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241564085'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241564085'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115473', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961', 'pull_request_review_id': 184871603, 'id': 241563961, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2Mzk2MQ==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,\\n pubkey: int,\\n flag: int) -> Hash32:\\n \"\"\"\\n- Compute the next hash in the validator registry delta hash chain.\\n+ Compute the next root in the validator registry delta hash chain.', 'path': 'specs/core/0_beacon-chain.md', 'position': 61, 'original_position': 61, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'delta hash chain => delta root chain', 'created_at': '2018-12-13T21:16:04Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563961'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563961'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:16:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751115470', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597', 'pull_request_review_id': 184871603, 'id': 241563597, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU2MzU5Nw==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I would simply reuse `DepositInput `with `proof_of_possession` set to `[0, 0]`.', 'created_at': '2018-12-13T21:14:57Z', 'updated_at': '2018-12-13T21:17:05Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241563597'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241563597'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:17:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:14:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751109453', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'open', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:15:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T20:41:53Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:15:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751105603', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'id': 389074923, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MTY0MTM2', 'number': 18264, 'title': 'crypto/secp256k1: Created SignatureLength constant + refactor throughout', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-09T23:06:12Z', 'updated_at': '2018-12-13T21:15:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18264', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18264.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18264.patch'}, 'body': 'Also added PubkeyLength and DigestLength and RecoveryIDOffset, to avoid harcoded numbers'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447123122', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18264#issuecomment-447123122', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18264', 'id': 447123122, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMzEyMg==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:15:10Z', 'updated_at': '2018-12-13T21:15:10Z', 'author_association': 'CONTRIBUTOR', 'body': '@holiman @karalabe can we reconsider? Thanks.'}}, 'public': True, 'created_at': '2018-12-13T21:15:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097538', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'id': 384010288, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'number': 1515, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T21:13:35Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch'}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122639', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#issuecomment-447122639', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'id': 447122639, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzOQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:35Z', 'updated_at': '2018-12-13T21:13:35Z', 'author_association': 'MEMBER', 'body': 'I took some additional liberties here: https://github.com/rayrapetyan/py-evm/pull/2'}}, 'public': True, 'created_at': '2018-12-13T21:13:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751097418', 'type': 'IssueCommentEvent', 'actor': {'id': 13686139, 'login': 'AlexeyAkhunov', 'display_login': 'AlexeyAkhunov', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'avatar_url': 'https://avatars.githubusercontent.com/u/13686139?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593', 'id': 390752954, 'node_id': 'MDU6SXNzdWUzOTA3NTI5NTQ=', 'number': 1593, 'title': 'Build warp sync based state sync as a plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983630187, 'node_id': 'MDU6TGFiZWw5ODM2MzAxODc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E3%20weeks', 'name': 'effort: E3 weeks', 'color': 'bfe5bf', 'default': False}, {'id': 983628230, 'node_id': 'MDU6TGFiZWw5ODM2MjgyMzA=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P3%20important', 'name': 'prio: P3 important', 'color': 'fad8c7', 'default': False}, {'id': 983628532, 'node_id': 'MDU6TGFiZWw5ODM2Mjg1MzI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P4%20nice%20to%20have', 'name': 'prio: P4 nice to have', 'color': 'fef2c0', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T16:17:46Z', 'updated_at': '2018-12-13T21:13:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nOne of the most challenging problems for all of the existing Ethereum 1 client implementations today is how to keep the state sync fast.\\r\\n\\r\\nThe reason for that is not so much the pure size of the state (currently ~9GB) but rather the number of trie nodes which is somewhere above 200 million. As far as I understand there are various reasons why syncing these is hard:\\r\\n\\r\\n1. The networking protocol that is being used does only allow up to `n` (need to lookup) trie nodes to be fetched per request\\r\\n\\r\\n2. Client nodes that aren't archive nodes prune past state after `n` bocks which means there is only a limited amount of time until it becomes very hard to find the trie nodes on the network.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nA while back parity introduces *warp sync* sync to speed up the entire syncing process. For the sake of simplicity, I'll focus on how to use warp sync to just sync the state and why this would not compromise security.\\r\\n\\r\\nWarp sync works by taking a snapshot of the entire chain + state every 5000 blocks and making that available to other peers through an extension of the existing wire protocol.\\r\\n\\r\\nThe snapshot is divided into a *snapshot manifest* and the actual *snapshot data*. All of that is RLP encoded data.\\r\\n\\r\\n**Manifest**\\r\\n\\r\\n```\\r\\n[\\r\\n version: P, // snapshot format version. Must be set to 2.\\r\\n state_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the state chunks in this snapshot\\r\\n block_hashes: [hash_1: B_32, hash_2: B_32, ...], // a list of all the block chunks in this snapshot\\r\\n state_root: B_32, // the root which the rebuilt state trie should have. used to ensure validity\\r\\n block_number: P, // the number of the best block in the snapshot; the one which the state coordinates to.\\r\\n block_hash: B_32, // the best block in the snapshot's hash.\\r\\n]\\r\\n``` \\r\\n\\r\\nAs we can see, the manifest contains the `state_root` as well as `state_hashes` for state chunks of 4 MB.\\r\\n\\r\\nWhat we can do is to request the state for a given `state_root` by fetching these 4 MB chunks and then ensuring integrity by recomputing the `state_root` from the entire state once we've fetched all pieces.\\r\\n\\r\\nIn terms of security this would be pretty identical to the existing state sync and the worst thing that could happen is that we can only fully ensure the integrity once we've finished downloading the entire state.\\r\\n\\r\\nOr to say cite @AlexeyAkhunov on the topic\\r\\n\\r\\n>Warp sync is pretty much equivalent to fast sync in terms of trust required. What you do when you warp sync, is downloading these (7Gb?) data, then compute Patricia Merkle tree over this, and check that the state root is the same as in the block header. Done. With the fast sync (current geth's method), you build the state trie from the nodes you receive over the network, and in the end you are also sure that you have the state matching the state root in the block header. The main difference is that when you warp sync, you have to download ALL 7Gb before you are sure you are actually downloading the state, and not some random data, wheres with the fast sync, you pretty much know that you are downloading correct stuff as you do it. If the fast sync peer sends you rubbish, you will realise very quickly without having to download gigabytes\\r\\n\\r\\nI'm not proposing to make this the default state sync strategy (as it is non-standard for the time being) but I *think* this could be useful as a plugin to give a user an alternative option for a fast(er) state sync.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447122632', 'html_url': 'https://github.com/ethereum/py-evm/issues/1593#issuecomment-447122632', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1593', 'id': 447122632, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMjYzMg==', 'user': {'login': 'AlexeyAkhunov', 'id': 13686139, 'node_id': 'MDQ6VXNlcjEzNjg2MTM5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13686139?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AlexeyAkhunov', 'html_url': 'https://github.com/AlexeyAkhunov', 'followers_url': 'https://api.github.com/users/AlexeyAkhunov/followers', 'following_url': 'https://api.github.com/users/AlexeyAkhunov/following{/other_user}', 'gists_url': 'https://api.github.com/users/AlexeyAkhunov/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AlexeyAkhunov/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AlexeyAkhunov/subscriptions', 'organizations_url': 'https://api.github.com/users/AlexeyAkhunov/orgs', 'repos_url': 'https://api.github.com/users/AlexeyAkhunov/repos', 'events_url': 'https://api.github.com/users/AlexeyAkhunov/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AlexeyAkhunov/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:13:33Z', 'updated_at': '2018-12-13T21:13:33Z', 'author_association': 'NONE', 'body': '> Am I write to assume that in order to verify the chunks I need to have them in order? So, if I fetch lots of chunks in parallel, and I have gaps, then I need to fill out the gaps before I can verify those because the proofs do not work individually but only in conjunction with the neighbor. Or am I totally off with that?\\r\\n\\r\\nNo, chunks can be delivered in any order, because each of them have a proof\\r\\n\\r\\n> this would be something entirely new that needs to be adopted\\r\\n\\r\\nYes, correct, but if this format turns out to be superior to both others, we can get it adopted reasonably quickly.\\r\\n\\r\\n> But if your proposed scheme does indeed work and improve the speed of the state sync, I guess it would be worth drafting an EIP for that :)\\r\\n\\r\\nOk, lets do a quick PoC and then EIP'}}, 'public': True, 'created_at': '2018-12-13T21:13:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751081989', 'type': 'IssueCommentEvent', 'actor': {'id': 11574521, 'login': 'jpeletier', 'display_login': 'jpeletier', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'avatar_url': 'https://avatars.githubusercontent.com/u/11574521?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'id': 389822377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzI0ODI3', 'number': 18283, 'title': 'swarm/storage: remove unused methods from Chunk interface', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-11T15:37:17Z', 'updated_at': '2018-12-13T21:10:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18283', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18283.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18283.patch'}, 'body': 'I found out three methods of the `storage.Chunk` interface were unused. Two of them only used by a test.\\r\\nRemoved these to simplify code and interface'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447121738', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18283#issuecomment-447121738', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18283', 'id': 447121738, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTczOA==', 'user': {'login': 'jpeletier', 'id': 11574521, 'node_id': 'MDQ6VXNlcjExNTc0NTIx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/11574521?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jpeletier', 'html_url': 'https://github.com/jpeletier', 'followers_url': 'https://api.github.com/users/jpeletier/followers', 'following_url': 'https://api.github.com/users/jpeletier/following{/other_user}', 'gists_url': 'https://api.github.com/users/jpeletier/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jpeletier/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jpeletier/subscriptions', 'organizations_url': 'https://api.github.com/users/jpeletier/orgs', 'repos_url': 'https://api.github.com/users/jpeletier/repos', 'events_url': 'https://api.github.com/users/jpeletier/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jpeletier/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:10:34Z', 'updated_at': '2018-12-13T21:10:34Z', 'author_association': 'CONTRIBUTOR', 'body': \"@nolash No, not particularly about `ResetWithLength`. It is that code throughout is doing manually and on their own what those unused functions do, which is to give you the payload and the header separately. This can make sense for content-addressed chunks but does not make sense for Feeds. So Feeds does not use those functions and not even the rest of the code that was supposed to use them are using them anyway.\\r\\n\\r\\nSo here is the assessment:\\r\\n* `Payload()` and `SpanBytes()` are only used in tests\\r\\n* `Span()` is unused and untested.\\r\\n\\r\\nActual code dealing with content-addressed chunks just does the `[:8]`, `[8:]` header thing manually.\\r\\nIn Feeds, this 8 byte header concept is not present, since a Feeds chunk header is completely different.\\r\\n\\r\\nI think the pattern that is emerging here is that there is a base layer that gives you address+data, but higher layers have different needs. The content-addressed layer just needs to encode the length in those 8 header bytes, but Feeds for example has a number of other headers. My opinion is that those higher layers should care about their own business in their code.\\r\\n\\r\\nPerhaps a possible way to go for the future would be:\\r\\n```go\\r\\ntype Chunk interface {\\r\\n\\tAddress() Address\\r\\n\\tData() []byte\\r\\n}\\r\\n\\r\\ntype ContentAddressedChunk interface {\\r\\n\\tChunk\\r\\n\\tPayload() []byte\\r\\n\\tSpanBytes() []byte\\r\\n\\tSpan() int64\\r\\n}\\r\\n```\\r\\nand maybe ...\\r\\n```go\\r\\ntype FeedChunk interface {\\r\\n\\tChunk\\r\\n\\tEpoch()\\r\\n\\tTopic()\\r\\n//... etc\\r\\n}\\r\\n\\r\\n```\\r\\n... though I wouldn't add `ContentAddressedChunk` or anything yet, only when really needed. For now, my stance would be to get rid of all this unused stuff.\"}}, 'public': True, 'created_at': '2018-12-13T21:10:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751077292', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 15, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:09:42Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447121498', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447121498', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447121498, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMTQ5OA==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:09:42Z', 'updated_at': '2018-12-13T21:09:42Z', 'author_association': 'CONTRIBUTOR', 'body': 'That said...\\r\\n\\r\\n> and would love to use a suggestion from veox, since he contributed so much to the release\\r\\n\\r\\nI would argue \"no, I didn\\'t\", and y\\'all contributed much more. So - no need to use this suggestion at all; it\\'s just that. ^_^'}}, 'public': True, 'created_at': '2018-12-13T21:09:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751058588', 'type': 'IssueCommentEvent', 'actor': {'id': 3036030, 'login': 'veox', 'display_login': 'veox', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'avatar_url': 'https://avatars.githubusercontent.com/u/3036030?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 14, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:06:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447120507', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447120507', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447120507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyMDUwNw==', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:06:11Z', 'updated_at': '2018-12-13T21:06:11Z', 'author_association': 'CONTRIBUTOR', 'body': 'Well, of women from times when Constantinople was no longer Byzantium and not yet Istanbul - from 330 to 1453, [according to Wikipedia](https://en.wikipedia.org/wiki/Constantinople) (see disambiguation at top), - Empress Theodora is the only other I could find (so far).\\r\\n\\r\\nIn particular, the section on [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n-----\\r\\n\\r\\nI\\'m reasonably sure there\\'s not that many woman figures be found in (ancient) history (as a percentage of total); and anything that can be found will necessarily be spectacular in one way or another - quite likely with a bit of violence involved. (There will always be more cathedrals built than destroyed, so the latter are more likely to be \"out of the ordinary.\")'}}, 'public': True, 'created_at': '2018-12-13T21:06:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" + "[{'id': '8754525909', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241732132', 'pull_request_review_id': 185079152, 'id': 241732132, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTczMjEzMg==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': None, 'original_position': 24, 'commit_id': '714cb78794902d611f922aa52241baec2d9e8622', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Or if you don't want the member to be default-constructed of course :-).\", 'created_at': '2018-12-14T11:58:58Z', 'updated_at': '2018-12-14T11:58:58Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241732132', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241732132'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241732132'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T11:58:58Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '75667d52ed11b5b61047b9d43564f835408d92d3', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '714cb78794902d611f922aa52241baec2d9e8622', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:58:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754519640', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241731810', 'pull_request_review_id': 185078726, 'id': 241731810, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTczMTgxMA==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': None, 'original_position': 24, 'commit_id': '714cb78794902d611f922aa52241baec2d9e8622', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Are you sure? I'm pretty certain that it'd be *exactly* the same, if you would just use ``std::string message;`` - in both cases it will default construct even without defining a constructor. You only need to member-initialize for PODs or types that are not default-constructible.\", 'created_at': '2018-12-14T11:57:37Z', 'updated_at': '2018-12-14T11:57:37Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241731810', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241731810'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241731810'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T11:57:37Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '75667d52ed11b5b61047b9d43564f835408d92d3', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '714cb78794902d611f922aa52241baec2d9e8622', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:57:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754506804', 'type': 'IssueCommentEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1130', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1130/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1130/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1130/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1130', 'id': 346400020, 'node_id': 'MDU6SXNzdWUzNDY0MDAwMjA=', 'number': 1130, 'title': 'Hive Integration', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 37, 'created_at': '2018-07-31T23:58:01Z', 'updated_at': '2018-12-14T11:54:59Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nTrinity is not included on hive tests: http://hivetests.ethstats.net/\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nInformation on where to get started:\\r\\n\\r\\n- See https://github.com/karalabe/hive/blob/master/README.md\\r\\n- Here's the old pyethereum integration: https://github.com/karalabe/hive/tree/master/clients/pyethereum:develop\\r\\n- Here's how geth integration looks: https://github.com/karalabe/hive/tree/master/clients/go-ethereum:master\\r\\n\\r\\nOne dockerfile, and one shellscript to init, load blocks, and start rpc services.\\r\\nThe shellscript translates env vars into client-specific configuration\\r\\n\\r\\n(Info courtesy of @holiman and of course, karalabe)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447303495', 'html_url': 'https://github.com/ethereum/py-evm/issues/1130#issuecomment-447303495', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1130', 'id': 447303495, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzMwMzQ5NQ==', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:54:59Z', 'updated_at': '2018-12-14T11:54:59Z', 'author_association': 'NONE', 'body': \"Re: Hive pls note that the fszendzielarz/hive fork is now defunct and the trinity stuff I added is in the Ethereum/hive repo. I haven't looked at it since the last time I hit a wall with getting the enode, so I think there's still open work in supplying the trinity clients with blockchains to datadir before the containers can be used in consensus tests. \\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T11:54:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754492255', 'type': 'IssueCommentEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 147740703, 'name': 'ethereum/twig', 'url': 'https://api.github.com/repos/ethereum/twig'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/twig/issues/11', 'repository_url': 'https://api.github.com/repos/ethereum/twig', 'labels_url': 'https://api.github.com/repos/ethereum/twig/issues/11/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/twig/issues/11/comments', 'events_url': 'https://api.github.com/repos/ethereum/twig/issues/11/events', 'html_url': 'https://github.com/ethereum/twig/pull/11', 'id': 386796799, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1NDMwNDY4', 'number': 11, 'title': 'Update compiler to include runtime bytecode & `Compiler.get_simple_manifest()`', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-03T12:30:52Z', 'updated_at': '2018-12-14T11:52:02Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/twig/pulls/11', 'html_url': 'https://github.com/ethereum/twig/pull/11', 'diff_url': 'https://github.com/ethereum/twig/pull/11.diff', 'patch_url': 'https://github.com/ethereum/twig/pull/11.patch'}, 'body': \"## What was wrong?\\r\\nAuto-generated vyper compiler output wasn't including the `runtime_bytecode`, which is fairly useful in certain situations - ex. verification of on-chain code\\r\\n\\r\\nWrote a `Compiler` method that will generate a quick-n-dirty manifest for the `Compiler` contracts\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![image](https://user-images.githubusercontent.com/9753150/49373799-9ca5b900-f6ff-11e8-9e06-de297dd33e02.png)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/twig/issues/comments/447302862', 'html_url': 'https://github.com/ethereum/twig/pull/11#issuecomment-447302862', 'issue_url': 'https://api.github.com/repos/ethereum/twig/issues/11', 'id': 447302862, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzMwMjg2Mg==', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:52:02Z', 'updated_at': '2018-12-14T11:52:02Z', 'author_association': 'COLLABORATOR', 'body': '@pipermerriam ping in case this got buried'}}, 'public': True, 'created_at': '2018-12-14T11:52:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754489462', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137663541, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '1ba0f06d51827f89b08a5c026007bd4607de9f22', 'before': 'ab95f802dc710025784de90de19caf86edc7f6f9', 'commits': [{'sha': '1ba0f06d51827f89b08a5c026007bd4607de9f22', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/1ba0f06d51827f89b08a5c026007bd4607de9f22'}]}, 'public': True, 'created_at': '2018-12-14T11:51:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754489149', 'type': 'IssueCommentEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-14T11:51:24Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447302740', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447302740', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447302740, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzMwMjc0MA==', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:51:24Z', 'updated_at': '2018-12-14T11:51:24Z', 'author_association': 'COLLABORATOR', 'body': \"If y'all are up for it, it'd be helpful to schedule a short call and discuss/whiteboard the general api we're aiming for, and the lines between `pte`/`web3`. (though, with xmas break coming up soon, i'm also down to punt till early january when i'm fresh and less likely to forget everything we talk about/decide on over break)\"}}, 'public': True, 'created_at': '2018-12-14T11:51:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754482454', 'type': 'PushEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137659614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '071aa2a4c4ddb2cb1882f5554dddd613a4429a09', 'before': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'commits': [{'sha': '071aa2a4c4ddb2cb1882f5554dddd613a4429a09', 'author': {'email': 'chihchengliang@gmail.com', 'name': 'Chih Cheng Liang'}, 'message': 'Fix #1582, Special -> operations and rework beacon block (#1585)\\n\\n* delete special_records and add casper_slashings\\r\\n\\r\\n* add a crappy Deposit\\r\\n\\r\\n* fix attestation block exit proposer_slashings and add tests\\r\\n\\r\\n* fix linting error by removing unused block_proposal.py\\r\\n\\r\\n* split deposits, deposit_data, deposit_parameters, casper_slashings, and slashable_vote_data out\\r\\n\\r\\n* fix validator_index in Exit\\r\\n\\r\\n* replace ancestor_hashes and parent_hash with parent_root, reorder BeaconBlockBody attestation field, and fix comments\\r\\n\\r\\n* use tuple as default parameter\\r\\n\\r\\n* remove kwargs for performance\\r\\n\\r\\n* make flake8 happy\\r\\n\\r\\n* more ancestor_hashes to parent_root, and rework get_pseudo_chain\\r\\n\\r\\n* update casper_slashings to reflect ethereum/eth2.0-specs/pull/301\\r\\n\\r\\n* refactor get_pseudo_chain to yield\\r\\n\\r\\n* flake8\\r\\n\\r\\n* fix create_test_block\\r\\n\\r\\n* fix child.parent_root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/071aa2a4c4ddb2cb1882f5554dddd613a4429a09'}]}, 'public': True, 'created_at': '2018-12-14T11:50:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754482217', 'type': 'PullRequestEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1585, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585', 'id': 238032827, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDMyODI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1585', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1585.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1585.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1585', 'number': 1585, 'state': 'closed', 'locked': False, 'title': 'Fix #1582, Special -> operations and rework beacon block', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nFix #1582\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n1. Add the new data structures:\\r\\n - `CasperSlashing`\\r\\n - `SlashableVoteData`\\r\\n - `Deposit`\\r\\n - Change `DepositParametersRecord` -> `DepositParameters` \\r\\n - `Exit`\\r\\n2. Implement `BeaconBlockBody`\\r\\n3. Update `BeaconBlock`: replace specials with `BeaconBlockBody`\\r\\n\\r\\nAlso, additional fixes in this PR but not mentioned in the issue:\\r\\n\\r\\n- Rename the `AttestationRecord ` to `Attestation`\\r\\n- Introduce `DepositData` that is not in the spec. But it is a nested field in `Deposit`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://img-9gag-fun.9cache.com/photo/aXxQ4LV_700bwp.webp)\\r\\n', 'created_at': '2018-12-12T13:14:20Z', 'updated_at': '2018-12-14T11:49:58Z', 'closed_at': '2018-12-14T11:49:58Z', 'merged_at': '2018-12-14T11:49:58Z', 'merge_commit_sha': '071aa2a4c4ddb2cb1882f5554dddd613a4429a09', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1585/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/c9fca7e5e953976a02d0160dddb92514128b9985', 'head': {'label': 'ChihChengLiang:special->operations-and-rework-beacon-block', 'ref': 'special->operations-and-rework-beacon-block', 'sha': 'c9fca7e5e953976a02d0160dddb92514128b9985', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112069563, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIwNjk1NjM=', 'name': 'py-evm', 'full_name': 'ChihChengLiang/py-evm', 'private': False, 'owner': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ChihChengLiang/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/ChihChengLiang/py-evm', 'forks_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ChihChengLiang/py-evm/deployments', 'created_at': '2017-11-26T09:10:42Z', 'updated_at': '2017-11-26T09:10:44Z', 'pushed_at': '2018-12-14T11:39:29Z', 'git_url': 'git://github.com/ChihChengLiang/py-evm.git', 'ssh_url': 'git@github.com:ChihChengLiang/py-evm.git', 'clone_url': 'https://github.com/ChihChengLiang/py-evm.git', 'svn_url': 'https://github.com/ChihChengLiang/py-evm', 'homepage': '', 'size': 6464, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'casper'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T11:29:04Z', 'pushed_at': '2018-12-14T11:49:58Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 753, 'watchers_count': 753, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 161, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 161, 'watchers': 753, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1585'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1585'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1585/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1585/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/c9fca7e5e953976a02d0160dddb92514128b9985'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 13, 'maintainer_can_modify': False, 'commits': 16, 'additions': 528, 'deletions': 263, 'changed_files': 33}}, 'public': True, 'created_at': '2018-12-14T11:49:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754482205', 'type': 'IssuesEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1582', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1582/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1582/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1582/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1582', 'id': 390086032, 'node_id': 'MDU6SXNzdWUzOTAwODYwMzI=', 'number': 1582, 'title': 'Specials -> Operations and rework `BeaconBlock`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 769749869, 'node_id': 'MDU6TGFiZWw3Njk3NDk4Njk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/eth2.0', 'name': 'eth2.0', 'color': 'ff95ca', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T06:42:30Z', 'updated_at': '2018-12-14T11:49:58Z', 'closed_at': '2018-12-14T11:49:58Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n`Specials` data (exit messages, slashings, ... ) are replaced with [new operations schema](https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#beacon-chain-operations)\\r\\n\\r\\n### How can it be fixed\\r\\n1. Add the new data structures:\\r\\n 1. `CasperSlashing`\\r\\n 2. `SlashableVoteData`\\r\\n 3. `Deposit`\\r\\n 4. Change `DepositParametersRecord` -> `DepositParameters` (Although I'd like to rename it from the spec soon)\\r\\n 5. `Exit`\\r\\n2. Implement `BeaconBlockBody`\\r\\n3. Update `BeaconBlock`: replace `specials` with `BeaconBlockBody`\\r\\n\\r\\nNote that for `BeaconChainDB`, we still just store the whole `BeaconBlock`, at least for now.\"}}, 'public': True, 'created_at': '2018-12-14T11:49:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754476425', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137656341, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'db186d35afa12724b2d131c3e31f68361b275b4c', 'before': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'commits': [{'sha': 'db186d35afa12724b2d131c3e31f68361b275b4c', 'author': {'email': '33515470+FrankSzendzielarz@users.noreply.github.com', 'name': 'Frank Szendzielarz'}, 'message': 'Chain tools (#161)\\n\\n* Chain tools added\\r\\n\\r\\n* Include devp2p fix to compensate for modified API\\r\\n\\r\\n* Update README.md\\r\\n\\r\\nCo-Authored-By: FrankSzendzielarz <33515470+FrankSzendzielarz@users.noreply.github.com>', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/db186d35afa12724b2d131c3e31f68361b275b4c'}]}, 'public': True, 'created_at': '2018-12-14T11:48:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754476344', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'number': 161, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'closed', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-14T11:48:47Z', 'closed_at': '2018-12-14T11:48:47Z', 'merged_at': '2018-12-14T11:48:47Z', 'merge_commit_sha': 'db186d35afa12724b2d131c3e31f68361b275b4c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:48:47Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 23, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 23, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:48:47Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 23, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 23, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/4d6ac7e8d067b2a5bea6b630fc6a86b427429259'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 3, 'additions': 338, 'deletions': 4, 'changed_files': 5}}, 'public': True, 'created_at': '2018-12-14T11:48:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754473992', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137655043, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ab95f802dc710025784de90de19caf86edc7f6f9', 'before': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'commits': [{'sha': 'ab95f802dc710025784de90de19caf86edc7f6f9', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/ab95f802dc710025784de90de19caf86edc7f6f9'}]}, 'public': True, 'created_at': '2018-12-14T11:48:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754469379', 'type': 'ForkEvent', 'actor': {'id': 2289647, 'login': 'sot528', 'display_login': 'sot528', 'gravatar_id': '', 'url': 'https://api.github.com/users/sot528', 'avatar_url': 'https://avatars.githubusercontent.com/u/2289647?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'forkee': {'id': 161777630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Nzc2MzA=', 'name': 'EIPs', 'full_name': 'sot528/EIPs', 'private': False, 'owner': {'login': 'sot528', 'id': 2289647, 'node_id': 'MDQ6VXNlcjIyODk2NDc=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/2289647?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sot528', 'html_url': 'https://github.com/sot528', 'followers_url': 'https://api.github.com/users/sot528/followers', 'following_url': 'https://api.github.com/users/sot528/following{/other_user}', 'gists_url': 'https://api.github.com/users/sot528/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sot528/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sot528/subscriptions', 'organizations_url': 'https://api.github.com/users/sot528/orgs', 'repos_url': 'https://api.github.com/users/sot528/repos', 'events_url': 'https://api.github.com/users/sot528/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sot528/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sot528/EIPs', 'description': 'The Ethereum Improvement Proposal repository', 'fork': True, 'url': 'https://api.github.com/repos/sot528/EIPs', 'forks_url': 'https://api.github.com/repos/sot528/EIPs/forks', 'keys_url': 'https://api.github.com/repos/sot528/EIPs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sot528/EIPs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sot528/EIPs/teams', 'hooks_url': 'https://api.github.com/repos/sot528/EIPs/hooks', 'issue_events_url': 'https://api.github.com/repos/sot528/EIPs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sot528/EIPs/events', 'assignees_url': 'https://api.github.com/repos/sot528/EIPs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sot528/EIPs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sot528/EIPs/tags', 'blobs_url': 'https://api.github.com/repos/sot528/EIPs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sot528/EIPs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sot528/EIPs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sot528/EIPs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sot528/EIPs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sot528/EIPs/languages', 'stargazers_url': 'https://api.github.com/repos/sot528/EIPs/stargazers', 'contributors_url': 'https://api.github.com/repos/sot528/EIPs/contributors', 'subscribers_url': 'https://api.github.com/repos/sot528/EIPs/subscribers', 'subscription_url': 'https://api.github.com/repos/sot528/EIPs/subscription', 'commits_url': 'https://api.github.com/repos/sot528/EIPs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sot528/EIPs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sot528/EIPs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sot528/EIPs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sot528/EIPs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sot528/EIPs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sot528/EIPs/merges', 'archive_url': 'https://api.github.com/repos/sot528/EIPs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sot528/EIPs/downloads', 'issues_url': 'https://api.github.com/repos/sot528/EIPs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sot528/EIPs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sot528/EIPs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sot528/EIPs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sot528/EIPs/labels{/name}', 'releases_url': 'https://api.github.com/repos/sot528/EIPs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sot528/EIPs/deployments', 'created_at': '2018-12-14T11:47:25Z', 'updated_at': '2018-12-14T08:11:46Z', 'pushed_at': '2018-12-13T20:09:23Z', 'git_url': 'git://github.com/sot528/EIPs.git', 'ssh_url': 'git@github.com:sot528/EIPs.git', 'clone_url': 'https://github.com/sot528/EIPs.git', 'svn_url': 'https://github.com/sot528/EIPs', 'homepage': 'http://eips.ethereum.org/', 'size': 2903, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:47:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754466898', 'type': 'ForkEvent', 'actor': {'id': 16860673, 'login': 'nguyenlyminhman', 'display_login': 'nguyenlyminhman', 'gravatar_id': '', 'url': 'https://api.github.com/users/nguyenlyminhman', 'avatar_url': 'https://avatars.githubusercontent.com/u/16860673?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'forkee': {'id': 161777563, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Nzc1NjM=', 'name': 'solidity', 'full_name': 'nguyenlyminhman/solidity', 'private': False, 'owner': {'login': 'nguyenlyminhman', 'id': 16860673, 'node_id': 'MDQ6VXNlcjE2ODYwNjcz', 'avatar_url': 'https://avatars0.githubusercontent.com/u/16860673?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nguyenlyminhman', 'html_url': 'https://github.com/nguyenlyminhman', 'followers_url': 'https://api.github.com/users/nguyenlyminhman/followers', 'following_url': 'https://api.github.com/users/nguyenlyminhman/following{/other_user}', 'gists_url': 'https://api.github.com/users/nguyenlyminhman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nguyenlyminhman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nguyenlyminhman/subscriptions', 'organizations_url': 'https://api.github.com/users/nguyenlyminhman/orgs', 'repos_url': 'https://api.github.com/users/nguyenlyminhman/repos', 'events_url': 'https://api.github.com/users/nguyenlyminhman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nguyenlyminhman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/nguyenlyminhman/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': True, 'url': 'https://api.github.com/repos/nguyenlyminhman/solidity', 'forks_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/forks', 'keys_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/teams', 'hooks_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/events', 'assignees_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/tags', 'blobs_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/subscription', 'commits_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/merges', 'archive_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/downloads', 'issues_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/nguyenlyminhman/solidity/deployments', 'created_at': '2018-12-14T11:46:51Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/nguyenlyminhman/solidity.git', 'ssh_url': 'git@github.com:nguyenlyminhman/solidity.git', 'clone_url': 'https://github.com/nguyenlyminhman/solidity.git', 'svn_url': 'https://github.com/nguyenlyminhman/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:46:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754462601', 'type': 'ForkEvent', 'actor': {'id': 16860673, 'login': 'nguyenlyminhman', 'display_login': 'nguyenlyminhman', 'gravatar_id': '', 'url': 'https://api.github.com/users/nguyenlyminhman', 'avatar_url': 'https://avatars.githubusercontent.com/u/16860673?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161777449, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Nzc0NDk=', 'name': 'go-ethereum', 'full_name': 'nguyenlyminhman/go-ethereum', 'private': False, 'owner': {'login': 'nguyenlyminhman', 'id': 16860673, 'node_id': 'MDQ6VXNlcjE2ODYwNjcz', 'avatar_url': 'https://avatars0.githubusercontent.com/u/16860673?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nguyenlyminhman', 'html_url': 'https://github.com/nguyenlyminhman', 'followers_url': 'https://api.github.com/users/nguyenlyminhman/followers', 'following_url': 'https://api.github.com/users/nguyenlyminhman/following{/other_user}', 'gists_url': 'https://api.github.com/users/nguyenlyminhman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nguyenlyminhman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nguyenlyminhman/subscriptions', 'organizations_url': 'https://api.github.com/users/nguyenlyminhman/orgs', 'repos_url': 'https://api.github.com/users/nguyenlyminhman/repos', 'events_url': 'https://api.github.com/users/nguyenlyminhman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nguyenlyminhman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/nguyenlyminhman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum', 'forks_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/nguyenlyminhman/go-ethereum/deployments', 'created_at': '2018-12-14T11:45:55Z', 'updated_at': '2018-12-14T10:47:12Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/nguyenlyminhman/go-ethereum.git', 'ssh_url': 'git@github.com:nguyenlyminhman/go-ethereum.git', 'clone_url': 'https://github.com/nguyenlyminhman/go-ethereum.git', 'svn_url': 'https://github.com/nguyenlyminhman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107637, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:45:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754423427', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137627808, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'before': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'commits': [{'sha': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2435ecb0ffd17dc2ce030a489ab3621ba8db0b53'}]}, 'public': True, 'created_at': '2018-12-14T11:37:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754416458', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137624181, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'before': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'commits': [{'sha': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b034946fcd78acd5f428268fe13f41e3a6b12e25'}]}, 'public': True, 'created_at': '2018-12-14T11:35:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754415961', 'type': 'IssueCommentEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5654', 'id': 390700758, 'node_id': 'MDU6SXNzdWUzOTA3MDA3NTg=', 'number': 5654, 'title': 'End of life of Solidity 0.4', 'user': {'login': 'alcuadrado', 'id': 176499, 'node_id': 'MDQ6VXNlcjE3NjQ5OQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/176499?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/alcuadrado', 'html_url': 'https://github.com/alcuadrado', 'followers_url': 'https://api.github.com/users/alcuadrado/followers', 'following_url': 'https://api.github.com/users/alcuadrado/following{/other_user}', 'gists_url': 'https://api.github.com/users/alcuadrado/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/alcuadrado/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/alcuadrado/subscriptions', 'organizations_url': 'https://api.github.com/users/alcuadrado/orgs', 'repos_url': 'https://api.github.com/users/alcuadrado/repos', 'events_url': 'https://api.github.com/users/alcuadrado/events{/privacy}', 'received_events_url': 'https://api.github.com/users/alcuadrado/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T14:22:30Z', 'updated_at': '2018-12-14T11:35:50Z', 'closed_at': '2018-12-13T14:45:36Z', 'author_association': 'NONE', 'body': \"## Description\\r\\n\\r\\nI couldn't find any information about Solidity 0.4 future plans. I'm specially interested about its EOL. I think it's really important to plan libraries' and tooling's migration to 0.5. Has it been defined?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447299523', 'html_url': 'https://github.com/ethereum/solidity/issues/5654#issuecomment-447299523', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5654', 'id': 447299523, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5OTUyMw==', 'user': {'login': 'leonardoalt', 'id': 504195, 'node_id': 'MDQ6VXNlcjUwNDE5NQ==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/504195?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'html_url': 'https://github.com/leonardoalt', 'followers_url': 'https://api.github.com/users/leonardoalt/followers', 'following_url': 'https://api.github.com/users/leonardoalt/following{/other_user}', 'gists_url': 'https://api.github.com/users/leonardoalt/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/leonardoalt/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/leonardoalt/subscriptions', 'organizations_url': 'https://api.github.com/users/leonardoalt/orgs', 'repos_url': 'https://api.github.com/users/leonardoalt/repos', 'events_url': 'https://api.github.com/users/leonardoalt/events{/privacy}', 'received_events_url': 'https://api.github.com/users/leonardoalt/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:35:50Z', 'updated_at': '2018-12-14T11:35:50Z', 'author_association': 'MEMBER', 'body': \"No worries @alcuadrado . That message is probably just from readthedocs.\\r\\nWhy should it explicitly say it? Older versions haven't been kept maintained before, why would 0.4?\"}}, 'public': True, 'created_at': '2018-12-14T11:35:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754399511', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137615452, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'before': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'commits': [{'sha': '4d6ac7e8d067b2a5bea6b630fc6a86b427429259', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Update README.md\\n\\nCo-Authored-By: FrankSzendzielarz <33515470+FrankSzendzielarz@users.noreply.github.com>', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/4d6ac7e8d067b2a5bea6b630fc6a86b427429259'}]}, 'public': True, 'created_at': '2018-12-14T11:32:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394928', 'type': 'ForkEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'forkee': {'id': 161775988, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzU5ODg=', 'name': 'research', 'full_name': '3for/research', 'private': False, 'owner': {'login': '3for', 'id': 30716372, 'node_id': 'MDQ6VXNlcjMwNzE2Mzcy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/30716372?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'html_url': 'https://github.com/3for', 'followers_url': 'https://api.github.com/users/3for/followers', 'following_url': 'https://api.github.com/users/3for/following{/other_user}', 'gists_url': 'https://api.github.com/users/3for/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/3for/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/3for/subscriptions', 'organizations_url': 'https://api.github.com/users/3for/orgs', 'repos_url': 'https://api.github.com/users/3for/repos', 'events_url': 'https://api.github.com/users/3for/events{/privacy}', 'received_events_url': 'https://api.github.com/users/3for/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/3for/research', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/3for/research', 'forks_url': 'https://api.github.com/repos/3for/research/forks', 'keys_url': 'https://api.github.com/repos/3for/research/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/3for/research/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/3for/research/teams', 'hooks_url': 'https://api.github.com/repos/3for/research/hooks', 'issue_events_url': 'https://api.github.com/repos/3for/research/issues/events{/number}', 'events_url': 'https://api.github.com/repos/3for/research/events', 'assignees_url': 'https://api.github.com/repos/3for/research/assignees{/user}', 'branches_url': 'https://api.github.com/repos/3for/research/branches{/branch}', 'tags_url': 'https://api.github.com/repos/3for/research/tags', 'blobs_url': 'https://api.github.com/repos/3for/research/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/3for/research/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/3for/research/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/3for/research/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/3for/research/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/3for/research/languages', 'stargazers_url': 'https://api.github.com/repos/3for/research/stargazers', 'contributors_url': 'https://api.github.com/repos/3for/research/contributors', 'subscribers_url': 'https://api.github.com/repos/3for/research/subscribers', 'subscription_url': 'https://api.github.com/repos/3for/research/subscription', 'commits_url': 'https://api.github.com/repos/3for/research/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/3for/research/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/3for/research/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/3for/research/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/3for/research/contents/{+path}', 'compare_url': 'https://api.github.com/repos/3for/research/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/3for/research/merges', 'archive_url': 'https://api.github.com/repos/3for/research/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/3for/research/downloads', 'issues_url': 'https://api.github.com/repos/3for/research/issues{/number}', 'pulls_url': 'https://api.github.com/repos/3for/research/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/3for/research/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/3for/research/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/3for/research/labels{/name}', 'releases_url': 'https://api.github.com/repos/3for/research/releases{/id}', 'deployments_url': 'https://api.github.com/repos/3for/research/deployments', 'created_at': '2018-12-14T11:31:32Z', 'updated_at': '2018-12-14T11:31:29Z', 'pushed_at': '2018-11-08T23:24:30Z', 'git_url': 'git://github.com/3for/research.git', 'ssh_url': 'git@github.com:3for/research.git', 'clone_url': 'https://github.com/3for/research.git', 'svn_url': 'https://github.com/3for/research', 'homepage': None, 'size': 31641, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:31:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754394731', 'type': 'WatchEvent', 'actor': {'id': 30716372, 'login': '3for', 'display_login': '3for', 'gravatar_id': '', 'url': 'https://api.github.com/users/3for', 'avatar_url': 'https://avatars.githubusercontent.com/u/30716372?'}, 'repo': {'id': 42808596, 'name': 'ethereum/research', 'url': 'https://api.github.com/repos/ethereum/research'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:31:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754392528', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263', 'pull_request_review_id': 185070168, 'id': 241725263, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNTI2Mw==', 'diff_hunk': '@@ -521,12 +521,34 @@ will result a `subresults` field\\n }\\n ]\\n ```\\n-\\n ### Closing notes\\n \\n * There is no constraint on how much time a simulation may run, but please be considerate.\\n * The simulator doesn\\'t have to terminate nodes itself, upon exit all resources are reclaimed.\\n \\n+# Generating test blockchains\\n+\\n+`Hive` allows you to create rlp encoded blockchains for inclusion into sync tests \\n+\\n+## To generate a blockchain offline\\n+\\n+`Hive` can be run with the `chainGenerate` setting to generate a blockchain according to specification\\n+and then exit. The current version only generates blocks with empty transactions, but this will be\\n+improved in the future to offer generation of chains that exhibit different characteristics for testing.\\n+\\n+* `chainGenerate` Bool (false) Tell Hive to generate a blockchain on the basis of a supplied genesis and terminate\\n+* `chainLength` Uint (2) The length of the chain to generate\\n+* `chainConfig` String Reserved for future usage. Will allow Hive to generate test chains of different types\\n+*\\t`chainOutputPath` String (.) Chain destination folder\\n+*\\t`chainGenesis` String (\"\") The path and filename to the source genesis.json\\n+*\\t`chainBlockTime` Uint (30) The desired block time in seconds', 'path': 'README.md', 'position': 25, 'original_position': 25, 'commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'original_commit_id': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"```suggestion\\r\\n*\\t`chainBlockTime` Uint (30) The desired block time in seconds. OBS: It's recommended to set this value to somwhere above 20s to keep the mining difficulty low.\\r\\n```\", 'created_at': '2018-12-14T11:31:01Z', 'updated_at': '2018-12-14T11:31:01Z', 'html_url': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263', 'pull_request_url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments/241725263'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161#discussion_r241725263'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/161', 'id': 238472860, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDcyODYw', 'html_url': 'https://github.com/ethereum/hive/pull/161', 'diff_url': 'https://github.com/ethereum/hive/pull/161.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/161.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/161', 'number': 161, 'state': 'open', 'locked': False, 'title': 'Chain tools', 'user': {'login': 'FrankSzendzielarz', 'id': 33515470, 'node_id': 'MDQ6VXNlcjMzNTE1NDcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/33515470?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'html_url': 'https://github.com/FrankSzendzielarz', 'followers_url': 'https://api.github.com/users/FrankSzendzielarz/followers', 'following_url': 'https://api.github.com/users/FrankSzendzielarz/following{/other_user}', 'gists_url': 'https://api.github.com/users/FrankSzendzielarz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/FrankSzendzielarz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/FrankSzendzielarz/subscriptions', 'organizations_url': 'https://api.github.com/users/FrankSzendzielarz/orgs', 'repos_url': 'https://api.github.com/users/FrankSzendzielarz/repos', 'events_url': 'https://api.github.com/users/FrankSzendzielarz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/FrankSzendzielarz/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This PR adds the \"chain tools\" (chaintools folder) necessary for the sync simulations. It also adds some helpful command line options to Hive to allow testers to generate rlp encoded blockchains for import. More info in the Readme.md.\\r\\n\\r\\n\\r\\nIn future PRs these chaintools may be moved to simulators/common to allow dynamic regeneration of blockchains for sync tests.\\r\\n', 'created_at': '2018-12-13T17:32:00Z', 'updated_at': '2018-12-14T11:31:01Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '72a5fd1a30f6c0fff23a8d6973a817c9f950b1f9', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/161/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647', 'head': {'label': 'ethereum:Chaintools', 'ref': 'Chaintools', 'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-14T11:20:54Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/161'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/161/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/161/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/b8ce9f2d228d4e3b262eae17493dde5626b41647'}}, 'author_association': 'COLLABORATOR'}}, 'public': True, 'created_at': '2018-12-14T11:31:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754383076', 'type': 'WatchEvent', 'actor': {'id': 40417611, 'login': '1tD0g', 'display_login': '1tD0g', 'gravatar_id': '', 'url': 'https://api.github.com/users/1tD0g', 'avatar_url': 'https://avatars.githubusercontent.com/u/40417611?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:29:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754382391', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640', 'pull_request_review_id': 185069430, 'id': 241724640, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcyNDY0MA==', 'diff_hunk': '@@ -59,8 +59,10 @@ int main(int argc, char** argv)\\n addNetworkingOption(\"listen-ip\", po::value()->value_name(\"(:)\"),\\n \"Listen on the given IP for incoming connections (default: 0.0.0.0)\");\\n addNetworkingOption(\"listen\", po::value()->value_name(\"\"),\\n- \"Listen on the given port for incoming connections (default: 30303)\\\\n\");\\n-\\n+ \"Listen on the given port for incoming connections (default: 30303)\");\\n+ addNetworkingOption(\"allow-local\",\\n+ \"Allow connections from nodes on your local network. Primarily used for testing \"', 'path': 'aleth-bootnode/main.cpp', 'position': 8, 'original_position': 8, 'commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'original_commit_id': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': 'I have doubts about the wording: \"connections\" meaning devp2p connections are allowed anyway.\\r\\nMaybe the flag should be `allow-local-discovery` and description something like \"Include local addresses in discovery.\"', 'created_at': '2018-12-14T11:28:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241724640'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399#discussion_r241724640'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T11:28:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'b0c1b23314ae8141f5174ca2164451856721481e', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T10:40:31Z', 'pushed_at': '2018-12-14T10:40:22Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:28:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754371838', 'type': 'IssueCommentEvent', 'actor': {'id': 44437404, 'login': 'naikmyeong', 'display_login': 'naikmyeong', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'avatar_url': 'https://avatars.githubusercontent.com/u/44437404?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'id': 390930429, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'number': 18308, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T11:26:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch'}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447297507', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308#issuecomment-447297507', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'id': 447297507, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5NzUwNw==', 'user': {'login': 'naikmyeong', 'id': 44437404, 'node_id': 'MDQ6VXNlcjQ0NDM3NDA0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/44437404?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/naikmyeong', 'html_url': 'https://github.com/naikmyeong', 'followers_url': 'https://api.github.com/users/naikmyeong/followers', 'following_url': 'https://api.github.com/users/naikmyeong/following{/other_user}', 'gists_url': 'https://api.github.com/users/naikmyeong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/naikmyeong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/naikmyeong/subscriptions', 'organizations_url': 'https://api.github.com/users/naikmyeong/orgs', 'repos_url': 'https://api.github.com/users/naikmyeong/repos', 'events_url': 'https://api.github.com/users/naikmyeong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/naikmyeong/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:26:42Z', 'updated_at': '2018-12-14T11:26:42Z', 'author_association': 'NONE', 'body': 'Here is the release note for go 1.11.3 and 1.10.6 https://groups.google.com/forum/m/#!topic/golang-announce/Kw31K8G7Fi0'}}, 'public': True, 'created_at': '2018-12-14T11:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754353877', 'type': 'IssuesEvent', 'actor': {'id': 49922, 'login': 'miohtama', 'display_login': 'miohtama', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'avatar_url': 'https://avatars.githubusercontent.com/u/49922?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5657', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5657/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5657', 'id': 391071836, 'node_id': 'MDU6SXNzdWUzOTEwNzE4MzY=', 'number': 5657, 'title': 'Feature request: flattened source code output', 'user': {'login': 'miohtama', 'id': 49922, 'node_id': 'MDQ6VXNlcjQ5OTIy', 'avatar_url': 'https://avatars1.githubusercontent.com/u/49922?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/miohtama', 'html_url': 'https://github.com/miohtama', 'followers_url': 'https://api.github.com/users/miohtama/followers', 'following_url': 'https://api.github.com/users/miohtama/following{/other_user}', 'gists_url': 'https://api.github.com/users/miohtama/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/miohtama/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/miohtama/subscriptions', 'organizations_url': 'https://api.github.com/users/miohtama/orgs', 'repos_url': 'https://api.github.com/users/miohtama/repos', 'events_url': 'https://api.github.com/users/miohtama/events{/privacy}', 'received_events_url': 'https://api.github.com/users/miohtama/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T11:22:57Z', 'updated_at': '2018-12-14T11:22:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '## Abstract\\r\\n\\r\\n``solc`` could generate flattened sol source code in output JSON.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nA flattened source code, all includes eliminated and having source in a single file, is needed for source code verification (reproducible builds). The most common venue is EtherScan and public verification.\\r\\n\\r\\nCurrently there are third party tools doing this - see ( https://github.com/BlockCatIO/solidity-flattener and https://github.com/nomiclabs/truffle-flattener ). However the add extra complexity to the toolchain, as the natural place to to produce the flattened source code would be the compiler itself as the compiler know from where it has assembled the source code files. For non-trivial source code tree doing a flattened version of a contract tends to be a labour intensive process.\\r\\n\\r\\n## Specification\\r\\n\\r\\nIn Input Description, include new `outputSelection` option `source`. This will procude matching `source` item in `contracts` section.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\nAs this is additional change to the compiler output, I do not see it should cause \\r\\n\\r\\n## Earlier discussion\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/2620\\r\\n\\r\\nhttps://github.com/ethereum/solidity/issues/611'}}, 'public': True, 'created_at': '2018-12-14T11:22:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754349538', 'type': 'PushEvent', 'actor': {'id': 504195, 'login': 'leonardoalt', 'display_login': 'leonardoalt', 'gravatar_id': '', 'url': 'https://api.github.com/users/leonardoalt', 'avatar_url': 'https://avatars.githubusercontent.com/u/504195?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137588967, 'size': 6, 'distinct_size': 2, 'ref': 'refs/heads/smt_mapping', 'head': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'before': '31e47d961b2f9e3fa0b894c258a337cc6bb7b288', 'commits': [{'sha': '11209ec48a3581419ebfa4764669c2a128f1b997', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Add variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/11209ec48a3581419ebfa4764669c2a128f1b997'}, {'sha': '6c6a53a439de11ebae0b09d8a18c30018b3d89b4', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Do not create unassigned variables.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6c6a53a439de11ebae0b09d8a18c30018b3d89b4'}, {'sha': 'bc22a25a603296a0f40a4df75287b6d2f51ed4ac', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Remove VarDeclPropagator.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/bc22a25a603296a0f40a4df75287b6d2f51ed4ac'}, {'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5655 from ethereum/removeUnassignedVarDefs\\n\\nAdd variable declaration initializer.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d'}, {'sha': '6a2809a582d95a5b4cb52abeb3f92ed01857809b', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': '[SMTChecker] Support to mapping', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6a2809a582d95a5b4cb52abeb3f92ed01857809b'}, {'sha': '9199718ec0aa1210094ceb9ca587fe49fba70518', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Clear all mapping knowledge after array variable assignment', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/9199718ec0aa1210094ceb9ca587fe49fba70518'}]}, 'public': True, 'created_at': '2018-12-14T11:22:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343870', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137586095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'before': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'commits': [{'sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'Make extra container for copying easier to avoid (#162)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/c4e0f6f899286f4e0cef7490a1a4fda6fead5522'}]}, 'public': True, 'created_at': '2018-12-14T11:20:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754343776', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'closed', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T11:20:51Z', 'closed_at': '2018-12-14T11:20:51Z', 'merged_at': '2018-12-14T11:20:51Z', 'merge_commit_sha': 'c4e0f6f899286f4e0cef7490a1a4fda6fead5522', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T11:20:51Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 24, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 24, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T11:20:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754335842', 'type': 'WatchEvent', 'actor': {'id': 679887, 'login': 'hkk', 'display_login': 'hkk', 'gravatar_id': '', 'url': 'https://api.github.com/users/hkk', 'avatar_url': 'https://avatars.githubusercontent.com/u/679887?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:19:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754329096', 'type': 'WatchEvent', 'actor': {'id': 15720036, 'login': 'kyledewy', 'display_login': 'kyledewy', 'gravatar_id': '', 'url': 'https://api.github.com/users/kyledewy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15720036?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:17:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303327', 'type': 'ForkEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161773980, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzM5ODA=', 'name': 'go-ethereum', 'full_name': 'racmnet/go-ethereum', 'private': False, 'owner': {'login': 'racmnet', 'id': 10967038, 'node_id': 'MDQ6VXNlcjEwOTY3MDM4', 'avatar_url': 'https://avatars1.githubusercontent.com/u/10967038?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'html_url': 'https://github.com/racmnet', 'followers_url': 'https://api.github.com/users/racmnet/followers', 'following_url': 'https://api.github.com/users/racmnet/following{/other_user}', 'gists_url': 'https://api.github.com/users/racmnet/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/racmnet/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/racmnet/subscriptions', 'organizations_url': 'https://api.github.com/users/racmnet/orgs', 'repos_url': 'https://api.github.com/users/racmnet/repos', 'events_url': 'https://api.github.com/users/racmnet/events{/privacy}', 'received_events_url': 'https://api.github.com/users/racmnet/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/racmnet/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/racmnet/go-ethereum', 'forks_url': 'https://api.github.com/repos/racmnet/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/racmnet/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/racmnet/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/racmnet/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/racmnet/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/racmnet/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/racmnet/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/racmnet/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/racmnet/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/racmnet/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/racmnet/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/racmnet/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/racmnet/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/racmnet/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/racmnet/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/racmnet/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/racmnet/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/racmnet/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/racmnet/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/racmnet/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/racmnet/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/racmnet/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/racmnet/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/racmnet/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/racmnet/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/racmnet/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/racmnet/go-ethereum/deployments', 'created_at': '2018-12-14T11:12:27Z', 'updated_at': '2018-12-14T10:47:12Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/racmnet/go-ethereum.git', 'ssh_url': 'git@github.com:racmnet/go-ethereum.git', 'clone_url': 'https://github.com/racmnet/go-ethereum.git', 'svn_url': 'https://github.com/racmnet/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107637, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T11:12:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754303002', 'type': 'WatchEvent', 'actor': {'id': 10967038, 'login': 'racmnet', 'display_login': 'racmnet', 'gravatar_id': '', 'url': 'https://api.github.com/users/racmnet', 'avatar_url': 'https://avatars.githubusercontent.com/u/10967038?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:12:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754268209', 'type': 'WatchEvent', 'actor': {'id': 1172733, 'login': 'toannk', 'display_login': 'toannk', 'gravatar_id': '', 'url': 'https://api.github.com/users/toannk', 'avatar_url': 'https://avatars.githubusercontent.com/u/1172733?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T11:05:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754240410', 'type': 'IssueCommentEvent', 'actor': {'id': 4943570, 'login': 'b00ris', 'display_login': 'b00ris', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'avatar_url': 'https://avatars.githubusercontent.com/u/4943570?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904/events', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'id': 329621626, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MTkyODMzNzU4', 'number': 16904, 'title': 'les: implement ulc', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 23, 'created_at': '2018-06-05T20:56:18Z', 'updated_at': '2018-12-14T11:00:05Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/16904', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/16904.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/16904.patch'}, 'body': 'Implements ultra light client feature.\\r\\nhttps://github.com/zsfelfoldi/ethereum-docs/blob/master/les/tasks/ulc.txt\\r\\nMore information about ULC https://hackmd.io/s/HJy7jjZpm'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447291395', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/16904#issuecomment-447291395', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16904', 'id': 447291395, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI5MTM5NQ==', 'user': {'login': 'b00ris', 'id': 4943570, 'node_id': 'MDQ6VXNlcjQ5NDM1NzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/4943570?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/b00ris', 'html_url': 'https://github.com/b00ris', 'followers_url': 'https://api.github.com/users/b00ris/followers', 'following_url': 'https://api.github.com/users/b00ris/following{/other_user}', 'gists_url': 'https://api.github.com/users/b00ris/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/b00ris/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/b00ris/subscriptions', 'organizations_url': 'https://api.github.com/users/b00ris/orgs', 'repos_url': 'https://api.github.com/users/b00ris/repos', 'events_url': 'https://api.github.com/users/b00ris/events{/privacy}', 'received_events_url': 'https://api.github.com/users/b00ris/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T11:00:05Z', 'updated_at': '2018-12-14T11:00:05Z', 'author_association': 'CONTRIBUTOR', 'body': '@zsfelfoldi @karalabe :('}}, 'public': True, 'created_at': '2018-12-14T11:00:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754230101', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3137526125, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'before': '1683c108885da84f8b81b3669b6e40e9111e147b', 'commits': [{'sha': '5ff2793cc6d8b3671d41a99c033b64e475e1c36f', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: fix windows flag', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/5ff2793cc6d8b3671d41a99c033b64e475e1c36f'}]}, 'public': True, 'created_at': '2018-12-14T10:58:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754229905', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868', 'pull_request_review_id': 185059651, 'id': 241716868, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcxNjg2OA==', 'diff_hunk': '@@ -0,0 +1,151 @@\\n+from argparse import (\\n+ ArgumentParser,\\n+ _SubParsersAction,\\n+)\\n+import asyncio\\n+\\n+from eth_typing import (\\n+ BlockNumber,\\n+)\\n+from lahja import (\\n+ Endpoint,\\n+)\\n+\\n+from eth.constants import (\\n+ GENESIS_BLOCK_NUMBER\\n+)\\n+\\n+from p2p.discovery import (\\n+ get_v5_topic,\\n+ DiscoveryByTopicProtocol,\\n+ PreferredNodeDiscoveryProtocol,\\n+)\\n+from p2p.kademlia import (\\n+ Address,\\n+)\\n+from p2p.protocol import (\\n+ Protocol,\\n+)\\n+from p2p.service import (\\n+ BaseService,\\n+)\\n+\\n+from trinity.config import (\\n+ TrinityBeaconConfig,\\n+ TrinityConfig,\\n+)\\n+from trinity.db.manager import (\\n+ create_db_manager\\n+)\\n+from trinity.extensibility import (\\n+ BaseIsolatedPlugin,\\n+)\\n+from trinity.protocol.bcc.proto import (\\n+ BCCProtocol,\\n+)\\n+from trinity.protocol.eth.proto import (\\n+ ETHProtocol,\\n+)\\n+from trinity.protocol.les.proto import (\\n+ LESProtocolV2,\\n+)\\n+from trinity.utils.shutdown import (\\n+ exit_with_service_and_endpoint,\\n+)\\n+from .discovery_service import (\\n+ DiscoveryService,\\n+)\\n+\\n+\\n+def get_protocol(trinity_config: TrinityConfig) -> Protocol:\\n+ # For now DiscoveryByTopicProtocol supports a single topic, so we use the latest\\n+ # version of our supported protocols. Maybe this could be more generic?\\n+ if isinstance(trinity_config, TrinityBeaconConfig):\\n+ return BCCProtocol\\n+ elif trinity_config.is_light_mode:\\n+ return LESProtocolV2\\n+ else:\\n+ return ETHProtocol\\n+\\n+\\n+def get_discv5_topic(trinity_config: TrinityConfig, protocol: Protocol):\\n+ db_manager = create_db_manager(trinity_config.database_ipc_path)\\n+ db_manager.connect()\\n+\\n+ header_db = db_manager.get_headerdb()\\n+ genesis_hash = header_db.get_canonical_block_hash(BlockNumber(GENESIS_BLOCK_NUMBER))\\n+\\n+ return get_v5_topic(protocol, genesis_hash)\\n+\\n+\\n+class DiscoveryBootstrapService(BaseService):\\n+ \"\"\"\\n+ Bootstrap discovery to provide a parent ``CancellationToken``\\n+ \"\"\"\\n+\\n+ def __init__(self, event_bus: Endpoint, trinity_config: TrinityConfig) -> None:\\n+ super().__init__()\\n+ self.event_bus = event_bus\\n+ self.trinity_config = trinity_config\\n+\\n+ async def _run(self) -> None:\\n+ external_ip = \"0.0.0.0\"', 'path': 'trinity/plugins/builtin/peer_discovery/plugin.py', 'position': 96, 'original_position': 92, 'commit_id': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'original_commit_id': '26c08f3b97fb36a428b2872da34d321c589415e8', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@carver do you prefer to keep this open until you have tried this on your upnp network? I also think we should move the UpnpService in an isolated plugin as well and then we can also put back that first external ip lookup. I don't think that service does much right now though. Apart from the initial lookup of the external ip, it is supposed to continuously provide a port mapping but I don't see how that would be used anywhere. \", 'created_at': '2018-12-14T10:58:04Z', 'updated_at': '2018-12-14T10:58:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241716868'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556#discussion_r241716868'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}}, 'in_reply_to_id': 240018196}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556', 'id': 236562386, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NTYyMzg2', 'html_url': 'https://github.com/ethereum/py-evm/pull/1556', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1556.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1556.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556', 'number': 1556, 'state': 'open', 'locked': False, 'title': 'Move peer discovery into an isolated plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nCurrently the peer discovery runs in the networking process among a lot of other things. Moving it into an isolated plugin should:\\r\\n\\r\\n- increase efficiency of syncing as the peer discovery probably takes a fair share of computing power\\r\\n- increase decoupling as it breaks up the networking code into smaller pieces \\r\\n- improve reusability as the new discovery can be accessed from any other interested party since it is integrated with the event bus \\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n- inverted the model in the `DiscoveryService` so that it doesn't know about the `PeerPool` and instead just exposes an API for consumers to request peer candidates from\\r\\n- the API is exposed over the EventBus so that it can be requested from any other process\\r\\n- created an isolated plugin to run the new discovery service in a separate process\\r\\n- removed discovery code from the server where it previously lived\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://pixnio.com/free-images/2018/10/03/2018-10-03-04-24-27.jpg)\\r\\n\", 'created_at': '2018-12-06T15:07:31Z', 'updated_at': '2018-12-14T10:58:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1109d6a894e45d55286f76f9ab28804a1a0c0e70', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}, {'id': 983621026, 'node_id': 'MDU6TGFiZWw5ODM2MjEwMjY=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20blocked', 'name': 'PR state: blocked', 'color': 'e99695', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5', 'head': {'label': 'cburgdorf:christoph/feat/discovery-plugin', 'ref': 'christoph/feat/discovery-plugin', 'sha': '3941165c9802e5cc114bc4befaacea0a149c4af5', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T10:23:32Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8304, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T10:06:03Z', 'pushed_at': '2018-12-14T10:23:34Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1556'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1556/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1556/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/3941165c9802e5cc114bc4befaacea0a149c4af5'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:58:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754198367', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137509444, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'before': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'commits': [{'sha': 'ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/ead58f21d3f4ba1e34e2ae66a711b0d6c62502d0'}]}, 'public': True, 'created_at': '2018-12-14T10:52:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754172758', 'type': 'WatchEvent', 'actor': {'id': 19657992, 'login': 'smgqk', 'display_login': 'smgqk', 'gravatar_id': '', 'url': 'https://api.github.com/users/smgqk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19657992?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:47:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754164859', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137491975, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'before': '944f9f281f128c39839a324aa111dae0c1a9da41', 'commits': [{'sha': 'b8b9bfdac096c4896ba665e6446aea63c5508562', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/ubuntu-trusty-clang.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/b8b9bfdac096c4896ba665e6446aea63c5508562'}]}, 'public': True, 'created_at': '2018-12-14T10:45:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754150704', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137484484, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '944f9f281f128c39839a324aa111dae0c1a9da41', 'before': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'commits': [{'sha': '944f9f281f128c39839a324aa111dae0c1a9da41', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-75667d52ed11b5b61047b9d43564f835408d92d3/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/944f9f281f128c39839a324aa111dae0c1a9da41'}]}, 'public': True, 'created_at': '2018-12-14T10:42:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754140773', 'type': 'WatchEvent', 'actor': {'id': 8289914, 'login': 'cuidezhu', 'display_login': 'cuidezhu', 'gravatar_id': '', 'url': 'https://api.github.com/users/cuidezhu', 'avatar_url': 'https://avatars.githubusercontent.com/u/8289914?'}, 'repo': {'id': 22730041, 'name': 'ethereum/dapp-bin', 'url': 'https://api.github.com/repos/ethereum/dapp-bin'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:41:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754137353', 'type': 'PushEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3137477529, 'size': 10, 'distinct_size': 10, 'ref': 'refs/heads/master', 'head': 'b92056768376d42b809e2a80afd3178b2dead29f', 'before': 'ec3886029393fc9927b130ba8f8671480d810391', 'commits': [{'sha': '11e327c20526ff137683d8ca3192203e3c493820', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Validate hashes in PONG packets.\\nSave sent PING hash in m_sentPings for each request and compare it with the one receive in PONG.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/11e327c20526ff137683d8ca3192203e3c493820'}, {'sha': 'fcc1d50d50d509efce359a1a4efb89d056f3d6b1', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unit tests for PONG validation', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/fcc1d50d50d509efce359a1a4efb89d056f3d6b1'}, {'sha': '75997f9ad1629d32b19d47510ebce05ac4c0c1e8', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Finding free UDP port for discovery unit tests', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/75997f9ad1629d32b19d47510ebce05ac4c0c1e8'}, {'sha': '68edf46686be689f74cdd9061bb99c33b6e694da', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Remove node from node table when PONG was not received from a node in c_timeToLive time', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/68edf46686be689f74cdd9061bb99c33b6e694da'}, {'sha': '29079f7c4eca7e58a9c1df5d66df5f1f2110139a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': \"Fix minor issues after review.\\nMake constexpr out of constants.\\nDon't unnecessary copy the packet in onPacketReceived.\", 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/29079f7c4eca7e58a9c1df5d66df5f1f2110139a'}, {'sha': '22d8402fb5baea83ca99522bb9dad7b090687642', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Call dropNode by moving shared_ptr into it.\\nSome renamings to make code clearer', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/22d8402fb5baea83ca99522bb9dad7b090687642'}, {'sha': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Add static constexpr members definition to fix clang build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a'}, {'sha': '6d0c90312631fbb89fc294e121bc804111d86327', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Unify eviction and ping timeout handling mechanisms', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/6d0c90312631fbb89fc294e121bc804111d86327'}, {'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Improve thread-safety of NodeTable.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/87cc8487521d0eec7272e6a5599af298107812e5'}, {'sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'author': {'email': 'andrei@ethereum.org', 'name': 'Andrei Maiboroda'}, 'message': 'Merge pull request #5380 from ethereum/improve-discovery2\\n\\nValidate PONGs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/b92056768376d42b809e2a80afd3178b2dead29f'}]}, 'public': True, 'created_at': '2018-12-14T10:40:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136734', 'type': 'DeleteEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'improve-discovery2', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:40:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754136488', 'type': 'PullRequestEvent', 'actor': {'id': 1863135, 'login': 'gumb0', 'display_login': 'gumb0', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'avatar_url': 'https://avatars.githubusercontent.com/u/1863135?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'closed', 'number': 5380, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'closed', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-14T10:40:19Z', 'closed_at': '2018-12-14T10:40:19Z', 'merged_at': '2018-12-14T10:40:19Z', 'merge_commit_sha': 'b92056768376d42b809e2a80afd3178b2dead29f', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-14T04:35:21Z', 'pushed_at': '2018-12-14T10:40:19Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3455, 'watchers_count': 3455, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3455, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'comments': 10, 'review_comments': 32, 'maintainer_can_modify': False, 'commits': 9, 'additions': 309, 'deletions': 201, 'changed_files': 5}}, 'public': True, 'created_at': '2018-12-14T10:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754132960', 'type': 'ForkEvent', 'actor': {'id': 43116881, 'login': '0xC0DE4C0FFEE', 'display_login': '0xC0DE4C0FFEE', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'avatar_url': 'https://avatars.githubusercontent.com/u/43116881?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161770481, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NzA0ODE=', 'name': 'web3.js', 'full_name': '0xC0DE4C0FFEE/web3.js', 'private': False, 'owner': {'login': '0xC0DE4C0FFEE', 'id': 43116881, 'node_id': 'MDQ6VXNlcjQzMTE2ODgx', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43116881?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/0xC0DE4C0FFEE', 'html_url': 'https://github.com/0xC0DE4C0FFEE', 'followers_url': 'https://api.github.com/users/0xC0DE4C0FFEE/followers', 'following_url': 'https://api.github.com/users/0xC0DE4C0FFEE/following{/other_user}', 'gists_url': 'https://api.github.com/users/0xC0DE4C0FFEE/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/0xC0DE4C0FFEE/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/0xC0DE4C0FFEE/subscriptions', 'organizations_url': 'https://api.github.com/users/0xC0DE4C0FFEE/orgs', 'repos_url': 'https://api.github.com/users/0xC0DE4C0FFEE/repos', 'events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/events{/privacy}', 'received_events_url': 'https://api.github.com/users/0xC0DE4C0FFEE/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js', 'forks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/forks', 'keys_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/events', 'assignees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/merges', 'archive_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/0xC0DE4C0FFEE/web3.js/deployments', 'created_at': '2018-12-14T10:39:42Z', 'updated_at': '2018-12-14T10:21:11Z', 'pushed_at': '2018-12-14T10:21:19Z', 'git_url': 'git://github.com/0xC0DE4C0FFEE/web3.js.git', 'ssh_url': 'git@github.com:0xC0DE4C0FFEE/web3.js.git', 'clone_url': 'https://github.com/0xC0DE4C0FFEE/web3.js.git', 'svn_url': 'https://github.com/0xC0DE4C0FFEE/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:39:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754089991', 'type': 'ForkEvent', 'actor': {'id': 7226223, 'login': 'rodrigo-garcia-leon', 'display_login': 'rodrigo-garcia-leon', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'avatar_url': 'https://avatars.githubusercontent.com/u/7226223?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161769580, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3Njk1ODA=', 'name': 'go-ethereum', 'full_name': 'rodrigo-garcia-leon/go-ethereum', 'private': False, 'owner': {'login': 'rodrigo-garcia-leon', 'id': 7226223, 'node_id': 'MDQ6VXNlcjcyMjYyMjM=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/7226223?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rodrigo-garcia-leon', 'html_url': 'https://github.com/rodrigo-garcia-leon', 'followers_url': 'https://api.github.com/users/rodrigo-garcia-leon/followers', 'following_url': 'https://api.github.com/users/rodrigo-garcia-leon/following{/other_user}', 'gists_url': 'https://api.github.com/users/rodrigo-garcia-leon/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rodrigo-garcia-leon/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rodrigo-garcia-leon/subscriptions', 'organizations_url': 'https://api.github.com/users/rodrigo-garcia-leon/orgs', 'repos_url': 'https://api.github.com/users/rodrigo-garcia-leon/repos', 'events_url': 'https://api.github.com/users/rodrigo-garcia-leon/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rodrigo-garcia-leon/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum', 'forks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rodrigo-garcia-leon/go-ethereum/deployments', 'created_at': '2018-12-14T10:31:32Z', 'updated_at': '2018-12-14T10:15:59Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/rodrigo-garcia-leon/go-ethereum.git', 'ssh_url': 'git@github.com:rodrigo-garcia-leon/go-ethereum.git', 'clone_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum.git', 'svn_url': 'https://github.com/rodrigo-garcia-leon/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T10:31:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754087798', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'opened', 'number': 162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/hive/pulls/162', 'id': 238676283, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4Njc2Mjgz', 'html_url': 'https://github.com/ethereum/hive/pull/162', 'diff_url': 'https://github.com/ethereum/hive/pull/162.diff', 'patch_url': 'https://github.com/ethereum/hive/pull/162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/hive/issues/162', 'number': 162, 'state': 'open', 'locked': False, 'title': 'Make extra container for copying easier to avoid', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Skips some container-interaction when a path is `ignore`, also fixes the copy-from-template to at least not be obviously br0ken', 'created_at': '2018-12-14T10:31:09Z', 'updated_at': '2018-12-14T10:31:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f', 'head': {'label': 'holiman:extracontainer', 'ref': 'extracontainer', 'sha': '34344edd861be9c7d28e66ebe7513baa82e8918f', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 71807795, 'node_id': 'MDEwOlJlcG9zaXRvcnk3MTgwNzc5NQ==', 'name': 'hive', 'full_name': 'holiman/hive', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/hive', 'description': 'Ethereum end-to-end test harness', 'fork': True, 'url': 'https://api.github.com/repos/holiman/hive', 'forks_url': 'https://api.github.com/repos/holiman/hive/forks', 'keys_url': 'https://api.github.com/repos/holiman/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/hive/teams', 'hooks_url': 'https://api.github.com/repos/holiman/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/hive/events', 'assignees_url': 'https://api.github.com/repos/holiman/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/hive/tags', 'blobs_url': 'https://api.github.com/repos/holiman/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/hive/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/hive/subscription', 'commits_url': 'https://api.github.com/repos/holiman/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/hive/merges', 'archive_url': 'https://api.github.com/repos/holiman/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/hive/downloads', 'issues_url': 'https://api.github.com/repos/holiman/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/hive/deployments', 'created_at': '2016-10-24T16:18:24Z', 'updated_at': '2018-12-04T12:55:16Z', 'pushed_at': '2018-12-14T10:29:59Z', 'git_url': 'git://github.com/holiman/hive.git', 'ssh_url': 'git@github.com:holiman/hive.git', 'clone_url': 'https://github.com/holiman/hive.git', 'svn_url': 'https://github.com/holiman/hive', 'homepage': None, 'size': 8359, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd2df38bfabb35bdc4f13a1afd2f6c05528fd6982', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 62554553, 'node_id': 'MDEwOlJlcG9zaXRvcnk2MjU1NDU1Mw==', 'name': 'hive', 'full_name': 'ethereum/hive', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/hive', 'description': 'Ethereum end-to-end test harness', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/hive', 'forks_url': 'https://api.github.com/repos/ethereum/hive/forks', 'keys_url': 'https://api.github.com/repos/ethereum/hive/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/hive/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/hive/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/hive/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/hive/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/hive/events', 'assignees_url': 'https://api.github.com/repos/ethereum/hive/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/hive/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/hive/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/hive/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/hive/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/hive/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/hive/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/hive/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/hive/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/hive/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/hive/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/hive/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/hive/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/hive/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/hive/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/hive/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/hive/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/hive/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/hive/merges', 'archive_url': 'https://api.github.com/repos/ethereum/hive/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/hive/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/hive/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/hive/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/hive/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/hive/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/hive/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/hive/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/hive/deployments', 'created_at': '2016-07-04T10:41:07Z', 'updated_at': '2018-12-10T10:30:53Z', 'pushed_at': '2018-12-14T07:35:59Z', 'git_url': 'git://github.com/ethereum/hive.git', 'ssh_url': 'git@github.com:ethereum/hive.git', 'clone_url': 'https://github.com/ethereum/hive.git', 'svn_url': 'https://github.com/ethereum/hive', 'homepage': None, 'size': 8374, 'stargazers_count': 96, 'watchers_count': 96, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 25, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 36, 'open_issues': 25, 'watchers': 96, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162'}, 'html': {'href': 'https://github.com/ethereum/hive/pull/162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/hive/issues/162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/hive/pulls/162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/hive/statuses/34344edd861be9c7d28e66ebe7513baa82e8918f'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 4, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:31:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754057214', 'type': 'DeleteEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'ref': 'removeUnassignedVarDefs', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T10:25:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754038430', 'type': 'IssueCommentEvent', 'actor': {'id': 22429695, 'login': 'codecov[bot]', 'display_login': 'codecov', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov[bot]', 'avatar_url': 'https://avatars.githubusercontent.com/u/22429695?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/events', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'id': 390235609, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'number': 5635, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:22:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/comments/447281816', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#issuecomment-447281816', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'id': 447281816, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MTgxNg==', 'user': {'login': 'codecov[bot]', 'id': 22429695, 'node_id': 'MDM6Qm90MjI0Mjk2OTU=', 'avatar_url': 'https://avatars2.githubusercontent.com/in/254?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov%5Bbot%5D', 'html_url': 'https://github.com/apps/codecov', 'followers_url': 'https://api.github.com/users/codecov%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/codecov%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/codecov%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/codecov%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov%5Bbot%5D/received_events', 'type': 'Bot', 'site_admin': False}, 'created_at': '2018-12-14T10:22:28Z', 'updated_at': '2018-12-14T10:22:28Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=h1) Report\\n> Merging [#5635](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=desc) into [develop](https://codecov.io/gh/ethereum/solidity/commit/8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d?src=pr&el=desc) will **decrease** coverage by `0.02%`.\\n> The diff coverage is `98%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/solidity/pull/5635/graphs/tree.svg?width=650&token=87PGzVEwU0&height=150&src=pr)](https://codecov.io/gh/ethereum/solidity/pull/5635?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## develop #5635 +/- ##\\n===========================================\\n- Coverage 88.26% 88.23% -0.03% \\n===========================================\\n Files 339 339 \\n Lines 32472 32458 -14 \\n Branches 3887 3885 -2 \\n===========================================\\n- Hits 28662 28640 -22 \\n- Misses 2494 2501 +7 \\n- Partials 1316 1317 +1\\n```\\n\\n| Flag | Coverage Δ | |\\n|---|---|---|\\n| #all | `88.23% <98%> (-0.03%)` | :arrow_down: |\\n| #syntax | `28.55% <24%> (-0.01%)` | :arrow_down: |\\n'}}, 'public': True, 'created_at': '2018-12-14T10:22:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754037696', 'type': 'PushEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'push_id': 3137424218, 'size': 46, 'distinct_size': 2, 'ref': 'refs/heads/cpp-default-ctors', 'head': '714cb78794902d611f922aa52241baec2d9e8622', 'before': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'commits': [{'sha': '6d82ad13386493b80f303eb7dcda07095a62e1e8', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Test updates for recent versions of aleth.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/6d82ad13386493b80f303eb7dcda07095a62e1e8'}, {'sha': '788612d2efef33aad711646a1ace9dfee6237730', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Refactoring of the ControlFlowGraph and use for detecting all uninitialized storage accesses.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/788612d2efef33aad711646a1ace9dfee6237730'}, {'sha': 'a18985800f42035cdc3c36555cb927e286ea0d91', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a18985800f42035cdc3c36555cb927e286ea0d91'}, {'sha': '85291bcb2d0e92c8d515887a00174d46f974500d', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Merge pull request #5628 from ethereum/structuralSimplifierCompilationFix\\n\\n[Yul] Fix compilation for certain combinations of boost and gcc.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/85291bcb2d0e92c8d515887a00174d46f974500d'}, {'sha': '774f7e612932d6300cf3d15d010fa312add744d8', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/774f7e612932d6300cf3d15d010fa312add744d8'}, {'sha': '53537864a2b7322c58248ea8c9937d13aca7ca61', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable unused var warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/53537864a2b7322c58248ea8c9937d13aca7ca61'}, {'sha': '508aae8a6709f4758753bb1e2ac1f613043c6750', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disable state mutability warning for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/508aae8a6709f4758753bb1e2ac1f613043c6750'}, {'sha': '8c49d86e6b2422757fe5579711ef7cdf1718b81c', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Changelog entry', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8c49d86e6b2422757fe5579711ef7cdf1718b81c'}, {'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5617 from ethereum/controlFlowRework\\n\\nRework of ControlFlowGraph and analysis.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/35d6db880a7c36744934f626b69a2329ea484722'}, {'sha': 'd03b52519adf31180261ee9edfe24a1c4fe71bb6', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item that covers array literals', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/d03b52519adf31180261ee9edfe24a1c4fe71bb6'}, {'sha': '5e0c312dad2daaae155486397bfbd26d6d172718', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5632 from ethereum/faq-payload\\n\\nDOCS: Remove payload FAQ item', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/5e0c312dad2daaae155486397bfbd26d6d172718'}, {'sha': 'c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af', 'author': {'email': 'alex@rtfs.hu', 'name': 'Alex Beregszaszi'}, 'message': 'Add missing header guards', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c863cbf80de08d8ba3bbf5fdd9149f6bc6d2c9af'}, {'sha': 'c7e09658010b231f4743039c9f91892341a64e15', 'author': {'email': '3esmit@gmail.com', 'name': 'Ricardo Guilherme Schmidt'}, 'message': 'Add NatSpec to Style-Guide\\n\\nrelated to #2270', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/c7e09658010b231f4743039c9f91892341a64e15'}, {'sha': '7e9a29090c29a8fb678f348fa7333a7658d70cf6', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #2271 from 3esmit/patch-1\\n\\nAdd NatSpec to Style-Guide', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/7e9a29090c29a8fb678f348fa7333a7658d70cf6'}, {'sha': '87237281bf252b7afcf5d1295e75a03bf41ac864', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5630 from ethereum/warn_functions_empty_body\\n\\nSupress unused var and state mut warnings for functions with empty body', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/87237281bf252b7afcf5d1295e75a03bf41ac864'}, {'sha': '60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Replace trusty PPA build by static PPA build.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/60d7cc6049a7c5559ee3e48a0b25cfe94cf7e919'}, {'sha': 'a4da8c1ad83eddbf957d02ef44e6a5d4aad65904', 'author': {'email': 'chriswhward@gmail.com', 'name': 'Chris Ward'}, 'message': 'Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/a4da8c1ad83eddbf957d02ef44e6a5d4aad65904'}, {'sha': '123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a', 'author': {'email': 'daniel@ekpyron.org', 'name': 'Daniel Kirchner'}, 'message': 'Add tolerance to gas meter tests.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/123d33ad41b1dea43d7b6aee4b31bc6cf373bf4a'}, {'sha': '1c8c8734654a4bea8270beff7e1a295323002af3', 'author': {'email': 'chris@ethereum.org', 'name': 'chriseth'}, 'message': 'Merge pull request #5633 from ethereum/faq-kill\\n\\nDOCS: Remove FAQ item on killing contracts', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/1c8c8734654a4bea8270beff7e1a295323002af3'}, {'sha': '8cd2ac84622185a59ee61439289d1defe58dec99', 'author': {'email': 'leo@ethereum.org', 'name': 'Leonardo Alt'}, 'message': 'Disallow unknown JSON keys in standard-json', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/solidity/commits/8cd2ac84622185a59ee61439289d1defe58dec99'}]}, 'public': True, 'created_at': '2018-12-14T10:22:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754031393', 'type': 'WatchEvent', 'actor': {'id': 16360786, 'login': 'nafidurmus', 'display_login': 'nafidurmus', 'gravatar_id': '', 'url': 'https://api.github.com/users/nafidurmus', 'avatar_url': 'https://avatars.githubusercontent.com/u/16360786?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:21:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754010490', 'type': 'IssueCommentEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'repository_url': 'https://api.github.com/repos/ethereum/web3.js', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085/events', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085', 'id': 386183041, 'node_id': 'MDU6SXNzdWUzODYxODMwNDE=', 'number': 2085, 'title': 'Add TypeScript typings for all packages', 'user': {'login': 'nivida', 'id': 1699173, 'node_id': 'MDQ6VXNlcjE2OTkxNzM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1699173?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'html_url': 'https://github.com/nivida', 'followers_url': 'https://api.github.com/users/nivida/followers', 'following_url': 'https://api.github.com/users/nivida/following{/other_user}', 'gists_url': 'https://api.github.com/users/nivida/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nivida/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nivida/subscriptions', 'organizations_url': 'https://api.github.com/users/nivida/orgs', 'repos_url': 'https://api.github.com/users/nivida/repos', 'events_url': 'https://api.github.com/users/nivida/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nivida/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 561222327, 'node_id': 'MDU6TGFiZWw1NjEyMjIzMjc=', 'url': 'https://api.github.com/repos/ethereum/web3.js/labels/bounty', 'name': 'bounty', 'color': 'fafad2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-11-30T13:15:08Z', 'updated_at': '2018-12-14T10:17:20Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"This is a gitcoin bounty.\\r\\n\\r\\n#### ToDo:\\r\\n- [ ] Add type definitions for all modules\\r\\n- [ ] Add dtslint tests for all modules\\r\\n- [ ] Add typings to PR template check list \\r\\n- [ ] See if there's a coverage tool for dtslint tests \"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments/447280447', 'html_url': 'https://github.com/ethereum/web3.js/issues/2085#issuecomment-447280447', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2085', 'id': 447280447, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI4MDQ0Nw==', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T10:17:20Z', 'updated_at': '2018-12-14T10:17:20Z', 'author_association': 'COLLABORATOR', 'body': 'PR number 10 - https://github.com/ethereum/web3.js/pull/2122'}}, 'public': True, 'created_at': '2018-12-14T10:17:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754009907', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8f56ddb559885e05d89230f9072293d14f1945b6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:17:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754005666', 'type': 'GollumEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '8efd262bb66706ae968a59cf51241a692bab4956', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T10:16:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754002765', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137406190, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'before': '3796751efcc3fab71799450f1bff370d081438ec', 'commits': [{'sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'author': {'email': '31876119+qdgogogo@users.noreply.github.com', 'name': 'qd-ethan'}, 'message': 'Comment error (#18303)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/9940d93a43bab1f060e8fbfadff510c3298f2726'}]}, 'public': True, 'created_at': '2018-12-14T10:15:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754001592', 'type': 'PullRequestEvent', 'actor': {'id': 18472422, 'login': 'joshstevens19', 'display_login': 'joshstevens19', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'avatar_url': 'https://avatars.githubusercontent.com/u/18472422?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'opened', 'number': 2122, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122', 'id': 238671709, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjcxNzA5', 'html_url': 'https://github.com/ethereum/web3.js/pull/2122', 'diff_url': 'https://github.com/ethereum/web3.js/pull/2122.diff', 'patch_url': 'https://github.com/ethereum/web3.js/pull/2122.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122', 'number': 2122, 'state': 'open', 'locked': False, 'title': 'Web3 eth', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'body': 'web3-eth types 👍 ', 'created_at': '2018-12-14T10:15:45Z', 'updated_at': '2018-12-14T10:15:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d', 'head': {'label': 'joshstevens19:web3-eth', 'ref': 'web3-eth', 'sha': 'd1e648444943a877441a69a535ec60dcf3d04e7d', 'user': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 156678793, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTY2Nzg3OTM=', 'name': 'web3.js', 'full_name': 'joshstevens19/web3.js', 'private': False, 'owner': {'login': 'joshstevens19', 'id': 18472422, 'node_id': 'MDQ6VXNlcjE4NDcyNDIy', 'avatar_url': 'https://avatars0.githubusercontent.com/u/18472422?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/joshstevens19', 'html_url': 'https://github.com/joshstevens19', 'followers_url': 'https://api.github.com/users/joshstevens19/followers', 'following_url': 'https://api.github.com/users/joshstevens19/following{/other_user}', 'gists_url': 'https://api.github.com/users/joshstevens19/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/joshstevens19/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/joshstevens19/subscriptions', 'organizations_url': 'https://api.github.com/users/joshstevens19/orgs', 'repos_url': 'https://api.github.com/users/joshstevens19/repos', 'events_url': 'https://api.github.com/users/joshstevens19/events{/privacy}', 'received_events_url': 'https://api.github.com/users/joshstevens19/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/joshstevens19/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/joshstevens19/web3.js', 'forks_url': 'https://api.github.com/repos/joshstevens19/web3.js/forks', 'keys_url': 'https://api.github.com/repos/joshstevens19/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/joshstevens19/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/joshstevens19/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/joshstevens19/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/joshstevens19/web3.js/events', 'assignees_url': 'https://api.github.com/repos/joshstevens19/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/joshstevens19/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/joshstevens19/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/joshstevens19/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/joshstevens19/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/joshstevens19/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/joshstevens19/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/joshstevens19/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/joshstevens19/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/joshstevens19/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/joshstevens19/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/joshstevens19/web3.js/merges', 'archive_url': 'https://api.github.com/repos/joshstevens19/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/joshstevens19/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/joshstevens19/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/joshstevens19/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/joshstevens19/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/joshstevens19/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/joshstevens19/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/joshstevens19/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/joshstevens19/web3.js/deployments', 'created_at': '2018-11-08T09:02:56Z', 'updated_at': '2018-11-17T23:52:35Z', 'pushed_at': '2018-12-14T10:15:02Z', 'git_url': 'git://github.com/joshstevens19/web3.js.git', 'ssh_url': 'git@github.com:joshstevens19/web3.js.git', 'clone_url': 'https://github.com/joshstevens19/web3.js.git', 'svn_url': 'https://github.com/joshstevens19/web3.js', 'homepage': '', 'size': 36736, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'JavaScript', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:ethereumProvider', 'ref': 'ethereumProvider', 'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 24655114, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNDY1NTExNA==', 'name': 'web3.js', 'full_name': 'ethereum/web3.js', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.js', 'description': 'Ethereum JavaScript API', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.js', 'forks_url': 'https://api.github.com/repos/ethereum/web3.js/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.js/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.js/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.js/deployments', 'created_at': '2014-09-30T20:50:37Z', 'updated_at': '2018-12-14T09:59:26Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/ethereum/web3.js.git', 'ssh_url': 'git@github.com:ethereum/web3.js.git', 'clone_url': 'https://github.com/ethereum/web3.js.git', 'svn_url': 'https://github.com/ethereum/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 7317, 'watchers_count': 7317, 'language': 'JavaScript', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 2181, 'mirror_url': None, 'archived': False, 'open_issues_count': 368, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'forks': 2181, 'open_issues': 368, 'watchers': 7317, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122'}, 'html': {'href': 'https://github.com/ethereum/web3.js/pull/2122'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/issues/2122/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.js/pulls/2122/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.js/statuses/d1e648444943a877441a69a535ec60dcf3d04e7d'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 724, 'deletions': 9, 'changed_files': 7}}, 'public': True, 'created_at': '2018-12-14T10:15:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8754000431', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18303, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303', 'id': 238355051, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzU1MDUx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18303', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18303.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18303.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303', 'number': 18303, 'state': 'closed', 'locked': False, 'title': 'core/tx_cacher: Small comment error', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This is just a comment word misspelled', 'created_at': '2018-12-13T11:27:18Z', 'updated_at': '2018-12-14T10:15:32Z', 'closed_at': '2018-12-14T10:15:32Z', 'merged_at': '2018-12-14T10:15:32Z', 'merge_commit_sha': '9940d93a43bab1f060e8fbfadff510c3298f2726', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b', 'head': {'label': 'qdgogogo:master', 'ref': 'master', 'sha': '60a98b030d1bd2744c73f00830966cf2307d646b', 'user': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153065737, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTMwNjU3Mzc=', 'name': 'go-ethereum', 'full_name': 'qdgogogo/go-ethereum', 'private': False, 'owner': {'login': 'qdgogogo', 'id': 31876119, 'node_id': 'MDQ6VXNlcjMxODc2MTE5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31876119?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/qdgogogo', 'html_url': 'https://github.com/qdgogogo', 'followers_url': 'https://api.github.com/users/qdgogogo/followers', 'following_url': 'https://api.github.com/users/qdgogogo/following{/other_user}', 'gists_url': 'https://api.github.com/users/qdgogogo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/qdgogogo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/qdgogogo/subscriptions', 'organizations_url': 'https://api.github.com/users/qdgogogo/orgs', 'repos_url': 'https://api.github.com/users/qdgogogo/repos', 'events_url': 'https://api.github.com/users/qdgogogo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/qdgogogo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/qdgogogo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/qdgogogo/go-ethereum', 'forks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/qdgogogo/go-ethereum/deployments', 'created_at': '2018-10-15T06:48:24Z', 'updated_at': '2018-12-13T11:22:28Z', 'pushed_at': '2018-12-13T11:22:21Z', 'git_url': 'git://github.com/qdgogogo/go-ethereum.git', 'ssh_url': 'git@github.com:qdgogogo/go-ethereum.git', 'clone_url': 'https://github.com/qdgogogo/go-ethereum.git', 'svn_url': 'https://github.com/qdgogogo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106813, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:15:32Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 853, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 853, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18303'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18303/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18303/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/60a98b030d1bd2744c73f00830966cf2307d646b'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:15:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753992098', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18294, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294', 'id': 238272662, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MjcyNjYy', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18294', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18294.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18294.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294', 'number': 18294, 'state': 'closed', 'locked': False, 'title': 'Update interfaces.go', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-13T05:52:56Z', 'updated_at': '2018-12-14T10:14:00Z', 'closed_at': '2018-12-14T10:14:00Z', 'merged_at': None, 'merge_commit_sha': '68fe4ea495ce2d9048821926bbecfe07c824fd05', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079', 'head': {'label': 'shangsony:patch-1', 'ref': 'patch-1', 'sha': '5daec733cc12f5be4e953f64bfdb788bfe731079', 'user': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161590474, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE1OTA0NzQ=', 'name': 'go-ethereum', 'full_name': 'shangsony/go-ethereum', 'private': False, 'owner': {'login': 'shangsony', 'id': 19890858, 'node_id': 'MDQ6VXNlcjE5ODkwODU4', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19890858?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/shangsony', 'html_url': 'https://github.com/shangsony', 'followers_url': 'https://api.github.com/users/shangsony/followers', 'following_url': 'https://api.github.com/users/shangsony/following{/other_user}', 'gists_url': 'https://api.github.com/users/shangsony/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/shangsony/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/shangsony/subscriptions', 'organizations_url': 'https://api.github.com/users/shangsony/orgs', 'repos_url': 'https://api.github.com/users/shangsony/repos', 'events_url': 'https://api.github.com/users/shangsony/events{/privacy}', 'received_events_url': 'https://api.github.com/users/shangsony/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/shangsony/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/shangsony/go-ethereum', 'forks_url': 'https://api.github.com/repos/shangsony/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/shangsony/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/shangsony/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/shangsony/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/shangsony/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/shangsony/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/shangsony/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/shangsony/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/shangsony/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/shangsony/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/shangsony/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/shangsony/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/shangsony/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/shangsony/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/shangsony/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/shangsony/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/shangsony/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/shangsony/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/shangsony/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/shangsony/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/shangsony/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/shangsony/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/shangsony/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/shangsony/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/shangsony/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/shangsony/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/shangsony/go-ethereum/deployments', 'created_at': '2018-12-13T05:51:54Z', 'updated_at': '2018-12-13T05:52:05Z', 'pushed_at': '2018-12-13T05:52:44Z', 'git_url': 'git://github.com/shangsony/go-ethereum.git', 'ssh_url': 'git@github.com:shangsony/go-ethereum.git', 'clone_url': 'https://github.com/shangsony/go-ethereum.git', 'svn_url': 'https://github.com/shangsony/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107603, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4e6f53ac3360c4e90fdb419e7073e4316b2a49f7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:08:49Z', 'pushed_at': '2018-12-14T10:08:12Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 854, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 854, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18294'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18294/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18294/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/5daec733cc12f5be4e953f64bfdb788bfe731079'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 0, 'changed_files': 0}}, 'public': True, 'created_at': '2018-12-14T10:14:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753984053', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523', 'pull_request_review_id': 185042776, 'id': 241703523, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMzUyMw==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': 24, 'original_position': 24, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"@ekpyron Actually it does make sense the way I wrote it, here, because it eliminates the need of constructors as long as you don't need custom logic in the constructor bodies.\", 'created_at': '2018-12-14T10:12:32Z', 'updated_at': '2018-12-14T10:12:33Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241703523'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241703523'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:12:33Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:12:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963192', 'type': 'PushEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'push_id': 3137385470, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '3796751efcc3fab71799450f1bff370d081438ec', 'before': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'commits': [{'sha': '3796751efcc3fab71799450f1bff370d081438ec', 'author': {'email': 'martin@swende.se', 'name': 'Martin Holst Swende'}, 'message': 'rpc: add application/json-rpc as accepted content type, fixes #18293 (#18310)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/go-ethereum/commits/3796751efcc3fab71799450f1bff370d081438ec'}]}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963172', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18293/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18293', 'id': 390408146, 'node_id': 'MDU6SXNzdWUzOTA0MDgxNDY=', 'number': 18293, 'title': 'geth should accept application/json-rpc as Content-Type', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-12T21:04:37Z', 'updated_at': '2018-12-14T10:08:43Z', 'closed_at': '2018-12-14T10:08:43Z', 'author_association': 'MEMBER', 'body': 'currently when using the content-type `application/json-rpc`\\r\\nthen the geth rpc server answers with 415 (Unsupported Media Type)\\r\\n\\r\\nBut this SHOULD be the Content-Type for json rpc as in: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T10:08:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753963052', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 56763, 'login': 'christianparpart', 'display_login': 'christianparpart', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'avatar_url': 'https://avatars.githubusercontent.com/u/56763?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358', 'pull_request_review_id': 185041327, 'id': 241702358, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTcwMjM1OA==', 'diff_hunk': '@@ -304,7 +304,7 @@ KnownState::StoreOperation KnownState::storeInStorage(\\n \\n \\tAssemblyItem item(Instruction::SSTORE, _location);\\n \\tId id = m_expressionClasses->find(item, {_slot, _value}, true, m_sequenceNumber);\\n-\\tStoreOperation operation(StoreOperation::Storage, _slot, m_sequenceNumber, id);\\n+\\tStoreOperation operation {StoreOperation::Storage, _slot, m_sequenceNumber, id};', 'path': 'libevmasm/KnownState.cpp', 'position': 5, 'original_position': 5, 'commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually, I personally prefer spacing here, for readability. Also goes in line with `inline class member initialization`, such as `int m_value {1234};`. it would just look unreadable in not having that space there (but that's my opinion). What do you think? Maybe we should globally revisit our coding style guidelines in general (as a team). :)\", 'created_at': '2018-12-14T10:08:42Z', 'updated_at': '2018-12-14T10:08:42Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241702358'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241702358'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241026062}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T10:08:42Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ebdc7d69a17b20818e1cf87235086477ca085178', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '35d6db880a7c36744934f626b69a2329ea484722', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T10:02:12Z', 'pushed_at': '2018-12-13T16:40:33Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24938, 'stargazers_count': 6438, 'watchers_count': 6438, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1735, 'mirror_url': None, 'archived': False, 'open_issues_count': 570, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1735, 'open_issues': 570, 'watchers': 6438, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/2b5bc6d892375402fedaa30a53eae992fb7aeceb'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T10:08:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753959914', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'closed', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T10:08:11Z', 'closed_at': '2018-12-14T10:08:11Z', 'merged_at': '2018-12-14T10:08:11Z', 'merge_commit_sha': '3796751efcc3fab71799450f1bff370d081438ec', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '82c0d42a357455f1768b9a3758e1ef39afd94ebb', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:28:27Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137982, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T10:05:33Z', 'pushed_at': '2018-12-14T10:08:11Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22062, 'watchers_count': 22062, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 856, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 856, 'watchers': 22062, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/82c0d42a357455f1768b9a3758e1ef39afd94ebb'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 1, 'maintainer_can_modify': False, 'commits': 1, 'additions': 20, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T10:08:12Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948406', 'type': 'PushEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137378095, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'before': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'commits': [{'sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'author': {'email': 'christoph.burgdorf@gmail.com', 'name': 'Christoph Burgdorf'}, 'message': 'Teach TrinityConfig to handle sub configs\\n\\nThis commits adds sub config handling to TrinityConfig.\\nThis is needed to support different kinds of nodes\\nthat are loosely related yet different enough to\\ndemand different configurations.\\n\\nThis allows us to handle shared configs on a base\\nlevel as well as mixing in different sub configs\\ndepending on the use case.', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771'}]}, 'public': True, 'created_at': '2018-12-14T10:06:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753948149', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1566, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'closed', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T10:05:59Z', 'closed_at': '2018-12-14T10:05:59Z', 'merged_at': '2018-12-14T10:05:59Z', 'merge_commit_sha': '0b0b6ecf5b8700c33d4fb9603a3ec4a8d1cad771', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T10:05:59Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 163, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 28, 'maintainer_can_modify': False, 'commits': 1, 'additions': 121, 'deletions': 21, 'changed_files': 6}}, 'public': True, 'created_at': '2018-12-14T10:06:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753945736', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:05:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753940765', 'type': 'WatchEvent', 'actor': {'id': 2937764, 'login': 'z08053520', 'display_login': 'z08053520', 'gravatar_id': '', 'url': 'https://api.github.com/users/z08053520', 'avatar_url': 'https://avatars.githubusercontent.com/u/2937764?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:04:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753915388', 'type': 'WatchEvent', 'actor': {'id': 8391134, 'login': 'lishenglincn', 'display_login': 'lishenglincn', 'gravatar_id': '', 'url': 'https://api.github.com/users/lishenglincn', 'avatar_url': 'https://avatars.githubusercontent.com/u/8391134?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T10:00:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753911225', 'type': 'WatchEvent', 'actor': {'id': 10215844, 'login': 'lag945', 'display_login': 'lag945', 'gravatar_id': '', 'url': 'https://api.github.com/users/lag945', 'avatar_url': 'https://avatars.githubusercontent.com/u/10215844?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:59:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753900409', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975', 'pull_request_review_id': 185037009, 'id': 241698975, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5ODk3NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': None, 'original_position': 138, 'commit_id': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I will move this into another PR so that we can discuss this separately. I'd also be interested to hear what @carver thinks about it. Something in me really likes to treat the beacon node as a separate program here. E.g what about the `NodeKey` would the regular trinity node share that with the beacon node? It seems cleaner to me to keep the root directories of each of them clearly separated..also in terms of logs etc.\", 'created_at': '2018-12-14T09:57:31Z', 'updated_at': '2018-12-14T09:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241698975'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241698975'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7f8da60b68e0e2ede47ffa9a56b550564e23f09d', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '31b1e0c43b75a3c512a6384c150d31c898a9eb65', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-14T09:53:06Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:53:08Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6614, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/31b1e0c43b75a3c512a6384c150d31c898a9eb65'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753860032', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 29854669, 'login': 'jannikluhn', 'display_login': 'jannikluhn', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'avatar_url': 'https://avatars.githubusercontent.com/u/29854669?'}, 'repo': {'id': 153663395, 'name': 'ethereum/py-ssz', 'url': 'https://api.github.com/repos/ethereum/py-ssz'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762', 'pull_request_review_id': 185034184, 'id': 241696762, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5Njc2Mg==', 'diff_hunk': '@@ -0,0 +1,96 @@\\n+from collections.abc import (\\n+ Iterable,\\n+)\\n+\\n+from ssz.exceptions import (\\n+ DeserializationError,\\n+ SerializationError,\\n+)\\n+from ssz.sedes import (\\n+ address,\\n+ boolean,\\n+ hash32,\\n+ uint32,\\n+)\\n+\\n+\\n+class List:\\n+ \"\"\"\\n+ A sedes for lists.\\n+\\n+ WARNING: Avoid sets if possible, may not always lead to expected results\\n+ (This is because iteration in sets doesn\\'t always happen in the same order)\\n+ \"\"\"\\n+ LENGTH_BYTES = 4\\n+\\n+ def __init__(self, element_sedes):\\n+ # This sedes object corresponds to each element of the iterable\\n+ self.element_sedes = element_sedes\\n+\\n+ def serialize(self, val):\\n+ if not isinstance(val, Iterable):', 'path': 'ssz/sedes/list.py', 'position': 31, 'original_position': 31, 'commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'original_commit_id': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'jannikluhn', 'id': 29854669, 'node_id': 'MDQ6VXNlcjI5ODU0NjY5', 'avatar_url': 'https://avatars1.githubusercontent.com/u/29854669?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jannikluhn', 'html_url': 'https://github.com/jannikluhn', 'followers_url': 'https://api.github.com/users/jannikluhn/followers', 'following_url': 'https://api.github.com/users/jannikluhn/following{/other_user}', 'gists_url': 'https://api.github.com/users/jannikluhn/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jannikluhn/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jannikluhn/subscriptions', 'organizations_url': 'https://api.github.com/users/jannikluhn/orgs', 'repos_url': 'https://api.github.com/users/jannikluhn/repos', 'events_url': 'https://api.github.com/users/jannikluhn/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jannikluhn/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Agree with the string like checks. But I'd rather keep the `Iterable` as `Sequence` would exclude generators which might be nice to have in some cases.\", 'created_at': '2018-12-14T09:50:20Z', 'updated_at': '2018-12-14T09:50:20Z', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments/241696762'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10#discussion_r241696762'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}}, 'in_reply_to_id': 241546881}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10', 'id': 237769752, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NzY5NzUy', 'html_url': 'https://github.com/ethereum/py-ssz/pull/10', 'diff_url': 'https://github.com/ethereum/py-ssz/pull/10.diff', 'patch_url': 'https://github.com/ethereum/py-ssz/pull/10.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10', 'number': 10, 'state': 'open', 'locked': False, 'title': 'List', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'body': '## What was wrong?\\r\\nImplementing `serialization/deserialization` for `lists`\\r\\nIssue #4 \\r\\n\\r\\n## How was it fixed?\\r\\nBy following the implementation details in the spec\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSl7HYYG_75AsGlHxh05lceEI9egktAoA2hJZxZ6OY2Rb14nA_x)\\r\\n', 'created_at': '2018-12-11T17:44:26Z', 'updated_at': '2018-12-14T09:50:20Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5dc8d38d4ce7909c44d67655082713bd288beb6e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94', 'head': {'label': 'Bhargavasomu:list', 'ref': 'list', 'sha': '5577121e186fbeae1130144798c61f952f2a9e94', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159607108, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2MDcxMDg=', 'name': 'py-ssz', 'full_name': 'Bhargavasomu/py-ssz', 'private': False, 'owner': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Bhargavasomu/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': True, 'url': 'https://api.github.com/repos/Bhargavasomu/py-ssz', 'forks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bhargavasomu/py-ssz/deployments', 'created_at': '2018-11-29T04:23:32Z', 'updated_at': '2018-12-05T17:00:16Z', 'pushed_at': '2018-12-13T17:14:06Z', 'git_url': 'git://github.com/Bhargavasomu/py-ssz.git', 'ssh_url': 'git@github.com:Bhargavasomu/py-ssz.git', 'clone_url': 'https://github.com/Bhargavasomu/py-ssz.git', 'svn_url': 'https://github.com/Bhargavasomu/py-ssz', 'homepage': None, 'size': 91, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'd87f05d70ad89d5adec49c88068db720400e1c0f', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 153663395, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM2NjMzOTU=', 'name': 'py-ssz', 'full_name': 'ethereum/py-ssz', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-ssz', 'description': 'Python implementation of the Simple Serialize encoding and decoding', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-ssz', 'forks_url': 'https://api.github.com/repos/ethereum/py-ssz/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-ssz/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-ssz/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-ssz/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-ssz/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-ssz/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-ssz/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-ssz/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-ssz/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-ssz/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-ssz/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-ssz/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-ssz/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-ssz/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-ssz/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-ssz/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-ssz/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-ssz/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-ssz/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-ssz/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-ssz/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-ssz/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-ssz/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-ssz/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-ssz/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-ssz/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-ssz/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-ssz/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-ssz/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-ssz/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-ssz/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-ssz/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-ssz/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-ssz/deployments', 'created_at': '2018-10-18T17:41:29Z', 'updated_at': '2018-12-13T15:39:25Z', 'pushed_at': '2018-12-13T17:14:08Z', 'git_url': 'git://github.com/ethereum/py-ssz.git', 'ssh_url': 'git@github.com:ethereum/py-ssz.git', 'clone_url': 'https://github.com/ethereum/py-ssz.git', 'svn_url': 'https://github.com/ethereum/py-ssz', 'homepage': None, 'size': 78, 'stargazers_count': 4, 'watchers_count': 4, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 3, 'mirror_url': None, 'archived': False, 'open_issues_count': 5, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 3, 'open_issues': 5, 'watchers': 4, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10'}, 'html': {'href': 'https://github.com/ethereum/py-ssz/pull/10'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/issues/10/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-ssz/pulls/10/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-ssz/statuses/5577121e186fbeae1130144798c61f952f2a9e94'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:50:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753811671', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:41:30Z', 'closed_at': '2018-12-14T09:41:30Z', 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:41:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753807041', 'type': 'IssueCommentEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507', 'id': 314468877, 'node_id': 'MDU6SXNzdWUzMTQ0Njg4Nzc=', 'number': 16507, 'title': \"Don't silently accept RPC requests directed to IP address\", 'user': {'login': 'lionello', 'id': 591860, 'node_id': 'MDQ6VXNlcjU5MTg2MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/591860?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lionello', 'html_url': 'https://github.com/lionello', 'followers_url': 'https://api.github.com/users/lionello/followers', 'following_url': 'https://api.github.com/users/lionello/following{/other_user}', 'gists_url': 'https://api.github.com/users/lionello/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lionello/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lionello/subscriptions', 'organizations_url': 'https://api.github.com/users/lionello/orgs', 'repos_url': 'https://api.github.com/users/lionello/repos', 'events_url': 'https://api.github.com/users/lionello/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lionello/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-04-16T00:48:23Z', 'updated_at': '2018-12-14T09:40:39Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"I was surprised to discover that `--rpcvhosts` does not prevent connection by IP address. I could connect with `http://127.0.0.1:8545` even though `--rpcvhosts` defaults to `localhost`.\\r\\n\\r\\nThis line seems to suggest that this behavior was intentional: https://github.com/ethereum/go-ethereum/blob/e9b5e22ad121ef2251d1c72526c0994c03d2caf0/rpc/http.go#L234\\r\\n\\r\\n## Actual:\\r\\nRPC requests directed to host's IP address, with `Host` header set, are always accepted, even when `--rpcvhosts` explicitly mentions which host names to serve.\\r\\n\\r\\n## Expected:\\r\\nThe `Host` header of all RPC requests should be checked against the `--rpcvhosts` or `HTTPVirtualHosts` settings, regardless of whether it's an IP address or host name.\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447270575', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/16507#issuecomment-447270575', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/16507', 'id': 447270575, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI3MDU3NQ==', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:40:39Z', 'updated_at': '2018-12-14T09:40:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"Sorry for not answering until now, I didn't notice your response. \\r\\nSo, the `rpcvhosts` is not the correct protection mechanism against an attacker which can create fully custom arbitrary requests. It is solely meant to prevent attacks originating from your own browser, where the attacker (a webpage) has certain restrictions about what types of requests can be made. \\r\\n\\r\\nIf an attacker has your ip, and you are allowing network traffic over the port, then it's a bit futile to rely on rpcvhosts as a protection mechanism: the only thing preventing the attacker from interacting with your node is that he doesn't know the correct name to use. \\r\\n\\r\\nHowever, if you have a public DNS, then a simple RDNS lookup would yield it, and the attacker could also try to bruteforce names. I'm not even sure that we don't leak it ourselves in certain circumstance, e.g. if we supply origin headers in the responses and the same origin is used as the vhost. \\r\\n\\r\\nSo it's kind of solving the wrong problem and giving people a false sense of security. A better approach is to simply not allow internet access ot the port(s). \"}}, 'public': True, 'created_at': '2018-12-14T09:40:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753800921', 'type': 'WatchEvent', 'actor': {'id': 26370659, 'login': 'shimakaze-git', 'display_login': 'shimakaze-git', 'gravatar_id': '', 'url': 'https://api.github.com/users/shimakaze-git', 'avatar_url': 'https://avatars.githubusercontent.com/u/26370659?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753798202', 'type': 'WatchEvent', 'actor': {'id': 77268, 'login': 'jolestar', 'display_login': 'jolestar', 'gravatar_id': '', 'url': 'https://api.github.com/users/jolestar', 'avatar_url': 'https://avatars.githubusercontent.com/u/77268?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:39:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753785836', 'type': 'IssueCommentEvent', 'actor': {'id': 22738317, 'login': 'mratsim', 'display_login': 'mratsim', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'avatar_url': 'https://avatars.githubusercontent.com/u/22738317?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308', 'id': 390622859, 'node_id': 'MDU6SXNzdWUzOTA2MjI4NTk=', 'number': 308, 'title': 'Lightclient, BeaconState and aggregation', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043872, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODcy', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/question', 'name': 'question', 'color': 'FFF1D0', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T10:52:44Z', 'updated_at': '2018-12-14T09:36:43Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"Looking at the current BeaconState (https://github.com/ethereum/eth2.0-specs/blob/c1a3b29145c84c6ac4422314b7b54898ac9f6693/specs/core/0_beacon-chain.md), the fields are defined the following way:\\r\\n\\r\\n```python\\r\\n{\\r\\n # Misc\\r\\n 'slot': 'uint64',\\r\\n 'genesis_time': 'uint64',\\r\\n 'fork_data': ForkData, # For versioning hard forks\\r\\n\\r\\n # Validator registry\\r\\n 'validator_registry': [ValidatorRecord],\\r\\n 'validator_registry_latest_change_slot': 'uint64',\\r\\n 'validator_registry_exit_count': 'uint64',\\r\\n 'validator_registry_delta_chain_tip': 'hash32', # For light clients to track deltas\\r\\n ...\\r\\n}\\r\\n```\\r\\n\\r\\nAnd BeaconBlocks are defined this way:\\r\\n\\r\\n```python\\r\\n{\\r\\n ## Header ##\\r\\n 'slot': 'uint64',\\r\\n # Skip list of ancestor beacon block hashes\\r\\n # i'th item is the most recent ancestor whose slot is a multiple of 2**i for i = 0, ..., 31\\r\\n 'parent_root': 'hash32',\\r\\n 'state_root': 'hash32',\\r\\n 'randao_reveal': 'hash32',\\r\\n 'candidate_pow_receipt_root': 'hash32',\\r\\n 'signature': ['uint384'],\\r\\n\\r\\n ## Body ##\\r\\n 'body': BeaconBlockBody,\\r\\n}\\r\\n```\\r\\n\\r\\nNotice that it's mentioning `signature` and not `aggregate_signature` like in `SlashableVoteData` and `Attestation` so it may be quite huge.\\r\\n\\r\\nWhat is the state that light clients must keep track of?\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447269514', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/308#issuecomment-447269514', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/308', 'id': 447269514, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2OTUxNA==', 'user': {'login': 'mratsim', 'id': 22738317, 'node_id': 'MDQ6VXNlcjIyNzM4MzE3', 'avatar_url': 'https://avatars3.githubusercontent.com/u/22738317?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mratsim', 'html_url': 'https://github.com/mratsim', 'followers_url': 'https://api.github.com/users/mratsim/followers', 'following_url': 'https://api.github.com/users/mratsim/following{/other_user}', 'gists_url': 'https://api.github.com/users/mratsim/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mratsim/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mratsim/subscriptions', 'organizations_url': 'https://api.github.com/users/mratsim/orgs', 'repos_url': 'https://api.github.com/users/mratsim/repos', 'events_url': 'https://api.github.com/users/mratsim/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mratsim/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:36:43Z', 'updated_at': '2018-12-14T09:36:43Z', 'author_association': 'CONTRIBUTOR', 'body': '`uint384` or `hash48` would be better'}}, 'public': True, 'created_at': '2018-12-14T09:36:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753771491', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991', 'pull_request_review_id': 185027974, 'id': 241691991, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY5MTk5MQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">A lot of my reasoning is centered around how the Config classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nAh, I missed that goal to spread out the `args` into individual parameters for better testing. That sounds reasonable.\\r\\n\\r\\nI would however, still favor to at least provide an `__init__(trinity_config: TrinityConfig)__` and have child classes overwrite and extend that. Not having the `trinity_config` access standardized just doesn't sit so well with me. \", 'created_at': '2018-12-14T09:34:04Z', 'updated_at': '2018-12-14T09:34:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241691991'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241691991'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-14T09:34:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9b90b009eb4cef849811f2a599c69cecf6d09885', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:34:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753766430', 'type': 'WatchEvent', 'actor': {'id': 15799431, 'login': 'xiaoch05', 'display_login': 'xiaoch05', 'gravatar_id': '', 'url': 'https://api.github.com/users/xiaoch05', 'avatar_url': 'https://avatars.githubusercontent.com/u/15799431?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:33:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753763965', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/146', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/146/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/146/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/146/events', 'html_url': 'https://github.com/ethereum/hive/issues/146', 'id': 383763681, 'node_id': 'MDU6SXNzdWUzODM3NjM2ODE=', 'number': 146, 'title': 'ethereum/consensus simulator failure', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 0, 'created_at': '2018-11-23T10:05:36Z', 'updated_at': '2018-12-14T09:32:40Z', 'closed_at': '2018-12-14T09:32:40Z', 'author_association': 'COLLABORATOR', 'body': 'These pops up:\\r\\n\\r\\n```\\r\\nINFO[11-23|10:04:13] message from simulator simulator=ethereum/consensus log=\"Failed to kill node Node[75de696d]@172.18.0.10: Traceback (most recent call last):\\\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\\\n self.hive.killNode(node)\\\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\\\n\"\\r\\n```\\r\\n\\r\\n```\\r\\nFailed to kill node Node[75de696d]@172.18.0.10: \\r\\nTraceback (most recent call last):\\r\\n File \\\\\"/hivemodel.py\\\\\", line 247, in _startNodeAndRunTest\\r\\n self.hive.killNode(node)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 137, in killNode\\r\\n self._delete(\\\\\"/nodes/%s\\\\\" % node.nodeId)\\r\\n File \\\\\"/hivemodel.py\\\\\", line 86, in _delete\\r\\n raise Exception(\\\\\"Failed to DELETE req (%d)\\\\\" % req.status_code)\\\\nException: Failed to DELETE req (404)\\r\\n```\\r\\nSo the framework is giving us a `404` on deletion'}}, 'public': True, 'created_at': '2018-12-14T09:32:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753760058', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 93610217, 'name': 'ethereum/evmlab', 'url': 'https://api.github.com/repos/ethereum/evmlab'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/evmlab/issues/102', 'repository_url': 'https://api.github.com/repos/ethereum/evmlab', 'labels_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/comments', 'events_url': 'https://api.github.com/repos/ethereum/evmlab/issues/102/events', 'html_url': 'https://github.com/ethereum/evmlab/issues/102', 'id': 371486037, 'node_id': 'MDU6SXNzdWUzNzE0ODYwMzc=', 'number': 102, 'title': 'Fuzzer engine, spurious failures', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-10-18T11:32:29Z', 'updated_at': '2018-12-14T09:31:54Z', 'closed_at': '2018-12-14T09:31:54Z', 'author_association': 'COLLABORATOR', 'body': 'Sometimes, this happens:\\r\\n```\\r\\n2018-10-18 09:33:58,001 - INFO - Starting processes for [\\'geth\\', \\'parity\\'] on test DEFAULT-Wed_09_22_38-11214-573185\\r\\n2018-10-18 09:33:58,179 - INFO - All procs finished for test DEFAULT-Wed_09_22_38-11214-573183\\r\\n2018-10-18 09:33:58,232 - INFO - Processed 3228 steps for geth on test DEFAULT-Wed_09_22_38-11214-573183, pTime:53.07 ms\\r\\nTraceback (most recent call last):\\r\\n File \"utilities/fuzzerweb.py\", line 59, in \\r\\n main()\\r\\n File \"utilities/fuzzerweb.py\", line 55, in main\\r\\n f.startFuzzing()\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 593, in startFuzzing\\r\\n self.postprocess_test(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 524, in postprocess_test\\r\\n data = end_processes(test)\\r\\n File \"/datadrive/evmlab/utilities/fuzzer.py\", line 424, in end_processes\\r\\n with open(test.tempTraceLocation(client_name)) as output:\\r\\nFileNotFoundError: [Errno 2] No such file or directory: \\'/datadrive/evmlabtemp/logs/DEFAULT-Wed_09_22_38-11214-573183-parity.trace.log\\'\\r\\n```\\r\\nI ran the testcase in question manually inside the parity docker image, and it worked fine. But for some reason, the file didn\\'t exist. Disk was not full. It happened after `573182` testcases, so it doesn\\'t happen often. '}}, 'public': True, 'created_at': '2018-12-14T09:31:54Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753759531', 'type': 'IssuesEvent', 'actor': {'id': 5955411, 'login': 'cheatfate', 'display_login': 'cheatfate', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'avatar_url': 'https://avatars.githubusercontent.com/u/5955411?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/320/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/320', 'id': 391032309, 'node_id': 'MDU6SXNzdWUzOTEwMzIzMDk=', 'number': 320, 'title': 'BLS signature verification requires double hashing message.', 'user': {'login': 'cheatfate', 'id': 5955411, 'node_id': 'MDQ6VXNlcjU5NTU0MTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/5955411?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cheatfate', 'html_url': 'https://github.com/cheatfate', 'followers_url': 'https://api.github.com/users/cheatfate/followers', 'following_url': 'https://api.github.com/users/cheatfate/following{/other_user}', 'gists_url': 'https://api.github.com/users/cheatfate/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cheatfate/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cheatfate/subscriptions', 'organizations_url': 'https://api.github.com/users/cheatfate/orgs', 'repos_url': 'https://api.github.com/users/cheatfate/repos', 'events_url': 'https://api.github.com/users/cheatfate/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cheatfate/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T09:31:47Z', 'updated_at': '2018-12-14T09:31:47Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"BLS signature verification requires double hashing message.\\r\\n\\r\\nIn current version of [BLS signature verification](https://github.com/ethereum/eth2.0-specs/blob/master/specs/bls_verify.md#hash_to_g2) present such lines:\\r\\n\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + message), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + message), 'big')\\r\\n```\\r\\n\\r\\nIn such case `message` hashing performs 2x times, this can be ineffective, because\\r\\nmessage can be big in size or data gathering process for `message` can be cpu intensive task.\\r\\n\\r\\nThis is pseudo-code for current hashing method:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(message)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(message)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see only `domain` field hashing can be cached and optimized, and `hash(message)` must be performed twice for both `xre` and `xi`.\\r\\n\\r\\nIf you change current hashing method to:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x01'), 'big')\\r\\n x_im = int.from_bytes(hash(message + bytes8(domain) + b'\\\\x02'), 'big')\\r\\n```\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\\r\\nAs you can see not only `domain` argument cached, but `message` too.\\r\\nSo `hash(message)` operation performed only once.\\r\\n\\r\\nBut if you dont like scheme above, here is one more:\\r\\n\\r\\n```python\\r\\n x_re = int.from_bytes(hash(bytes8(domain) + b'\\\\x01' + hash(message)), 'big')\\r\\n x_im = int.from_bytes(hash(bytes8(domain) + b'\\\\x02' + hash(message)), 'big')\\r\\n```\\r\\n\\r\\nIn such way you can perform `hash(message)` only one time too.\\r\\n\\r\\nPseudo code will looks like this:\\r\\n\\r\\n```nim\\r\\nvar ctx1, ctx2: keccak256\\r\\nctx1.init()\\r\\nctx1.update(message)\\r\\nvar msgdigest = ctx1.finish()\\r\\nctx1.init()\\r\\nctx1.update(bytes(domain))\\r\\nctx2 = ctx1\\r\\nctx1.update(bytes(0x01))\\r\\nctx1.update(msgdigest)\\r\\nvar xre = ctx1.finish()\\r\\nctx2.update(bytes(0x02))\\r\\nctx2.update(msgdigest)\\r\\nvar xi = ctx2.finish()\\r\\n```\\r\\n\"}}, 'public': True, 'created_at': '2018-12-14T09:31:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753758636', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/hive/issues/129', 'repository_url': 'https://api.github.com/repos/ethereum/hive', 'labels_url': 'https://api.github.com/repos/ethereum/hive/issues/129/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/hive/issues/129/comments', 'events_url': 'https://api.github.com/repos/ethereum/hive/issues/129/events', 'html_url': 'https://github.com/ethereum/hive/issues/129', 'id': 367139971, 'node_id': 'MDU6SXNzdWUzNjcxMzk5NzE=', 'number': 129, 'title': 'Multistage docker build does not reload base image', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-10-05T09:55:13Z', 'updated_at': '2018-12-14T09:31:38Z', 'closed_at': '2018-12-14T09:31:38Z', 'author_association': 'COLLABORATOR', 'body': \"aleth seems to only ever run on `40566e5` : http://hivetests.ethstats.net/. Seems there's some problem with caching in hive, where it doesn't refetch the base image when building\\r\\n\\r\\nhttps://github.com/karalabe/hive/blob/master/clients/aleth:nightly/Dockerfile#L10\\r\\n\\r\\ncc @chfast \"}}, 'public': True, 'created_at': '2018-12-14T09:31:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753757292', 'type': 'IssuesEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18181/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18181', 'id': 384269858, 'node_id': 'MDU6SXNzdWUzODQyNjk4NTg=', 'number': 18181, 'title': 'Performance: disable EvictNS', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 72233652, 'node_id': 'MDU6TGFiZWw3MjIzMzY1Mg==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/enhancement', 'name': 'enhancement', 'color': '84b6eb', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-11-26T10:39:56Z', 'updated_at': '2018-12-14T09:31:22Z', 'closed_at': '2018-12-14T09:31:22Z', 'author_association': 'CONTRIBUTOR', 'body': 'See https://github.com/syndtr/goleveldb/issues/245 \\r\\n\\r\\nProfiling done while importing blocks during a full sync, somewhere around the 4M -range. \\r\\n![profile002](https://user-images.githubusercontent.com/142290/49008933-6d2b0580-f16f-11e8-8869-a15f6c1788c2.gif)\\r\\n\\r\\nEvictNS responsible for `10.28s` , which is more than double the time spent on `keccakF1600`'}}, 'public': True, 'created_at': '2018-12-14T09:31:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753557', 'type': 'IssuesEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753753536', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583', 'id': 390123862, 'node_id': 'MDU6SXNzdWUzOTAxMjM4NjI=', 'number': 1583, 'title': \"PeerPool / Discovery don't answer event bus requests after some time\", 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 630871939, 'node_id': 'MDU6TGFiZWw2MzA4NzE5Mzk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20bug', 'name': 'type: bug', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-12T08:55:49Z', 'updated_at': '2018-12-14T09:30:39Z', 'closed_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"### What is wrong?\\r\\n\\r\\nYesterday I put #1556 to work on a server ant today I noticed that the node has more or less stalled with the log being overwhelmed by these warnings.\\r\\n\\r\\n```\\r\\n WARNING 12-12 08:36:55 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:36:56 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:36:59 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:00 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:01 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:04 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:06 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:06 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:09 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n WARNING 12-12 08:37:11 EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n WARNING 12-12 08:37:14 ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n```\\r\\n\\r\\nThe interesting thing here is, I noticed this one before:\\r\\n\\r\\n>EthstatsService Timeout: PeerPool did not answer PeerCountRequest\\r\\n\\r\\nAnd so far, I thought this may just be the `PeerPool` being to busy to answer the request by the `EthstatsService` timely.\\r\\n\\r\\nBut now after seeing this one, I feel like I need to look deeper into this.\\r\\n\\r\\n>ETHPeerPool Discovery did not answer PeerCandidateRequest in time\\r\\n\\r\\nI also ran `trinity attach` to see if `w3.net.peerCount` would be responding and in fact it times out. The same happens with `w3.net.version` which isn't even served from the PeerPool (but it is still running on the same event loop / event bus endpoint)\\r\\n\\r\\nThis leads to the question what if there is some form of memory leak / bug in lahja where after some time, the event bus just stalls and cant process any further messages.\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nThere are two things I plan to do:\\r\\n\\r\\n1. I will take the existing lahja benchmark and start it with parameters that will effectively cause a very long run over several hours to see if they stall at some point. This can give us an indicator if there's something wrong with lahja.\\r\\n\\r\\n**Update**: Started this now: `python scripts/perf_benchmark.py --num-processes 10 --num-events 36000 --throttle 0.5 &> benchmark2.log`\\r\\n\\r\\nThis should push broadcast one event every 0.5 seconds, to 10 connected processes, 36000 events in total. If my math is correct, this would run over the next 5 hours.\\r\\n\\r\\n2. I will write a tiny stupid plugin to just ping pong messages via the EventBus that I will run in the context of Trinity for several hours to see if that stalls as well. This can give us an indicator if there's something wrong with how the event bus is integrated in Trinity or it may also show us that there's no problem with the EventBus but with the PeerPool / Discovery instead.\\r\\n\\r\\n3. Looking through the logs to find anything suspicious around the time when it stops responding to requests.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447267963', 'html_url': 'https://github.com/ethereum/py-evm/issues/1583#issuecomment-447267963', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1583', 'id': 447267963, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Nzk2Mw==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:30:39Z', 'updated_at': '2018-12-14T09:30:39Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues. My best bet right now is that there may be something in our `networking` process that can lead to a stalled event loop in general (which could explain the described symptoms) but there's no strong evidence that this would be caused by the `EventBus`. That doesn't mean it isn't, just that I couldn't find strong evidence for it.\\r\\n\\r\\nI will close this for now.\"}}, 'public': True, 'created_at': '2018-12-14T09:30:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753739327', 'type': 'WatchEvent', 'actor': {'id': 45157707, 'login': 'Dreampursers', 'display_login': 'Dreampursers', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dreampursers', 'avatar_url': 'https://avatars.githubusercontent.com/u/45157707?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:28:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734627', 'type': 'PullRequestEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1584, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'id': 238000103, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'number': 1584, 'state': 'closed', 'locked': False, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 ', 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:18Z', 'closed_at': '2018-12-14T09:27:17Z', 'merged_at': None, 'merge_commit_sha': '9c9a46da881c6c3ae87017dd59eb90b33736c1ba', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'head': {'label': 'cburgdorf:christoph/debug/debug-lahja-stability', 'ref': 'christoph/debug/debug-lahja-stability', 'sha': 'c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '5055f5be75c0a784158df4f35bd2990afddb49c9', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T08:56:37Z', 'pushed_at': '2018-12-14T09:20:00Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1584'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/c755d6e4c8c6e9941e777023d45ee9b5ab94c6f6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 142, 'deletions': 0, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753734593', 'type': 'IssueCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'id': 390179066, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDAwMTAz', 'number': 1584, 'title': 'Debug Plugin', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T11:17:29Z', 'updated_at': '2018-12-14T09:27:17Z', 'closed_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1584', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1584.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1584.patch'}, 'body': '### This is not meant to ever get merged\\r\\n\\r\\nThis is just an experiment that I want to put to work for some hours to figure out if we have a problem with the stability of the EventBus (see #1583 '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447266996', 'html_url': 'https://github.com/ethereum/py-evm/pull/1584#issuecomment-447266996', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1584', 'id': 447266996, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI2Njk5Ng==', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T09:27:17Z', 'updated_at': '2018-12-14T09:27:17Z', 'author_association': 'CONTRIBUTOR', 'body': \"I have done various long running tests but I wasn't able to reproduce any of the issues stated in #1583. \"}}, 'public': True, 'created_at': '2018-12-14T09:27:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753689564', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240', 'pull_request_review_id': 185021965, 'id': 241687240, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY4NzI0MA==', 'diff_hunk': '@@ -36,11 +36,14 @@ import (\\n )\\n \\n const (\\n-\\tcontentType = \"application/json\"\\n \\tmaxRequestContentLength = 1024 * 512\\n )\\n \\n-var nullAddr, _ = net.ResolveTCPAddr(\"tcp\", \"127.0.0.1:0\")\\n+var (\\n+\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\"}', 'path': 'rpc/http.go', 'position': 10, 'original_position': 10, 'commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'original_commit_id': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n\\tacceptedContentTypes = []string{\"application/json\", \"application/json-rpc\", \"application/jsonrequest\"}\\r\\n```\\r\\n\\r\\nlet\\'s directly add application/jsonrequest so we cover the full set given here: https://www.jsonrpc.org/historical/json-rpc-over-http.html#http-header', 'created_at': '2018-12-14T09:18:48Z', 'updated_at': '2018-12-14T09:18:48Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241687240'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310#discussion_r241687240'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:18:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e33ed2b0216ada4345f15254a29395f9ebbed2a6', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7712, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7712, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T09:18:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753659310', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137228247, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'before': '151e73fb87a7721d1d3f9d25e40ece1c454991a0', 'commits': [{'sha': '08ecb90922c87a21d22aad7396958e718e04d2a9', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-13-8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/08ecb90922c87a21d22aad7396958e718e04d2a9'}]}, 'public': True, 'created_at': '2018-12-14T09:12:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753648846', 'type': 'ForkEvent', 'actor': {'id': 39949991, 'login': 'Drunpi', 'display_login': 'Drunpi', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'avatar_url': 'https://avatars.githubusercontent.com/u/39949991?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161759923, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTk5MjM=', 'name': 'go-ethereum', 'full_name': 'Drunpi/go-ethereum', 'private': False, 'owner': {'login': 'Drunpi', 'id': 39949991, 'node_id': 'MDQ6VXNlcjM5OTQ5OTkx', 'avatar_url': 'https://avatars3.githubusercontent.com/u/39949991?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Drunpi', 'html_url': 'https://github.com/Drunpi', 'followers_url': 'https://api.github.com/users/Drunpi/followers', 'following_url': 'https://api.github.com/users/Drunpi/following{/other_user}', 'gists_url': 'https://api.github.com/users/Drunpi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Drunpi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Drunpi/subscriptions', 'organizations_url': 'https://api.github.com/users/Drunpi/orgs', 'repos_url': 'https://api.github.com/users/Drunpi/repos', 'events_url': 'https://api.github.com/users/Drunpi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Drunpi/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/Drunpi/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Drunpi/go-ethereum', 'forks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Drunpi/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Drunpi/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Drunpi/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Drunpi/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Drunpi/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Drunpi/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Drunpi/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Drunpi/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Drunpi/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Drunpi/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Drunpi/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Drunpi/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Drunpi/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Drunpi/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Drunpi/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Drunpi/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Drunpi/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Drunpi/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Drunpi/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Drunpi/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Drunpi/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Drunpi/go-ethereum/deployments', 'created_at': '2018-12-14T09:10:43Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T09:05:16Z', 'git_url': 'git://github.com/Drunpi/go-ethereum.git', 'ssh_url': 'git@github.com:Drunpi/go-ethereum.git', 'clone_url': 'https://github.com/Drunpi/go-ethereum.git', 'svn_url': 'https://github.com/Drunpi/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:10:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753632721', 'type': 'WatchEvent', 'actor': {'id': 20773978, 'login': 'jinhokong', 'display_login': 'jinhokong', 'gravatar_id': '', 'url': 'https://api.github.com/users/jinhokong', 'avatar_url': 'https://avatars.githubusercontent.com/u/20773978?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T09:07:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753621503', 'type': 'PullRequestEvent', 'actor': {'id': 142290, 'login': 'holiman', 'display_login': 'holiman', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'avatar_url': 'https://avatars.githubusercontent.com/u/142290?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18310, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310', 'id': 238652594, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUyNTk0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18310', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18310.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18310.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310', 'number': 18310, 'state': 'open', 'locked': False, 'title': 'rpc: add application/json-rpc as accepted content type, fixes #18293', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This PR adds `application/json-rpc` as accepted content type for the server. \\r\\n\\r\\n@ligi Please try it out and see if it works for you (I haven't actually tested the code :) )\", 'created_at': '2018-12-14T09:05:15Z', 'updated_at': '2018-12-14T09:05:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'head': {'label': 'holiman:contenttypes', 'ref': 'contenttypes', 'sha': '8b4d2608b511d46f4cede82d0a9b7c6793d48d3d', 'user': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 75061513, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NTA2MTUxMw==', 'name': 'go-ethereum', 'full_name': 'holiman/go-ethereum', 'private': False, 'owner': {'login': 'holiman', 'id': 142290, 'node_id': 'MDQ6VXNlcjE0MjI5MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/142290?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/holiman', 'html_url': 'https://github.com/holiman', 'followers_url': 'https://api.github.com/users/holiman/followers', 'following_url': 'https://api.github.com/users/holiman/following{/other_user}', 'gists_url': 'https://api.github.com/users/holiman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/holiman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/holiman/subscriptions', 'organizations_url': 'https://api.github.com/users/holiman/orgs', 'repos_url': 'https://api.github.com/users/holiman/repos', 'events_url': 'https://api.github.com/users/holiman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/holiman/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/holiman/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/holiman/go-ethereum', 'forks_url': 'https://api.github.com/repos/holiman/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/holiman/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/holiman/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/holiman/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/holiman/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/holiman/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/holiman/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/holiman/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/holiman/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/holiman/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/holiman/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/holiman/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/holiman/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/holiman/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/holiman/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/holiman/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/holiman/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/holiman/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/holiman/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/holiman/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/holiman/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/holiman/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/holiman/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/holiman/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/holiman/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/holiman/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/holiman/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/holiman/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/holiman/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/holiman/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/holiman/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/holiman/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/holiman/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/holiman/go-ethereum/deployments', 'created_at': '2016-11-29T08:48:37Z', 'updated_at': '2018-11-25T19:02:22Z', 'pushed_at': '2018-12-14T09:03:59Z', 'git_url': 'git://github.com/holiman/go-ethereum.git', 'ssh_url': 'git@github.com:holiman/go-ethereum.git', 'clone_url': 'https://github.com/holiman/go-ethereum.git', 'svn_url': 'https://github.com/holiman/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 137965, 'stargazers_count': 2, 'watchers_count': 2, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 2, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22059, 'watchers_count': 22059, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7711, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7711, 'open_issues': 859, 'watchers': 22059, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18310'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18310/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18310/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8b4d2608b511d46f4cede82d0a9b7c6793d48d3d'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 19, 'deletions': 7, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T09:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753608354', 'type': 'ForkEvent', 'actor': {'id': 9623159, 'login': 'aj07', 'display_login': 'aj07', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'avatar_url': 'https://avatars.githubusercontent.com/u/9623159?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'forkee': {'id': 161758859, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTg4NTk=', 'name': 'web3.js', 'full_name': 'aj07/web3.js', 'private': False, 'owner': {'login': 'aj07', 'id': 9623159, 'node_id': 'MDQ6VXNlcjk2MjMxNTk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9623159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/aj07', 'html_url': 'https://github.com/aj07', 'followers_url': 'https://api.github.com/users/aj07/followers', 'following_url': 'https://api.github.com/users/aj07/following{/other_user}', 'gists_url': 'https://api.github.com/users/aj07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/aj07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/aj07/subscriptions', 'organizations_url': 'https://api.github.com/users/aj07/orgs', 'repos_url': 'https://api.github.com/users/aj07/repos', 'events_url': 'https://api.github.com/users/aj07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/aj07/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/aj07/web3.js', 'description': 'Ethereum JavaScript API', 'fork': True, 'url': 'https://api.github.com/repos/aj07/web3.js', 'forks_url': 'https://api.github.com/repos/aj07/web3.js/forks', 'keys_url': 'https://api.github.com/repos/aj07/web3.js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/aj07/web3.js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/aj07/web3.js/teams', 'hooks_url': 'https://api.github.com/repos/aj07/web3.js/hooks', 'issue_events_url': 'https://api.github.com/repos/aj07/web3.js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/aj07/web3.js/events', 'assignees_url': 'https://api.github.com/repos/aj07/web3.js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/aj07/web3.js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/aj07/web3.js/tags', 'blobs_url': 'https://api.github.com/repos/aj07/web3.js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/aj07/web3.js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/aj07/web3.js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/aj07/web3.js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/aj07/web3.js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/aj07/web3.js/languages', 'stargazers_url': 'https://api.github.com/repos/aj07/web3.js/stargazers', 'contributors_url': 'https://api.github.com/repos/aj07/web3.js/contributors', 'subscribers_url': 'https://api.github.com/repos/aj07/web3.js/subscribers', 'subscription_url': 'https://api.github.com/repos/aj07/web3.js/subscription', 'commits_url': 'https://api.github.com/repos/aj07/web3.js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/aj07/web3.js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/aj07/web3.js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/aj07/web3.js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/aj07/web3.js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/aj07/web3.js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/aj07/web3.js/merges', 'archive_url': 'https://api.github.com/repos/aj07/web3.js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/aj07/web3.js/downloads', 'issues_url': 'https://api.github.com/repos/aj07/web3.js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/aj07/web3.js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/aj07/web3.js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/aj07/web3.js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/aj07/web3.js/labels{/name}', 'releases_url': 'https://api.github.com/repos/aj07/web3.js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/aj07/web3.js/deployments', 'created_at': '2018-12-14T09:02:35Z', 'updated_at': '2018-12-14T07:49:34Z', 'pushed_at': '2018-12-13T22:48:47Z', 'git_url': 'git://github.com/aj07/web3.js.git', 'ssh_url': 'git@github.com:aj07/web3.js.git', 'clone_url': 'https://github.com/aj07/web3.js.git', 'svn_url': 'https://github.com/aj07/web3.js', 'homepage': '', 'size': 36484, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T09:02:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753598685', 'type': 'PullRequestEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1163, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163', 'id': 238651451, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjUxNDUx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1163', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1163.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1163.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163', 'number': 1163, 'state': 'open', 'locked': False, 'title': 'WIP Remove 3.5 support and update eth-abiV2', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWIP\\r\\n\\r\\nRelated to Issue #\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->]()\\r\\n', 'created_at': '2018-12-14T09:00:38Z', 'updated_at': '2018-12-14T09:00:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1', 'head': {'label': 'njgheorghita:v5-update', 'ref': 'v5-update', 'sha': '4344c565cee977b0ce61b19195b22adb84da53f1', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 89746051, 'node_id': 'MDEwOlJlcG9zaXRvcnk4OTc0NjA1MQ==', 'name': 'web3.py', 'full_name': 'njgheorghita/web3.py', 'private': False, 'owner': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/njgheorghita/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/njgheorghita/web3.py', 'forks_url': 'https://api.github.com/repos/njgheorghita/web3.py/forks', 'keys_url': 'https://api.github.com/repos/njgheorghita/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/njgheorghita/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/njgheorghita/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/njgheorghita/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/njgheorghita/web3.py/events', 'assignees_url': 'https://api.github.com/repos/njgheorghita/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/njgheorghita/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/njgheorghita/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/njgheorghita/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/njgheorghita/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/njgheorghita/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/njgheorghita/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/njgheorghita/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/njgheorghita/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/njgheorghita/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/njgheorghita/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/njgheorghita/web3.py/merges', 'archive_url': 'https://api.github.com/repos/njgheorghita/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/njgheorghita/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/njgheorghita/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/njgheorghita/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/njgheorghita/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/njgheorghita/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/njgheorghita/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/njgheorghita/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/njgheorghita/web3.py/deployments', 'created_at': '2017-04-28T21:27:28Z', 'updated_at': '2018-12-14T08:50:09Z', 'pushed_at': '2018-12-14T08:59:51Z', 'git_url': 'git://github.com/njgheorghita/web3.py.git', 'ssh_url': 'git@github.com:njgheorghita/web3.py.git', 'clone_url': 'https://github.com/njgheorghita/web3.py.git', 'svn_url': 'https://github.com/njgheorghita/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-14T05:20:57Z', 'pushed_at': '2018-12-14T08:53:26Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3088, 'stargazers_count': 1218, 'watchers_count': 1218, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1218, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1163'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1163/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1163/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/4344c565cee977b0ce61b19195b22adb84da53f1'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 8, 'deletions': 9, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T09:00:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578638', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3137185723, 'size': 4, 'distinct_size': 4, 'ref': 'refs/heads/master', 'head': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'before': '751c856953060d68ae7be2c62306d11935e32345', 'commits': [{'sha': '6fa7b83832c7c40221b756814d372b828cdb96ea', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Add `get_fork_version` and `get_domain`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/6fa7b83832c7c40221b756814d372b828cdb96ea'}, {'sha': 'dfdde18bb7953a787e479a188d429f3a42ae00b6', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Put eth/beacon/enums/ objects in one file', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dfdde18bb7953a787e479a188d429f3a42ae00b6'}, {'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'author': {'email': 'chihchengliang@gmail.com', 'name': 'Chih Cheng Liang'}, 'message': 'Apply suggestions from code review: update enums\\n\\nCo-Authored-By: hwwhww ', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/8bfef33798e69f214473c941d1263cb4075ea7a2'}, {'sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #1591 from hwwhww/get_fork\\n\\nAdd `get_fork_version` and `get_domain` helpers', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/dae7910b84c6c5f3d5ab0594ddb550f92a4fb072'}]}, 'public': True, 'created_at': '2018-12-14T08:56:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753578392', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1591, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'closed', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:56:31Z', 'closed_at': '2018-12-14T08:56:31Z', 'merged_at': '2018-12-14T08:56:31Z', 'merge_commit_sha': 'dae7910b84c6c5f3d5ab0594ddb550f92a4fb072', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': '8bfef33798e69f214473c941d1263cb4075ea7a2', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T08:44:44Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T08:56:31Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/8bfef33798e69f214473c941d1263cb4075ea7a2'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 9, 'maintainer_can_modify': False, 'commits': 3, 'additions': 123, 'deletions': 39, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-14T08:56:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753563402', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137177774, 'size': 52, 'distinct_size': 21, 'ref': 'refs/heads/pm-api', 'head': '62aa0131c4506f40795f1e5102bdf405740f1054', 'before': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'commits': [{'sha': 'e013febcef6fd538ed2620646317feea66abb07e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Add default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e013febcef6fd538ed2620646317feea66abb07e'}, {'sha': '4c52f0d592571077ad2573cefe0587a336685d44', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1121 from carver/trinity-auto-ipc\\n\\nAdd default trinity locations to IPC path guesser', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4c52f0d592571077ad2573cefe0587a336685d44'}, {'sha': '94b8b40d6df51730243a713c14cf174bcb14bb32', 'author': {'email': 'michael.razoumovitch@gmail.com', 'name': 'Michael Razoumovitch'}, 'message': \"removed _function_names and _event_names\\n\\nContractEvents and ContractFunctions have not used lists _event_names / _function_names.\\r\\nEach time a contract is created through the factory method, the _event_names list and the _function_names list are extended.\\r\\nCreating many contract's results in high memory usage.\", 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/94b8b40d6df51730243a713c14cf174bcb14bb32'}, {'sha': 'acfd3d548336d3560d746fbf96156c3fd98d4dda', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Write docs for construct_sign_and_send_raw_middleware', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/acfd3d548336d3560d746fbf96156c3fd98d4dda'}, {'sha': 'feb67fee5e7ed5e8aeaa91118176698bfb479d22', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Merge pull request #1137 from njgheorghita/signing-documentation\\n\\nWrite docs for `construct_sign_and_send_raw_middleware`', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/feb67fee5e7ed5e8aeaa91118176698bfb479d22'}, {'sha': '0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1135 from MichaelRazum/master\\n\\nremoved _function_names and _event_names', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0cbb1e4d3bf5f5fe1e7493f374d824b112d389d8'}, {'sha': 'e441e73780c859211a947b067f11e73ee26b9323', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: collections.Generator -> collections.abc.Generator', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e441e73780c859211a947b067f11e73ee26b9323'}, {'sha': '96440512c1049b94c3d588e906c0077c6f351cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: mark regexes as such.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/96440512c1049b94c3d588e906c0077c6f351cf8'}, {'sha': '9cd99187563e80f13203ca2f952755b7c07f6cf8', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'Pacify Python warnings: `sha3` has been renamed to `keccak`.\\n\\nSQUASHED:\\n\\nmain: minor, fix incorrect deprecation message.\\n\\nReads as\\n\\n sha3 is deprecated in favor of This method has been renamed to keccak\\n\\notherwise.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/9cd99187563e80f13203ca2f952755b7c07f6cf8'}, {'sha': 'b05e94288bc60cf0644ca773b48572ab29e6bb5f', 'author': {'email': 'veox@users.noreply.github.com', 'name': 'Noel Maersk'}, 'message': 'soliditySha3: use passed `cls` (instance or class) instead of class (always).\\n\\nAddresses criticism\\n\\nhttps://github.com/ethereum/web3.py/pull/1139#pullrequestreview-176436099', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/b05e94288bc60cf0644ca773b48572ab29e6bb5f'}, {'sha': '101b5712fc993ed8104d3510ac731067ceda8c5f', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add a listStorageKeys RPC (parity-specific one)', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/101b5712fc993ed8104d3510ac731067ceda8c5f'}, {'sha': 'ea439e1481322c1014515c6213761d0ac413edad', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Add tests for list_storage_keys when --fat-db is off.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ea439e1481322c1014515c6213761d0ac413edad'}, {'sha': 'a362bb8f61af05ea4533f7ea53758b7e6c99df6d', 'author': {'email': 'freeatnet@freeatnet.com', 'name': 'Arseniy Ivanov'}, 'message': 'Bump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/a362bb8f61af05ea4533f7ea53758b7e6c99df6d'}, {'sha': '5f8198cc52ed4b4d980297d61a2d96d4b8d6d816', 'author': {'email': 'contact@palkeo.com', 'name': 'palkeo'}, 'message': 'Correctly convert the address for the listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/5f8198cc52ed4b4d980297d61a2d96d4b8d6d816'}, {'sha': 'e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1145 from palkeo/master\\n\\nAdd parity-specific listStorageKeys RPC.', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/e4cba0ebcc4b86eef89409d62697b9d6cc6be9b3'}, {'sha': '1fea824b089ac186824e1c6ded2127e7fa64333f', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1146 from forkdelta/websockets-7.0.0\\n\\nBump websockets version to 7.0.0', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/1fea824b089ac186824e1c6ded2127e7fa64333f'}, {'sha': 'ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix doc typos', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/ecefe55f0b56946e19b0020bdf7c3c3b2dafbff5'}, {'sha': '0eb804188a51415f2b985d31fd2db526da46efd2', 'author': {'email': 'fubuloubu@gmail.com', 'name': 'Bryant Eisenbach'}, 'message': 'Added other network options', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/0eb804188a51415f2b985d31fd2db526da46efd2'}, {'sha': '31310f91f284f84ab1f9835c8d7133b16dea04dd', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Fix unicorn contract doctest failure', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/31310f91f284f84ab1f9835c8d7133b16dea04dd'}, {'sha': '3b93236994cd5643b144b77d5b536d3e2e95023d', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1150 from fubuloubu/moar-infura\\n\\nMoar infura', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b93236994cd5643b144b77d5b536d3e2e95023d'}]}, 'public': True, 'created_at': '2018-12-14T08:53:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753543621', 'type': 'PushEvent', 'actor': {'id': 9753150, 'login': 'njgheorghita', 'display_login': 'njgheorghita', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'avatar_url': 'https://avatars.githubusercontent.com/u/9753150?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3137167346, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/pm-api', 'head': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'before': '0491779fe5fb7d9fd98b9c02943794b7acf69b63', 'commits': [{'sha': '7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20', 'author': {'email': 'nickgheorghita@gmail.com', 'name': 'Nick Gheorghita'}, 'message': 'Minor adjustments from pr comments', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/7955f26e9bf43a71addd517e6bf1d8b1bdf3ed20'}]}, 'public': True, 'created_at': '2018-12-14T08:49:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753536725', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137163795, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'before': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'commits': [{'sha': '4b4311fa8dcefb21819517d2449658bc6fbb2323', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'fix `exit_validator`', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/4b4311fa8dcefb21819517d2449658bc6fbb2323'}]}, 'public': True, 'created_at': '2018-12-14T08:47:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451878', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Introduction', 'title': 'Ethereum Introduction', 'summary': None, 'action': 'edited', 'sha': 'c87be54da0b86e702a0434741fd12c0e13eecd78', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Introduction'}]}, 'public': True, 'created_at': '2018-12-14T08:28:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451198', 'type': 'IssuesEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753451187', 'type': 'IssueCommentEvent', 'actor': {'id': 111600, 'login': 'ligi', 'display_login': 'ligi', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'avatar_url': 'https://avatars.githubusercontent.com/u/111600?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T08:28:44Z', 'closed_at': '2018-12-14T08:28:44Z', 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447252468', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447252468', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447252468, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI1MjQ2OA==', 'user': {'login': 'ligi', 'id': 111600, 'node_id': 'MDQ6VXNlcjExMTYwMA==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/111600?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ligi', 'html_url': 'https://github.com/ligi', 'followers_url': 'https://api.github.com/users/ligi/followers', 'following_url': 'https://api.github.com/users/ligi/following{/other_user}', 'gists_url': 'https://api.github.com/users/ligi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ligi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ligi/subscriptions', 'organizations_url': 'https://api.github.com/users/ligi/orgs', 'repos_url': 'https://api.github.com/users/ligi/repos', 'events_url': 'https://api.github.com/users/ligi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ligi/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:28:44Z', 'updated_at': '2018-12-14T08:28:44Z', 'author_association': 'MEMBER', 'body': 'Please help to keep this issue-tracker clean and only for real issues with go-ethereum. For questions please go to http://ethereum.stackexchange.com\\r\\n\\r\\nIf the issue-tracker gets littered with questions - it is really hard to keep track of real issues. So I am sorry to close this issue - but feel free to answer here with the link to your question on stackexchange. Thanks!'}}, 'public': True, 'created_at': '2018-12-14T08:28:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753450471', 'type': 'IssuesEvent', 'actor': {'id': 33201827, 'login': 'nisdas', 'display_login': 'nisdas', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'avatar_url': 'https://avatars.githubusercontent.com/u/33201827?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/319/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/319', 'id': 391012090, 'node_id': 'MDU6SXNzdWUzOTEwMTIwOTA=', 'number': 319, 'title': 'RandaoLayers Should Not Be Incremented Every Slot', 'user': {'login': 'nisdas', 'id': 33201827, 'node_id': 'MDQ6VXNlcjMzMjAxODI3', 'avatar_url': 'https://avatars2.githubusercontent.com/u/33201827?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nisdas', 'html_url': 'https://github.com/nisdas', 'followers_url': 'https://api.github.com/users/nisdas/followers', 'following_url': 'https://api.github.com/users/nisdas/following{/other_user}', 'gists_url': 'https://api.github.com/users/nisdas/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nisdas/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nisdas/subscriptions', 'organizations_url': 'https://api.github.com/users/nisdas/orgs', 'repos_url': 'https://api.github.com/users/nisdas/repos', 'events_url': 'https://api.github.com/users/nisdas/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nisdas/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T08:28:33Z', 'updated_at': '2018-12-14T08:28:33Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': \"In the spec over here: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#misc-counters, \\r\\n\\r\\nThe block proposer has their `randao layers` incremented every slot when they should only have it incremented in the case where the proposer doesn't propose a block in that particular slot instead of every slot. \\r\\n```\\r\\nSet state.validator_registry[get_beacon_proposer_index(state, state.slot)].randao_layers += 1.\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-14T08:28:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431687', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809', 'pull_request_review_id': 185002359, 'id': 241672809, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MjgwOQ==', 'diff_hunk': \"@@ -661,3 +664,68 @@ def test_get_new_validator_registry_delta_chain_tip(index,\\n flag=flag,\\n )\\n assert result == expected\\n+\\n+\\n+@pytest.mark.parametrize(\\n+ (\\n+ 'pre_fork_version,'\\n+ 'post_fork_version,'\\n+ 'fork_slot,'\\n+ 'current_slot,'\\n+ 'expected'\\n+ ),\\n+ [\\n+ (0, 0, 0, 0, 0),\\n+ (0, 0, 0, 1, 0),\\n+ (0, 0, 20, 10, 0),\", 'path': 'tests/beacon/test_helpers.py', 'position': 39, 'original_position': 39, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': 'would it be more meaningful if\\r\\n```suggestion\\r\\n (0, 1, 20, 10, 0),\\r\\n```', 'created_at': '2018-12-14T08:20:17Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241672809'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241672809'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:20:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753431686', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446', 'pull_request_review_id': 185002359, 'id': 241671446, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTQ0Ng==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2\\n+ EXITED_WITHOUT_PENALTY = 3\\n+ EXITED_WITH_PENALTY = 4\\n+\\n+\\n+class ValidatorRegistryDeltaFlag(IntEnum):\\n+ ACTIVATION = 0\\n+ EXIT = 1\\n+\\n+\\n+class SignatureDomain(IntEnum):\\n+ DOMAIN_DEPOSIT = 0\\n+ DOMAIN_ATTESTATION = 1\\n+ DOMAIN_PROPOSAL = 2\\n+ DOMAIN_LOGOUT = 3', 'path': 'eth/beacon/enums.py', 'position': 21, 'original_position': 21, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n DOMAIN_EXIT = 3\\r\\n```', 'created_at': '2018-12-14T08:14:37Z', 'updated_at': '2018-12-14T08:24:15Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671446'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671446'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:24:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8338, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:14:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753426087', 'type': 'ForkEvent', 'actor': {'id': 508559, 'login': 'cderong', 'display_login': 'cderong', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'avatar_url': 'https://avatars.githubusercontent.com/u/508559?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161754139, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTQxMzk=', 'name': 'go-ethereum', 'full_name': 'cderong/go-ethereum', 'private': False, 'owner': {'login': 'cderong', 'id': 508559, 'node_id': 'MDQ6VXNlcjUwODU1OQ==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/508559?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cderong', 'html_url': 'https://github.com/cderong', 'followers_url': 'https://api.github.com/users/cderong/followers', 'following_url': 'https://api.github.com/users/cderong/following{/other_user}', 'gists_url': 'https://api.github.com/users/cderong/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cderong/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cderong/subscriptions', 'organizations_url': 'https://api.github.com/users/cderong/orgs', 'repos_url': 'https://api.github.com/users/cderong/repos', 'events_url': 'https://api.github.com/users/cderong/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cderong/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cderong/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/cderong/go-ethereum', 'forks_url': 'https://api.github.com/repos/cderong/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/cderong/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cderong/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cderong/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/cderong/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cderong/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/cderong/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cderong/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cderong/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cderong/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cderong/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cderong/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cderong/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cderong/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/cderong/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/cderong/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/cderong/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/cderong/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/cderong/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cderong/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cderong/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cderong/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cderong/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cderong/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cderong/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/cderong/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cderong/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/cderong/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cderong/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cderong/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cderong/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cderong/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/cderong/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cderong/go-ethereum/deployments', 'created_at': '2018-12-14T08:22:56Z', 'updated_at': '2018-12-14T08:16:46Z', 'pushed_at': '2018-12-14T08:13:39Z', 'git_url': 'git://github.com/cderong/go-ethereum.git', 'ssh_url': 'git@github.com:cderong/go-ethereum.git', 'clone_url': 'https://github.com/cderong/go-ethereum.git', 'svn_url': 'https://github.com/cderong/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T08:22:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753400068', 'type': 'WatchEvent', 'actor': {'id': 8707532, 'login': 'serical', 'display_login': 'serical', 'gravatar_id': '', 'url': 'https://api.github.com/users/serical', 'avatar_url': 'https://avatars.githubusercontent.com/u/8707532?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:16:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386879', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 3391420, 'login': 'ChihChengLiang', 'display_login': 'ChihChengLiang', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'avatar_url': 'https://avatars.githubusercontent.com/u/3391420?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245', 'pull_request_review_id': 185002110, 'id': 241671245, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY3MTI0NQ==', 'diff_hunk': '@@ -0,0 +1,21 @@\\n+from enum import IntEnum\\n+\\n+\\n+class ValidatorStatusCode(IntEnum):\\n+ PENDING_ACTIVATION = 0\\n+ ACTIVE = 1\\n+ PENDING_EXIT = 2', 'path': 'eth/beacon/enums.py', 'position': 7, 'original_position': 7, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n ACTIVE_PENDING_EXIT = 2\\r\\n```', 'created_at': '2018-12-14T08:13:43Z', 'updated_at': '2018-12-14T08:13:44Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241671245'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241671245'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\n1. Add `get_fork_version` and `get_domain` and tests. Spec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n2. Put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py`.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T08:13:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T08:13:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753386498', 'type': 'PullRequestEvent', 'actor': {'id': 20079910, 'login': 'yahtoo', 'display_login': 'yahtoo', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'avatar_url': 'https://avatars.githubusercontent.com/u/20079910?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18309, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309', 'id': 238641377, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjQxMzc3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18309', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18309.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18309.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309', 'number': 18309, 'state': 'open', 'locked': False, 'title': 'p2p/discv5: Fix target id repeat hash error', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'body': 'q.target is the hash that needs to be found, no need to hash again.', 'created_at': '2018-12-14T08:13:39Z', 'updated_at': '2018-12-14T08:13:39Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'head': {'label': 'yahtoo:discv5', 'ref': 'discv5', 'sha': 'b883d5eab1d7ca04802b9b92d9236b08895a1d4a', 'user': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 113520981, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTM1MjA5ODE=', 'name': 'go-ethereum', 'full_name': 'yahtoo/go-ethereum', 'private': False, 'owner': {'login': 'yahtoo', 'id': 20079910, 'node_id': 'MDQ6VXNlcjIwMDc5OTEw', 'avatar_url': 'https://avatars3.githubusercontent.com/u/20079910?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/yahtoo', 'html_url': 'https://github.com/yahtoo', 'followers_url': 'https://api.github.com/users/yahtoo/followers', 'following_url': 'https://api.github.com/users/yahtoo/following{/other_user}', 'gists_url': 'https://api.github.com/users/yahtoo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/yahtoo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/yahtoo/subscriptions', 'organizations_url': 'https://api.github.com/users/yahtoo/orgs', 'repos_url': 'https://api.github.com/users/yahtoo/repos', 'events_url': 'https://api.github.com/users/yahtoo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/yahtoo/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/yahtoo/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/yahtoo/go-ethereum', 'forks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/yahtoo/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/yahtoo/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/yahtoo/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/yahtoo/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/yahtoo/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/yahtoo/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/yahtoo/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/yahtoo/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/yahtoo/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/yahtoo/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/yahtoo/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/yahtoo/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/yahtoo/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/yahtoo/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/yahtoo/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/yahtoo/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/yahtoo/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/yahtoo/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/yahtoo/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/yahtoo/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/yahtoo/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/yahtoo/go-ethereum/deployments', 'created_at': '2017-12-08T02:20:59Z', 'updated_at': '2018-12-14T07:55:57Z', 'pushed_at': '2018-12-14T08:10:12Z', 'git_url': 'git://github.com/yahtoo/go-ethereum.git', 'ssh_url': 'git@github.com:yahtoo/go-ethereum.git', 'clone_url': 'https://github.com/yahtoo/go-ethereum.git', 'svn_url': 'https://github.com/yahtoo/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 90889, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22058, 'watchers_count': 22058, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 859, 'watchers': 22058, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18309'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18309/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18309/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/b883d5eab1d7ca04802b9b92d9236b08895a1d4a'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T08:13:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753378866', 'type': 'WatchEvent', 'actor': {'id': 25615578, 'login': 'ByLuxury', 'display_login': 'ByLuxury', 'gravatar_id': '', 'url': 'https://api.github.com/users/ByLuxury', 'avatar_url': 'https://avatars.githubusercontent.com/u/25615578?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T08:11:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753352327', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T08:05:16Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447247081', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447247081', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447247081, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NzA4MQ==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T08:05:16Z', 'updated_at': '2018-12-14T08:05:16Z', 'author_association': 'CONTRIBUTOR', 'body': '`Type Hinting` is done now.'}}, 'public': True, 'created_at': '2018-12-14T08:05:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753322823', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-14T07:57:53Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447245506', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447245506', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447245506, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzI0NTUwNg==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T07:57:53Z', 'updated_at': '2018-12-14T07:57:53Z', 'author_association': 'CONTRIBUTOR', 'body': \"Yeah the reframing is very helpful, thank you 😊I think we were talking past each other a bit but I'm on the same page now 😅\\r\\n\\r\\nGoing off your suggestion above, what're your thoughts on something like this:\\r\\n\\r\\n```python\\r\\ndef foo(a: uint256[2...4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n\\r\\n# Produces ABI type: 'uint256[]', with optionals 'min=2', and 'max=4'\\r\\n```\\r\\n\\r\\nCould pre-parse the `...` to `:` and then it parses fine. Also going about it this way would in-turn remove `...` from Vyper syntax which is probably a reasonable thing to do anyway as it seems better to make people use `pass`, which is much more explicit and readable and `...`.\"}}, 'public': True, 'created_at': '2018-12-14T07:57:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753303900', 'type': 'ForkEvent', 'actor': {'id': 42035461, 'login': 'ParkIan', 'display_login': 'ParkIan', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'avatar_url': 'https://avatars.githubusercontent.com/u/42035461?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161750627, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA2Mjc=', 'name': 'solc-js', 'full_name': 'ParkIan/solc-js', 'private': False, 'owner': {'login': 'ParkIan', 'id': 42035461, 'node_id': 'MDQ6VXNlcjQyMDM1NDYx', 'avatar_url': 'https://avatars1.githubusercontent.com/u/42035461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ParkIan', 'html_url': 'https://github.com/ParkIan', 'followers_url': 'https://api.github.com/users/ParkIan/followers', 'following_url': 'https://api.github.com/users/ParkIan/following{/other_user}', 'gists_url': 'https://api.github.com/users/ParkIan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ParkIan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ParkIan/subscriptions', 'organizations_url': 'https://api.github.com/users/ParkIan/orgs', 'repos_url': 'https://api.github.com/users/ParkIan/repos', 'events_url': 'https://api.github.com/users/ParkIan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ParkIan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ParkIan/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ParkIan/solc-js', 'forks_url': 'https://api.github.com/repos/ParkIan/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ParkIan/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ParkIan/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ParkIan/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ParkIan/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ParkIan/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ParkIan/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ParkIan/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ParkIan/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ParkIan/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ParkIan/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ParkIan/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ParkIan/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ParkIan/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ParkIan/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ParkIan/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ParkIan/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ParkIan/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ParkIan/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ParkIan/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ParkIan/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ParkIan/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ParkIan/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ParkIan/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ParkIan/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ParkIan/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ParkIan/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ParkIan/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ParkIan/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ParkIan/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ParkIan/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ParkIan/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ParkIan/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ParkIan/solc-js/deployments', 'created_at': '2018-12-14T07:53:10Z', 'updated_at': '2018-12-14T07:37:29Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ParkIan/solc-js.git', 'ssh_url': 'git@github.com:ParkIan/solc-js.git', 'clone_url': 'https://github.com/ParkIan/solc-js.git', 'svn_url': 'https://github.com/ParkIan/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:53:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753297612', 'type': 'ForkEvent', 'actor': {'id': 28505705, 'login': 'Bytom', 'display_login': 'Bytom', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'avatar_url': 'https://avatars.githubusercontent.com/u/28505705?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161750468, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NTA0Njg=', 'name': 'go-ethereum', 'full_name': 'Bytom/go-ethereum', 'private': False, 'owner': {'login': 'Bytom', 'id': 28505705, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjI4NTA1NzA1', 'avatar_url': 'https://avatars0.githubusercontent.com/u/28505705?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bytom', 'html_url': 'https://github.com/Bytom', 'followers_url': 'https://api.github.com/users/Bytom/followers', 'following_url': 'https://api.github.com/users/Bytom/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bytom/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bytom/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bytom/subscriptions', 'organizations_url': 'https://api.github.com/users/Bytom/orgs', 'repos_url': 'https://api.github.com/users/Bytom/repos', 'events_url': 'https://api.github.com/users/Bytom/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bytom/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/Bytom/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/Bytom/go-ethereum', 'forks_url': 'https://api.github.com/repos/Bytom/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/Bytom/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Bytom/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Bytom/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/Bytom/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Bytom/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/Bytom/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Bytom/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Bytom/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Bytom/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/Bytom/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/Bytom/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/Bytom/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Bytom/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Bytom/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Bytom/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Bytom/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Bytom/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/Bytom/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Bytom/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/Bytom/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Bytom/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Bytom/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Bytom/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Bytom/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/Bytom/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Bytom/go-ethereum/deployments', 'created_at': '2018-12-14T07:51:34Z', 'updated_at': '2018-12-14T07:21:35Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/Bytom/go-ethereum.git', 'ssh_url': 'git@github.com:Bytom/go-ethereum.git', 'clone_url': 'https://github.com/Bytom/go-ethereum.git', 'svn_url': 'https://github.com/Bytom/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753289770', 'type': 'WatchEvent', 'actor': {'id': 15043067, 'login': 'RichardLai88', 'display_login': 'RichardLai88', 'gravatar_id': '', 'url': 'https://api.github.com/users/RichardLai88', 'avatar_url': 'https://avatars.githubusercontent.com/u/15043067?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:49:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753270322', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'f364c47d08af2766507c808327e2c9266ef44501', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753261377', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd2c96d0fb6736540b5d6545b6ed9a005d9ccf2ec', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:42:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753257146', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'd15a828414b6f1820d4820ae9cf3789a70f5a961', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:41:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753252577', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3137015669, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/hwwhww-patch-2', 'head': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'before': '0e669e2319a8baba5bac14d5ef8de402874641fe', 'commits': [{'sha': '9b25615691299e1050d83a2453eeba3cdb11e78e', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Fix genesis block', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/9b25615691299e1050d83a2453eeba3cdb11e78e'}]}, 'public': True, 'created_at': '2018-12-14T07:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242976', 'type': 'WatchEvent', 'actor': {'id': 15884902, 'login': 'chrislo2004', 'display_login': 'chrislo2004', 'gravatar_id': '', 'url': 'https://api.github.com/users/chrislo2004', 'avatar_url': 'https://avatars.githubusercontent.com/u/15884902?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:37:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753242885', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '782fb523d673ccbcb024a80f80e1d6a51334d0d6', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:37:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753240565', 'type': 'WatchEvent', 'actor': {'id': 36795293, 'login': 'jeikhan', 'display_login': 'jeikhan', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeikhan', 'avatar_url': 'https://avatars.githubusercontent.com/u/36795293?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:36:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753237508', 'type': 'PushEvent', 'actor': {'id': 33515470, 'login': 'FrankSzendzielarz', 'display_login': 'FrankSzendzielarz', 'gravatar_id': '', 'url': 'https://api.github.com/users/FrankSzendzielarz', 'avatar_url': 'https://avatars.githubusercontent.com/u/33515470?'}, 'repo': {'id': 62554553, 'name': 'ethereum/hive', 'url': 'https://api.github.com/repos/ethereum/hive'}, 'payload': {'push_id': 3137007689, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/Chaintools', 'head': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'before': '0d23cc2eee9dfc8dac7c1a3d10bab4dc03ba2fe0', 'commits': [{'sha': 'b8ce9f2d228d4e3b262eae17493dde5626b41647', 'author': {'email': 'Frank@franks.technology', 'name': 'Frank Szendzielarz'}, 'message': 'Include devp2p fix to compensate for modified API', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/hive/commits/b8ce9f2d228d4e3b262eae17493dde5626b41647'}]}, 'public': True, 'created_at': '2018-12-14T07:35:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753215672', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390', 'pull_request_review_id': 184992539, 'id': 241663390, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY2MzM5MA==', 'diff_hunk': '@@ -1,7 +1,7 @@\\n from enum import IntEnum\\n \\n \\n-class BLSDomain(IntEnum):\\n+class SignatureDomain(IntEnum):', 'path': 'eth/beacon/enums/signature_domain.py', 'position': None, 'original_position': 5, 'commit_id': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'original_commit_id': 'd9c40081c3e7e05522c500381dcc52bae5cb80c1', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '@cburgdorf I put `ValidatorStatusCode`, `ValidatorRegistryDeltaFlag`, and `SignatureDomain` in `eth/beacon/enums.py` now. (using plural for being aligned with `constants.py`)\\r\\nI hope that we will use SSZ before the stable beacon chain release. 😊\\r\\n', 'created_at': '2018-12-14T07:30:08Z', 'updated_at': '2018-12-14T07:30:08Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241663390'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591#discussion_r241663390'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}}, 'in_reply_to_id': 241318740}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591', 'id': 238301357, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzAxMzU3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1591', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1591.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1591.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591', 'number': 1591, 'state': 'open', 'locked': False, 'title': 'Add `get_fork_version` and `get_domain` helpers', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1510 part 3\\r\\n\\r\\n### How was it fixed?\\r\\nAdd `get_fork_version` and `get_domain` and tests.\\r\\nSpec: https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#get_fork_version\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![fox-in-snow](https://user-images.githubusercontent.com/9263930/49925283-63392e80-fef3-11e8-901c-d32613eeb227.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T08:24:05Z', 'updated_at': '2018-12-14T07:30:08Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1e701723011be47a3e0fc279b3936acd381d3212', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'ChihChengLiang', 'id': 3391420, 'node_id': 'MDQ6VXNlcjMzOTE0MjA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/3391420?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ChihChengLiang', 'html_url': 'https://github.com/ChihChengLiang', 'followers_url': 'https://api.github.com/users/ChihChengLiang/followers', 'following_url': 'https://api.github.com/users/ChihChengLiang/following{/other_user}', 'gists_url': 'https://api.github.com/users/ChihChengLiang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ChihChengLiang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ChihChengLiang/subscriptions', 'organizations_url': 'https://api.github.com/users/ChihChengLiang/orgs', 'repos_url': 'https://api.github.com/users/ChihChengLiang/repos', 'events_url': 'https://api.github.com/users/ChihChengLiang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ChihChengLiang/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'head': {'label': 'hwwhww:get_fork', 'ref': 'get_fork', 'sha': 'a0b81d481e8f11f2023b7ea15277e9ef409c8386', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112237812, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIyMzc4MTI=', 'name': 'py-evm', 'full_name': 'hwwhww/py-evm', 'private': False, 'owner': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/hwwhww/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/hwwhww/py-evm', 'forks_url': 'https://api.github.com/repos/hwwhww/py-evm/forks', 'keys_url': 'https://api.github.com/repos/hwwhww/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/hwwhww/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/hwwhww/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/hwwhww/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/hwwhww/py-evm/events', 'assignees_url': 'https://api.github.com/repos/hwwhww/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/hwwhww/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/hwwhww/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/hwwhww/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/hwwhww/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/hwwhww/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/hwwhww/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/hwwhww/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/hwwhww/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/hwwhww/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/hwwhww/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/hwwhww/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/hwwhww/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/hwwhww/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/hwwhww/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/hwwhww/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/hwwhww/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/hwwhww/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/hwwhww/py-evm/merges', 'archive_url': 'https://api.github.com/repos/hwwhww/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/hwwhww/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/hwwhww/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/hwwhww/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/hwwhww/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/hwwhww/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/hwwhww/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/hwwhww/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/hwwhww/py-evm/deployments', 'created_at': '2017-11-27T19:17:15Z', 'updated_at': '2018-09-28T16:22:02Z', 'pushed_at': '2018-12-14T07:22:58Z', 'git_url': 'git://github.com/hwwhww/py-evm.git', 'ssh_url': 'git@github.com:hwwhww/py-evm.git', 'clone_url': 'https://github.com/hwwhww/py-evm.git', 'svn_url': 'https://github.com/hwwhww/py-evm', 'homepage': '', 'size': 8350, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T06:44:59Z', 'pushed_at': '2018-12-14T07:29:19Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1591'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1591/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1591/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/a0b81d481e8f11f2023b7ea15277e9ef409c8386'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T07:30:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753205354', 'type': 'WatchEvent', 'actor': {'id': 17264431, 'login': 'IExpo', 'display_login': 'IExpo', 'gravatar_id': '', 'url': 'https://api.github.com/users/IExpo', 'avatar_url': 'https://avatars.githubusercontent.com/u/17264431?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:27:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753201242', 'type': 'WatchEvent', 'actor': {'id': 2927849, 'login': 'zhiyul', 'display_login': 'zhiyul', 'gravatar_id': '', 'url': 'https://api.github.com/users/zhiyul', 'avatar_url': 'https://avatars.githubusercontent.com/u/2927849?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:26:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753199403', 'type': 'WatchEvent', 'actor': {'id': 18085237, 'login': 'novemberde', 'display_login': 'novemberde', 'gravatar_id': '', 'url': 'https://api.github.com/users/novemberde', 'avatar_url': 'https://avatars.githubusercontent.com/u/18085237?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:25:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753193646', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': 'ebbf6ab750c3f8c957fe773084d913f5f910c964', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:24:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753184451', 'type': 'WatchEvent', 'actor': {'id': 9201851, 'login': 'naveen7252', 'display_login': 'naveen7252', 'gravatar_id': '', 'url': 'https://api.github.com/users/naveen7252', 'avatar_url': 'https://avatars.githubusercontent.com/u/9201851?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:21:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753168859', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Decentralized-apps-(dapps)', 'title': 'Decentralized apps (dapps)', 'summary': None, 'action': 'edited', 'sha': '9c075526b1f08aec2d3f66840f4faf5f58c44326', 'html_url': 'https://github.com/ethereum/wiki/wiki/Decentralized-apps-%28dapps%29'}]}, 'public': True, 'created_at': '2018-12-14T07:17:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753166735', 'type': 'ForkEvent', 'actor': {'id': 43934934, 'login': 'quangdo3112', 'display_login': 'quangdo3112', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'avatar_url': 'https://avatars.githubusercontent.com/u/43934934?'}, 'repo': {'id': 30197536, 'name': 'ethereum/meteor-dapp-wallet', 'url': 'https://api.github.com/repos/ethereum/meteor-dapp-wallet'}, 'payload': {'forkee': {'id': 161746724, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDY3MjQ=', 'name': 'meteor-dapp-wallet', 'full_name': 'quangdo3112/meteor-dapp-wallet', 'private': False, 'owner': {'login': 'quangdo3112', 'id': 43934934, 'node_id': 'MDQ6VXNlcjQzOTM0OTM0', 'avatar_url': 'https://avatars2.githubusercontent.com/u/43934934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/quangdo3112', 'html_url': 'https://github.com/quangdo3112', 'followers_url': 'https://api.github.com/users/quangdo3112/followers', 'following_url': 'https://api.github.com/users/quangdo3112/following{/other_user}', 'gists_url': 'https://api.github.com/users/quangdo3112/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/quangdo3112/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/quangdo3112/subscriptions', 'organizations_url': 'https://api.github.com/users/quangdo3112/orgs', 'repos_url': 'https://api.github.com/users/quangdo3112/repos', 'events_url': 'https://api.github.com/users/quangdo3112/events{/privacy}', 'received_events_url': 'https://api.github.com/users/quangdo3112/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet', 'forks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/forks', 'keys_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/teams', 'hooks_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/hooks', 'issue_events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/events{/number}', 'events_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/events', 'assignees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/assignees{/user}', 'branches_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/branches{/branch}', 'tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/tags', 'blobs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/languages', 'stargazers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/stargazers', 'contributors_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contributors', 'subscribers_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscribers', 'subscription_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/subscription', 'commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/contents/{+path}', 'compare_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/merges', 'archive_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/downloads', 'issues_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/issues{/number}', 'pulls_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/labels{/name}', 'releases_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/releases{/id}', 'deployments_url': 'https://api.github.com/repos/quangdo3112/meteor-dapp-wallet/deployments', 'created_at': '2018-12-14T07:16:49Z', 'updated_at': '2018-12-08T23:55:17Z', 'pushed_at': '2018-12-02T21:00:45Z', 'git_url': 'git://github.com/quangdo3112/meteor-dapp-wallet.git', 'ssh_url': 'git@github.com:quangdo3112/meteor-dapp-wallet.git', 'clone_url': 'https://github.com/quangdo3112/meteor-dapp-wallet.git', 'svn_url': 'https://github.com/quangdo3112/meteor-dapp-wallet', 'homepage': 'https://wallet.ethereum.org', 'size': 16875, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T07:16:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753155933', 'type': 'CreateEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'hwwhww-patch-2', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T07:13:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753146586', 'type': 'WatchEvent', 'actor': {'id': 19973971, 'login': 'bhalla98', 'display_login': 'bhalla98', 'gravatar_id': '', 'url': 'https://api.github.com/users/bhalla98', 'avatar_url': 'https://avatars.githubusercontent.com/u/19973971?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:11:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753127401', 'type': 'WatchEvent', 'actor': {'id': 1203972, 'login': 'rexshihaoren', 'display_login': 'rexshihaoren', 'gravatar_id': '', 'url': 'https://api.github.com/users/rexshihaoren', 'avatar_url': 'https://avatars.githubusercontent.com/u/1203972?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T07:05:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753111443', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Ethereum-Natural-Specification-Format', 'title': 'Ethereum Natural Specification Format', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Ethereum-Natural-Specification-Format'}, {'page_name': 'FAQ', 'title': 'FAQ', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/FAQ'}, {'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}, {'page_name': 'JSON-RPC', 'title': 'JSON RPC', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JSON-RPC'}, {'page_name': 'JavaScript-API', 'title': 'JavaScript API', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/JavaScript-API'}, {'page_name': 'Proof-of-Stake-FAQs', 'title': 'Proof of Stake FAQs', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs'}, {'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}, {'page_name': '[Chinese-Simplified]-Ethash-Design-Rationale中文翻译', 'title': '[Chinese Simplified] Ethash Design Rationale中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash-Design-Rationale%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethash中文翻译', 'title': '[Chinese Simplified] Ethash中文翻译', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethash%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91'}, {'page_name': '[Chinese-Simplified]-Ethereum-白皮书中文版', 'title': '[Chinese Simplified] Ethereum 白皮书中文版', 'summary': None, 'action': 'edited', 'sha': '6174a75a6726cc5ce901690f16c65ec698d44ec2', 'html_url': 'https://github.com/ethereum/wiki/wiki/%5BChinese-Simplified%5D-Ethereum-%E7%99%BD%E7%9A%AE%E4%B9%A6%E4%B8%AD%E6%96%87%E7%89%88'}]}, 'public': True, 'created_at': '2018-12-14T07:00:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753099469', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': 'f01b98128a365d01104d342b3a496d4b3bbd9410', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:57:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753066489', 'type': 'WatchEvent', 'actor': {'id': 39462187, 'login': 'lola73', 'display_login': 'lola73', 'gravatar_id': '', 'url': 'https://api.github.com/users/lola73', 'avatar_url': 'https://avatars.githubusercontent.com/u/39462187?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:47:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753056941', 'type': 'WatchEvent', 'actor': {'id': 5572669, 'login': 'rauljordan', 'display_login': 'rauljordan', 'gravatar_id': '', 'url': 'https://api.github.com/users/rauljordan', 'avatar_url': 'https://avatars.githubusercontent.com/u/5572669?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T06:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753020567', 'type': 'PullRequestEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1602, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602', 'id': 238623634, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjIzNjM0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1602', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1602.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1602.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602', 'number': 1602, 'state': 'open', 'locked': False, 'title': 'Replaces set with frozenset', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n#1601\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nReplaces set with frozenset\\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses]()\\r\\n', 'created_at': '2018-12-14T06:34:19Z', 'updated_at': '2018-12-14T06:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'head': {'label': 'vardan10:vardan/setFix', 'ref': 'vardan/setFix', 'sha': '33d73f163b40f96ede3a045cb9adc92e4eb0c34c', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T06:18:38Z', 'pushed_at': '2018-12-14T06:26:02Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 752, 'watchers_count': 752, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 167, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 167, 'watchers': 752, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1602'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1602/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1602/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/33d73f163b40f96ede3a045cb9adc92e4eb0c34c'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T06:34:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753016058', 'type': 'PullRequestEvent', 'actor': {'id': 8636562, 'login': 'YaoZengzeng', 'display_login': 'YaoZengzeng', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'avatar_url': 'https://avatars.githubusercontent.com/u/8636562?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'closed', 'number': 17517, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517', 'id': 210947844, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjEwOTQ3ODQ0', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/17517', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/17517.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/17517.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517', 'number': 17517, 'state': 'closed', 'locked': False, 'title': 'eth,miner: encapsulate the mining-related options of eth config', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Encapsulate the mining-related options in `eth.Config` to `miner.Config`', 'created_at': '2018-08-26T11:56:23Z', 'updated_at': '2018-12-14T06:32:55Z', 'closed_at': '2018-12-14T06:32:55Z', 'merged_at': None, 'merge_commit_sha': 'c34698f1f91fdb6d7cb8441008729d1722d00577', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'karalabe', 'id': 129561, 'node_id': 'MDQ6VXNlcjEyOTU2MQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/129561?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/karalabe', 'html_url': 'https://github.com/karalabe', 'followers_url': 'https://api.github.com/users/karalabe/followers', 'following_url': 'https://api.github.com/users/karalabe/following{/other_user}', 'gists_url': 'https://api.github.com/users/karalabe/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/karalabe/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/karalabe/subscriptions', 'organizations_url': 'https://api.github.com/users/karalabe/orgs', 'repos_url': 'https://api.github.com/users/karalabe/repos', 'events_url': 'https://api.github.com/users/karalabe/events{/privacy}', 'received_events_url': 'https://api.github.com/users/karalabe/received_events', 'type': 'User', 'site_admin': False}, {'login': 'zsfelfoldi', 'id': 9884311, 'node_id': 'MDQ6VXNlcjk4ODQzMTE=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9884311?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zsfelfoldi', 'html_url': 'https://github.com/zsfelfoldi', 'followers_url': 'https://api.github.com/users/zsfelfoldi/followers', 'following_url': 'https://api.github.com/users/zsfelfoldi/following{/other_user}', 'gists_url': 'https://api.github.com/users/zsfelfoldi/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zsfelfoldi/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zsfelfoldi/subscriptions', 'organizations_url': 'https://api.github.com/users/zsfelfoldi/orgs', 'repos_url': 'https://api.github.com/users/zsfelfoldi/repos', 'events_url': 'https://api.github.com/users/zsfelfoldi/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zsfelfoldi/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'head': {'label': 'YaoZengzeng:encap-mining', 'ref': 'encap-mining', 'sha': '8f453de0fc896b84c4ba03939ea11a18f0fbcaca', 'user': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 144448340, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDQ0NDgzNDA=', 'name': 'go-ethereum', 'full_name': 'YaoZengzeng/go-ethereum', 'private': False, 'owner': {'login': 'YaoZengzeng', 'id': 8636562, 'node_id': 'MDQ6VXNlcjg2MzY1NjI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8636562?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/YaoZengzeng', 'html_url': 'https://github.com/YaoZengzeng', 'followers_url': 'https://api.github.com/users/YaoZengzeng/followers', 'following_url': 'https://api.github.com/users/YaoZengzeng/following{/other_user}', 'gists_url': 'https://api.github.com/users/YaoZengzeng/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/YaoZengzeng/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/YaoZengzeng/subscriptions', 'organizations_url': 'https://api.github.com/users/YaoZengzeng/orgs', 'repos_url': 'https://api.github.com/users/YaoZengzeng/repos', 'events_url': 'https://api.github.com/users/YaoZengzeng/events{/privacy}', 'received_events_url': 'https://api.github.com/users/YaoZengzeng/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/YaoZengzeng/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum', 'forks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/YaoZengzeng/go-ethereum/deployments', 'created_at': '2018-08-12T07:54:54Z', 'updated_at': '2018-08-12T07:55:03Z', 'pushed_at': '2018-10-01T13:04:45Z', 'git_url': 'git://github.com/YaoZengzeng/go-ethereum.git', 'ssh_url': 'git@github.com:YaoZengzeng/go-ethereum.git', 'clone_url': 'https://github.com/YaoZengzeng/go-ethereum.git', 'svn_url': 'https://github.com/YaoZengzeng/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 106850, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '70398d300d4da97c89f96f5c9629caa327de5c39', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T04:00:25Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22057, 'watchers_count': 22057, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7710, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7710, 'open_issues': 858, 'watchers': 22057, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/17517'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/17517/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/17517/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/8f453de0fc896b84c4ba03939ea11a18f0fbcaca'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 135, 'deletions': 84, 'changed_files': 8}}, 'public': True, 'created_at': '2018-12-14T06:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753013016', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '7566458f9aa49c06faa8d2804536c1464b911e00', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:31:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007103', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038', 'pull_request_review_id': 184974719, 'id': 241652038, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MjAzOA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\n+ logs = log_filter.get_new_entries()\\n+ # ChainStart event should not be triggered\\n+ assert len(logs) == 0\\n \\n+ # Make 1 more deposit with value MAX_DEPOSIT to trigger ChainStart event\\n+ deposit_parameters = b\\'\\\\x06\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 126, 'original_position': 126, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:56Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241652038'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241652038'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007098', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969', 'pull_request_review_id': 184974719, 'id': 241651969, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTk2OQ==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9\\n+ # Next make 4 deposit with value MAX_DEPOSIT\\n+ for i in range(2, 6):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})', 'path': 'tests/contracts/test_deposit.py', 'position': 118, 'original_position': 118, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'nitpick\\r\\n```suggestion\\r\\n deposit_parameters,\\r\\n ).transact({\"value\": w3.toWei(max_deposit_amount, \"gwei\")})\\r\\n```', 'created_at': '2018-12-14T06:09:24Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651969'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651969'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:09:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007097', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680', 'pull_request_review_id': 184974719, 'id': 241651680, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTY4MA==', 'diff_hunk': '@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock=\\'latest\\')\\n+\\n+ deposit_parameters = b\\'\\\\x10\\' * 100\\n+ deposit_amount = 32 * 10**9\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n+\\n+ logs = log_filter.get_new_entries()\\n+ assert len(logs) == 1\\n+ log = logs[0][\\'args\\']\\n+\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ assert log[\\'previous_receipt_root\\'] == b\\'\\\\x00\\' * 32\\n+ assert log[\\'data\\'] == amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ assert log[\\'deposit_count\\'] == 0\\n+\\n+\\n+def test_reciept_tree(registration_contract, w3, assert_tx_failed):\\n+ deposit_amount = 32 * 10**9\\n+ amount_bytes8 = deposit_amount.to_bytes(8, \\'big\\')\\n \\n- call = registration_contract.functions.deposit(\\n- b\\'\\\\x55\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32)\\n+ leaf_nodes = []\\n+ for i in range(1, 10):\\n+ deposit_parameters = i.to_bytes(1, \\'big\\') * 100\\n+ registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(deposit_amount, \"gwei\")})\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 once.\\n- assert call.transact({\"value\": w3.toWei(32, \"ether\")})\\n+ timestamp_bytes8 = int(w3.eth.getBlock(w3.eth.blockNumber)[\\'timestamp\\']).to_bytes(8, \\'big\\')\\n+ data = amount_bytes8 + timestamp_bytes8 + deposit_parameters\\n+ leaf_nodes.append(w3.sha3(data))\\n+ root = compute_merkle_root(w3, leaf_nodes)\\n+ assert registration_contract.functions.get_receipt_root().call() == root\\n \\n- # Register pubkey b\\'\\\\x55\\'*32 twice would fail\\n- assert_tx_failed(\\n- lambda: call.transact({\"value\": w3.toWei(32, \"ether\")})\\n- )\\n \\n+def test_chain_start(modified_registration_contract, w3, assert_tx_failed):\\n+ # CHAIN_START_FULL_DEPOSIT_THRESHOLD is adjusted to 5\\n+ # First make 1 deposit with value below MAX_DEPOSIT\\n+ min_deposit_amount = 1 * 10**9\\n+ deposit_parameters = b\\'\\\\x01\\' * 100\\n+ modified_registration_contract.functions.deposit(\\n+ deposit_parameters).transact({\"value\": w3.toWei(min_deposit_amount, \"gwei\")})\\n \\n-def test_log_is_captured(registration_contract, a0, w3):\\n- log_filter = registration_contract.events.Deposit.createFilter(\\n+ log_filter = modified_registration_contract.events.ChainStart.createFilter(\\n fromBlock=\\'latest\\')\\n \\n- registration_contract.functions.deposit(\\n- b\\'\\\\x00\\'*32,\\n- 43,\\n- a0,\\n- b\\'\\\\x00\\'*32).transact({\"value\": w3.toWei(32, \"ether\")})\\n+ max_deposit_amount = 32 * 10**9', 'path': 'tests/contracts/test_deposit.py', 'position': 113, 'original_position': 113, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': '```suggestion\\r\\n max_deposit_amount = MAX_DEPOSIT * eth_utils.denoms.gwei # in gwei\\r\\n```', 'created_at': '2018-12-14T06:06:39Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651680'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651680'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:06:39Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007093', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416', 'pull_request_review_id': 184974719, 'id': 241651416, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTQxNg==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Then this line would be:\\r\\n```suggestion\\r\\n (False, MAX_DEPOSIT + 1)\\r\\n```', 'created_at': '2018-12-14T06:04:17Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651416'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651416'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:04:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007092', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348', 'pull_request_review_id': 184974719, 'id': 241651348, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY1MTM0OA==', 'diff_hunk': \"@@ -1,22 +1,32 @@\\n import pytest\\n \\n \\n+def compute_merkle_root(w3, leaf_nodes):\\n+ assert len(leaf_nodes) >= 1\\n+ empty_node = b'\\\\x00' * 32\\n+ child_nodes = leaf_nodes[:]\\n+ for i in range(32):\\n+ parent_nodes = []\\n+ if len(child_nodes) % 2 == 1:\\n+ child_nodes.append(empty_node)\\n+ for j in range(0, len(child_nodes), 2):\\n+ parent_nodes.append(w3.sha3(child_nodes[j] + child_nodes[j+1]))\\n+ child_nodes = parent_nodes\\n+ return child_nodes[0]\\n+\\n+\\n @pytest.mark.parametrize(\\n 'success,amount_deposit',\\n [\\n (True, 32),\\n- (False, 31),\\n- (False, 33),\\n- (False, 0)\\n+ (True, 1),\\n+ (False, 0),\\n+ (False, 33)\", 'path': 'tests/contracts/test_deposit.py', 'position': 27, 'original_position': 27, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'What do you think about defining the constants in `conftest.py`?\\r\\n```\\r\\nMIN_DEPOSIT: constant(uint256) = 1 # ETH\\r\\nMAX_DEPOSIT: constant(uint256) = 32 # ETH\\r\\nGWEI_PER_ETH: constant(uint256) = 1000000000 # 10**9\\r\\nCHAIN_START_FULL_DEPOSIT_THRESHOLD: constant(uint256) = 16384 # 2**14\\r\\nDEPOSIT_CONTRACT_TREE_DEPTH: constant(uint256) = 32\\r\\n```\\r\\n\\r\\n', 'created_at': '2018-12-14T06:03:37Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241651348'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241651348'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T06:03:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753007088', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423', 'pull_request_review_id': 184974719, 'id': 241649423, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTY0OTQyMw==', 'diff_hunk': \"@@ -25,37 +35,67 @@ def test_deposit(registration_contract, a0, w3, success, amount_deposit, assert_\\n )\\n \\n \\n-def test_no_reuse_of_pubkey(registration_contract, a0, w3, assert_tx_failed):\\n+def test_deposit_log(registration_contract, a0, w3):\\n+ log_filter = registration_contract.events.Eth1Deposit.createFilter(\\n+ fromBlock='latest')\", 'path': 'tests/contracts/test_deposit.py', 'position': 49, 'original_position': 49, 'commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'original_commit_id': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': \"nitpick\\r\\n```python\\r\\n log_filter = registration_contract.events.Eth1Deposit.createFilter(\\r\\n fromBlock='latest',\\r\\n )\\r\\n```\", 'created_at': '2018-12-14T05:46:02Z', 'updated_at': '2018-12-14T06:30:12Z', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423', 'pull_request_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments/241649423'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137#discussion_r241649423'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T06:30:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9bec5b925e2707c39a49a2bfc3cbe025633f517f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 390, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-12-14T03:46:36Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE'}}, 'public': True, 'created_at': '2018-12-14T05:46:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753004100', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': '_Sidebar', 'title': '_Sidebar', 'summary': None, 'action': 'edited', 'sha': 'b6f6576795708794795eda15345e139dd116e9a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/_Sidebar'}]}, 'public': True, 'created_at': '2018-12-14T06:29:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8753003206', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '93df733d97f7b773d62b64a6fbac3f2f289bfbe1', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:28:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752999575', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '793fc15fe4b50dda8bd0fb6ec000b7d6de9f5a29', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:27:46Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752975271', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '2073b0d741754ee81fcabd3f18fdf771dc0100d8', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:20:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752970116', 'type': 'ForkEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'forkee': {'id': 161740505, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3NDA1MDU=', 'name': 'py-evm', 'full_name': 'vardan10/py-evm', 'private': False, 'owner': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/vardan10/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/vardan10/py-evm', 'forks_url': 'https://api.github.com/repos/vardan10/py-evm/forks', 'keys_url': 'https://api.github.com/repos/vardan10/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vardan10/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vardan10/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/vardan10/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/vardan10/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vardan10/py-evm/events', 'assignees_url': 'https://api.github.com/repos/vardan10/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vardan10/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vardan10/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/vardan10/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vardan10/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vardan10/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vardan10/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vardan10/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vardan10/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/vardan10/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/vardan10/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/vardan10/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/vardan10/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/vardan10/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vardan10/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vardan10/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vardan10/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vardan10/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vardan10/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vardan10/py-evm/merges', 'archive_url': 'https://api.github.com/repos/vardan10/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vardan10/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/vardan10/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vardan10/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vardan10/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vardan10/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vardan10/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/vardan10/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vardan10/py-evm/deployments', 'created_at': '2018-12-14T06:18:35Z', 'updated_at': '2018-12-14T04:52:05Z', 'pushed_at': '2018-12-14T01:30:43Z', 'git_url': 'git://github.com/vardan10/py-evm.git', 'ssh_url': 'git@github.com:vardan10/py-evm.git', 'clone_url': 'https://github.com/vardan10/py-evm.git', 'svn_url': 'https://github.com/vardan10/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T06:18:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752969043', 'type': 'IssueCommentEvent', 'actor': {'id': 20511260, 'login': 'vardan10', 'display_login': 'vardan10', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'avatar_url': 'https://avatars.githubusercontent.com/u/20511260?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T06:18:13Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types in `subscription_msg_types`. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447226645', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601#issuecomment-447226645', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'id': 447226645, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyNjY0NQ==', 'user': {'login': 'vardan10', 'id': 20511260, 'node_id': 'MDQ6VXNlcjIwNTExMjYw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20511260?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vardan10', 'html_url': 'https://github.com/vardan10', 'followers_url': 'https://api.github.com/users/vardan10/followers', 'following_url': 'https://api.github.com/users/vardan10/following{/other_user}', 'gists_url': 'https://api.github.com/users/vardan10/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vardan10/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vardan10/subscriptions', 'organizations_url': 'https://api.github.com/users/vardan10/orgs', 'repos_url': 'https://api.github.com/users/vardan10/repos', 'events_url': 'https://api.github.com/users/vardan10/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vardan10/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T06:18:13Z', 'updated_at': '2018-12-14T06:18:13Z', 'author_association': 'NONE', 'body': \"@carver I only found 2 instances where ```set()``` is used. [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/state.py#L104) and [here](https://github.com/ethereum/py-evm/blob/ba08e5d98ca38e9d41677c8dc8acef6062131645/trinity/sync/full/chain.py#L143).\\r\\n\\r\\nPlease let me know if I have missed anything. I'll Raise a PR for this.\"}}, 'public': True, 'created_at': '2018-12-14T06:18:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752963589', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Sharding-roadmap', 'title': 'Sharding roadmap', 'summary': None, 'action': 'edited', 'sha': '9948c5bbf5c32169ef05c24c41751eb8956ea4ab', 'html_url': 'https://github.com/ethereum/wiki/wiki/Sharding-roadmap'}]}, 'public': True, 'created_at': '2018-12-14T06:16:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752957503', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '18e82785b342a4a9be330fadf416ca31b73b98a2', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:14:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752956003', 'type': 'GollumEvent', 'actor': {'id': 16969914, 'login': 'jamesray1', 'display_login': 'jamesray1', 'gravatar_id': '', 'url': 'https://api.github.com/users/jamesray1', 'avatar_url': 'https://avatars.githubusercontent.com/u/16969914?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'pages': [{'page_name': 'Home', 'title': 'Home', 'summary': None, 'action': 'edited', 'sha': '3cf1b1cddb92f9acfa0c681727cf842b78681a4c', 'html_url': 'https://github.com/ethereum/wiki/wiki/Home'}]}, 'public': True, 'created_at': '2018-12-14T06:13:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752900486', 'type': 'IssueCommentEvent', 'actor': {'id': 20085459, 'login': 'amitOodles', 'display_login': 'amitOodles', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'avatar_url': 'https://avatars.githubusercontent.com/u/20085459?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'repository_url': 'https://api.github.com/repos/ethereum/go-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/comments', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295/events', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295', 'id': 390551549, 'node_id': 'MDU6SXNzdWUzOTA1NTE1NDk=', 'number': 18295, 'title': 'Ropsten syncing after Constantinople', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1132687333, 'node_id': 'MDU6TGFiZWwxMTMyNjg3MzMz', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/need:check-for-current-version', 'name': 'need:check-for-current-version', 'color': 'd3b300', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T07:30:36Z', 'updated_at': '2018-12-14T05:56:27Z', 'closed_at': None, 'author_association': 'NONE', 'body': '\\r\\nI am unable to sync on the Ropsten network , i noticed the difference when i checked that my blockdata and highest blocks were different than those shown on ropsten.etherscan.io.\\r\\n\\r\\nI referred this `link https://notes.ethereum.org/s/SJE9O2ksQ#Ropsten-Byzantium-gtConstantinople-fork`, and ran my node in --nodiscover mode , adding the peers provided in the list. The issue now is i am not able to sync completely \\r\\n\\r\\nThis is the state of my geth instance from one day \\r\\n\\r\\n`eth.syncing\\r\\n{\\r\\n currentBlock: 4229808,\\r\\n highestBlock: 4617907,\\r\\n knownStates: 12753380,\\r\\n pulledStates: 12739941,\\r\\n startingBlock: 0\\r\\n}`\\r\\n\\r\\nThere are two issues -\\r\\n1) What should i do to get my geth instance in sync ?\\r\\n2) How do i differentiate on which reorganised chain my node is ? There is some information in this gist , \\r\\n`https://gist.github.com/veox/379ffd8480fab9edd14f904ae964986b` , But i am still confused about on how to figure if i am on the correct chain ?\\r\\n\\r\\n#### System information\\r\\n\\r\\nGeth version: `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7`\\r\\nOS & Version: Linux\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments/447222357', 'html_url': 'https://github.com/ethereum/go-ethereum/issues/18295#issuecomment-447222357', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18295', 'id': 447222357, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIyMjM1Nw==', 'user': {'login': 'amitOodles', 'id': 20085459, 'node_id': 'MDQ6VXNlcjIwMDg1NDU5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/20085459?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/amitOodles', 'html_url': 'https://github.com/amitOodles', 'followers_url': 'https://api.github.com/users/amitOodles/followers', 'following_url': 'https://api.github.com/users/amitOodles/following{/other_user}', 'gists_url': 'https://api.github.com/users/amitOodles/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/amitOodles/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/amitOodles/subscriptions', 'organizations_url': 'https://api.github.com/users/amitOodles/orgs', 'repos_url': 'https://api.github.com/users/amitOodles/repos', 'events_url': 'https://api.github.com/users/amitOodles/events{/privacy}', 'received_events_url': 'https://api.github.com/users/amitOodles/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:56:27Z', 'updated_at': '2018-12-14T05:56:27Z', 'author_association': 'NONE', 'body': 'Ran the geth node with the following version \\r\\n`Geth/v1.8.20-stable-24d727b6/linux-amd64/go1.9.7` and in --nodiscover mode\\r\\n\\r\\nAdded the peers stated in the following gist \\r\\n`https://gist.github.com/rfikki/31393c66b59f906a9a2e5a84215e8b00/5a5a0503f83773e19035577dab0f861ef993e87f`\\r\\n\\r\\nAnd was able to sync completely last night. There is one issue\\r\\n\\r\\n1) I have production nodes running with the previous versions (version - `Geth/v1.8.11-stable-dea1ce05/linux-amd64/go1.9.7` which are connected to mainnet unlike this node) , will i need to update the version on that node too? What is the issue here ?\\r\\n\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T05:56:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752897010', 'type': 'ForkEvent', 'actor': {'id': 10784863, 'login': 'nanjia', 'display_login': 'nanjia', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'avatar_url': 'https://avatars.githubusercontent.com/u/10784863?'}, 'repo': {'id': 96542036, 'name': 'ethereum/sharding', 'url': 'https://api.github.com/repos/ethereum/sharding'}, 'payload': {'forkee': {'id': 161738241, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzgyNDE=', 'name': 'sharding', 'full_name': 'nanjia/sharding', 'private': False, 'owner': {'login': 'nanjia', 'id': 10784863, 'node_id': 'MDQ6VXNlcjEwNzg0ODYz', 'avatar_url': 'https://avatars2.githubusercontent.com/u/10784863?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nanjia', 'html_url': 'https://github.com/nanjia', 'followers_url': 'https://api.github.com/users/nanjia/followers', 'following_url': 'https://api.github.com/users/nanjia/following{/other_user}', 'gists_url': 'https://api.github.com/users/nanjia/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nanjia/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nanjia/subscriptions', 'organizations_url': 'https://api.github.com/users/nanjia/orgs', 'repos_url': 'https://api.github.com/users/nanjia/repos', 'events_url': 'https://api.github.com/users/nanjia/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nanjia/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/nanjia/sharding', 'description': 'Sharding manager contract, and related software and tests', 'fork': True, 'url': 'https://api.github.com/repos/nanjia/sharding', 'forks_url': 'https://api.github.com/repos/nanjia/sharding/forks', 'keys_url': 'https://api.github.com/repos/nanjia/sharding/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/nanjia/sharding/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/nanjia/sharding/teams', 'hooks_url': 'https://api.github.com/repos/nanjia/sharding/hooks', 'issue_events_url': 'https://api.github.com/repos/nanjia/sharding/issues/events{/number}', 'events_url': 'https://api.github.com/repos/nanjia/sharding/events', 'assignees_url': 'https://api.github.com/repos/nanjia/sharding/assignees{/user}', 'branches_url': 'https://api.github.com/repos/nanjia/sharding/branches{/branch}', 'tags_url': 'https://api.github.com/repos/nanjia/sharding/tags', 'blobs_url': 'https://api.github.com/repos/nanjia/sharding/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/nanjia/sharding/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/nanjia/sharding/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/nanjia/sharding/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/nanjia/sharding/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/nanjia/sharding/languages', 'stargazers_url': 'https://api.github.com/repos/nanjia/sharding/stargazers', 'contributors_url': 'https://api.github.com/repos/nanjia/sharding/contributors', 'subscribers_url': 'https://api.github.com/repos/nanjia/sharding/subscribers', 'subscription_url': 'https://api.github.com/repos/nanjia/sharding/subscription', 'commits_url': 'https://api.github.com/repos/nanjia/sharding/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/nanjia/sharding/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/nanjia/sharding/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/nanjia/sharding/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/nanjia/sharding/contents/{+path}', 'compare_url': 'https://api.github.com/repos/nanjia/sharding/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/nanjia/sharding/merges', 'archive_url': 'https://api.github.com/repos/nanjia/sharding/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/nanjia/sharding/downloads', 'issues_url': 'https://api.github.com/repos/nanjia/sharding/issues{/number}', 'pulls_url': 'https://api.github.com/repos/nanjia/sharding/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/nanjia/sharding/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/nanjia/sharding/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/nanjia/sharding/labels{/name}', 'releases_url': 'https://api.github.com/repos/nanjia/sharding/releases{/id}', 'deployments_url': 'https://api.github.com/repos/nanjia/sharding/deployments', 'created_at': '2018-12-14T05:55:29Z', 'updated_at': '2018-12-07T04:33:37Z', 'pushed_at': '2018-06-21T15:54:19Z', 'git_url': 'git://github.com/nanjia/sharding.git', 'ssh_url': 'git@github.com:nanjia/sharding.git', 'clone_url': 'https://github.com/nanjia/sharding.git', 'svn_url': 'https://github.com/nanjia/sharding', 'homepage': '', 'size': 624, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:55:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752885025', 'type': 'WatchEvent', 'actor': {'id': 10951677, 'login': 'xuefengyuan', 'display_login': 'xuefengyuan', 'gravatar_id': '', 'url': 'https://api.github.com/users/xuefengyuan', 'avatar_url': 'https://avatars.githubusercontent.com/u/10951677?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:51:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865628', 'type': 'ForkEvent', 'actor': {'id': 45840931, 'login': 'totaking', 'display_login': 'totaking', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'avatar_url': 'https://avatars.githubusercontent.com/u/45840931?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161737264, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzcyNjQ=', 'name': 'wiki', 'full_name': 'totaking/wiki', 'private': False, 'owner': {'login': 'totaking', 'id': 45840931, 'node_id': 'MDQ6VXNlcjQ1ODQwOTMx', 'avatar_url': 'https://avatars0.githubusercontent.com/u/45840931?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/totaking', 'html_url': 'https://github.com/totaking', 'followers_url': 'https://api.github.com/users/totaking/followers', 'following_url': 'https://api.github.com/users/totaking/following{/other_user}', 'gists_url': 'https://api.github.com/users/totaking/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/totaking/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/totaking/subscriptions', 'organizations_url': 'https://api.github.com/users/totaking/orgs', 'repos_url': 'https://api.github.com/users/totaking/repos', 'events_url': 'https://api.github.com/users/totaking/events{/privacy}', 'received_events_url': 'https://api.github.com/users/totaking/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/totaking/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/totaking/wiki', 'forks_url': 'https://api.github.com/repos/totaking/wiki/forks', 'keys_url': 'https://api.github.com/repos/totaking/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/totaking/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/totaking/wiki/teams', 'hooks_url': 'https://api.github.com/repos/totaking/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/totaking/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/totaking/wiki/events', 'assignees_url': 'https://api.github.com/repos/totaking/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/totaking/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/totaking/wiki/tags', 'blobs_url': 'https://api.github.com/repos/totaking/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/totaking/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/totaking/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/totaking/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/totaking/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/totaking/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/totaking/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/totaking/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/totaking/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/totaking/wiki/subscription', 'commits_url': 'https://api.github.com/repos/totaking/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/totaking/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/totaking/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/totaking/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/totaking/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/totaking/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/totaking/wiki/merges', 'archive_url': 'https://api.github.com/repos/totaking/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/totaking/wiki/downloads', 'issues_url': 'https://api.github.com/repos/totaking/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/totaking/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/totaking/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/totaking/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/totaking/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/totaking/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/totaking/wiki/deployments', 'created_at': '2018-12-14T05:44:41Z', 'updated_at': '2018-12-14T02:12:18Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/totaking/wiki.git', 'ssh_url': 'git@github.com:totaking/wiki.git', 'clone_url': 'https://github.com/totaking/wiki.git', 'svn_url': 'https://github.com/totaking/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:44:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865281', 'type': 'DeleteEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T05:44:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865194', 'type': 'PushEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136815396, 'size': 2, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'before': '9e74043a1737b1a792e259ef93c995e0634df086', 'commits': [{'sha': 'c43724132b06086ae51a11001794dce802c74644', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Clarify block hash -> block root', 'distinct': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/c43724132b06086ae51a11001794dce802c74644'}, {'sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'author': {'email': 'hwwang156@gmail.com', 'name': 'Hsiao-Wei Wang'}, 'message': 'Merge pull request #318 from ethereum/vbuterin-patch-16\\n\\nClarify block hash -> block root', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/357167d8c201b0106a50e6cd62b81fc795eaa0f1'}]}, 'public': True, 'created_at': '2018-12-14T05:44:33Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752865139', 'type': 'PullRequestEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'closed', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T05:44:32Z', 'closed_at': '2018-12-14T05:44:32Z', 'merged_at': '2018-12-14T05:44:32Z', 'merge_commit_sha': '357167d8c201b0106a50e6cd62b81fc795eaa0f1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T05:44:32Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1088, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 67, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T05:44:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752854205', 'type': 'WatchEvent', 'actor': {'id': 17971842, 'login': 'Tinycl', 'display_login': 'Tinycl', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tinycl', 'avatar_url': 'https://avatars.githubusercontent.com/u/17971842?'}, 'repo': {'id': 37201011, 'name': 'ethereum/mist', 'url': 'https://api.github.com/repos/ethereum/mist'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:40:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802462', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752802390', 'type': 'WatchEvent', 'actor': {'id': 8110961, 'login': 'Gilbertly', 'display_login': 'Gilbertly', 'gravatar_id': '', 'url': 'https://api.github.com/users/Gilbertly', 'avatar_url': 'https://avatars.githubusercontent.com/u/8110961?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T05:20:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752770962', 'type': 'ForkEvent', 'actor': {'id': 19933442, 'login': 'ArnauSantamaria', 'display_login': 'ArnauSantamaria', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'avatar_url': 'https://avatars.githubusercontent.com/u/19933442?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'forkee': {'id': 161734300, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MzQzMDA=', 'name': 'solc-js', 'full_name': 'ArnauSantamaria/solc-js', 'private': False, 'owner': {'login': 'ArnauSantamaria', 'id': 19933442, 'node_id': 'MDQ6VXNlcjE5OTMzNDQy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/19933442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ArnauSantamaria', 'html_url': 'https://github.com/ArnauSantamaria', 'followers_url': 'https://api.github.com/users/ArnauSantamaria/followers', 'following_url': 'https://api.github.com/users/ArnauSantamaria/following{/other_user}', 'gists_url': 'https://api.github.com/users/ArnauSantamaria/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ArnauSantamaria/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ArnauSantamaria/subscriptions', 'organizations_url': 'https://api.github.com/users/ArnauSantamaria/orgs', 'repos_url': 'https://api.github.com/users/ArnauSantamaria/repos', 'events_url': 'https://api.github.com/users/ArnauSantamaria/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ArnauSantamaria/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/ArnauSantamaria/solc-js', 'description': 'Javascript bindings for the Solidity compiler', 'fork': True, 'url': 'https://api.github.com/repos/ArnauSantamaria/solc-js', 'forks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/forks', 'keys_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/teams', 'hooks_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/hooks', 'issue_events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/events', 'assignees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/tags', 'blobs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/languages', 'stargazers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/stargazers', 'contributors_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contributors', 'subscribers_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscribers', 'subscription_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/subscription', 'commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/merges', 'archive_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/downloads', 'issues_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/labels{/name}', 'releases_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ArnauSantamaria/solc-js/deployments', 'created_at': '2018-12-14T05:08:09Z', 'updated_at': '2018-12-13T11:30:06Z', 'pushed_at': '2018-12-13T15:03:01Z', 'git_url': 'git://github.com/ArnauSantamaria/solc-js.git', 'ssh_url': 'git@github.com:ArnauSantamaria/solc-js.git', 'clone_url': 'https://github.com/ArnauSantamaria/solc-js.git', 'svn_url': 'https://github.com/ArnauSantamaria/solc-js', 'homepage': '', 'size': 293, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T05:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752769047', 'type': 'IssueCommentEvent', 'actor': {'id': 15922456, 'login': 'Bhargavasomu', 'display_login': 'Bhargavasomu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'avatar_url': 'https://avatars.githubusercontent.com/u/15922456?'}, 'repo': {'id': 97318641, 'name': 'ethereum/py_ecc', 'url': 'https://api.github.com/repos/ethereum/py_ecc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'repository_url': 'https://api.github.com/repos/ethereum/py_ecc', 'labels_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/comments', 'events_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35/events', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'id': 389447423, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3NDM1NDk2', 'number': 35, 'title': '[WIP] Refactoring the Codebase', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T19:17:54Z', 'updated_at': '2018-12-14T05:07:22Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py_ecc/pulls/35', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35', 'diff_url': 'https://github.com/ethereum/py_ecc/pull/35.diff', 'patch_url': 'https://github.com/ethereum/py_ecc/pull/35.patch'}, 'body': '### What was wrong?\\r\\nFixes Issue: #31 \\r\\n\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.pinimg.com/originals/eb/01/f8/eb01f8b13063229091785c066a7c8e75.jpg)\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py_ecc/issues/comments/447214936', 'html_url': 'https://github.com/ethereum/py_ecc/pull/35#issuecomment-447214936', 'issue_url': 'https://api.github.com/repos/ethereum/py_ecc/issues/35', 'id': 447214936, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxNDkzNg==', 'user': {'login': 'Bhargavasomu', 'id': 15922456, 'node_id': 'MDQ6VXNlcjE1OTIyNDU2', 'avatar_url': 'https://avatars0.githubusercontent.com/u/15922456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Bhargavasomu', 'html_url': 'https://github.com/Bhargavasomu', 'followers_url': 'https://api.github.com/users/Bhargavasomu/followers', 'following_url': 'https://api.github.com/users/Bhargavasomu/following{/other_user}', 'gists_url': 'https://api.github.com/users/Bhargavasomu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Bhargavasomu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Bhargavasomu/subscriptions', 'organizations_url': 'https://api.github.com/users/Bhargavasomu/orgs', 'repos_url': 'https://api.github.com/users/Bhargavasomu/repos', 'events_url': 'https://api.github.com/users/Bhargavasomu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Bhargavasomu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T05:07:22Z', 'updated_at': '2018-12-14T05:07:22Z', 'author_association': 'CONTRIBUTOR', 'body': \"@pipermerriam the following issues still have not been addressed till this point and I have some questions.\\r\\n* Instead of using `classmethod` or `staticmethod` decorators, I was thinking that maybe we could instantiate an object in `_init__.py` like `bn128 = BN128_Curve()`, and the users could use this object itself directly. Need your suggestion on this.\\r\\n* I still haven't received a response to the comments raised by me [here](https://github.com/ethereum/py_ecc/issues/24#issuecomment-446088199), and hence I am reverting back to the old phase itself (where instead of `division` we would be doing `multiplication`). I will open an issue for this bug and leave the code and tests unchanged in this issue.\\r\\n* I still haven't done the type hinting completely and hence didn't include it in `tox`.\\r\\n* Still have to replace `asserts` with `Exceptions`.\\r\\n* `circleci` was annoying with the installation of `mypy-extensions`, and hence I have flooded `tox.ini` with the installation of `mypy-extensions`. It's working for now, but might not be suboptimal.\\r\\n* Last but not least, we need a mechanism to validate the `constants` of the curves. For example, we need to be sure that the `field_modulus` is a prime number. I feel that these shouldn't be part of the `tests` and maybe we have to test the `validity` of these constants everytime we import the whole module or it's submodule. I was thinking maybe we can validate these constants in `__init__.py`. What do you say?\"}}, 'public': True, 'created_at': '2018-12-14T05:07:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752739093', 'type': 'IssueCommentEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140/events', 'html_url': 'https://github.com/ethereum/vyper/issues/1140', 'id': 390449234, 'node_id': 'MDU6SXNzdWUzOTA0NDkyMzQ=', 'number': 1140, 'title': 'Monday 17th December 2018', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 962355094, 'node_id': 'MDU6TGFiZWw5NjIzNTUwOTQ=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/meeting', 'name': 'meeting', 'color': '7ff9e3', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-12T23:12:04Z', 'updated_at': '2018-12-14T04:55:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Start: Monday 17th December 2018, 13:00 UTC (https://time.is/UTC)\\r\\nHangouts: https://meet.google.com/czc-kuep-jda\\r\\n\\r\\nAgenda:\\r\\n- Slithr'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447213087', 'html_url': 'https://github.com/ethereum/vyper/issues/1140#issuecomment-447213087', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/1140', 'id': 447213087, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIxMzA4Nw==', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:55:28Z', 'updated_at': '2018-12-14T04:55:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Another agenda topic I'd like to add - struct calling convention / ABI issues / scope of #1019\"}}, 'public': True, 'created_at': '2018-12-14T04:55:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752730925', 'type': 'WatchEvent', 'actor': {'id': 26325992, 'login': 'hsauers5', 'display_login': 'hsauers5', 'gravatar_id': '', 'url': 'https://api.github.com/users/hsauers5', 'avatar_url': 'https://avatars.githubusercontent.com/u/26325992?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:52:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752690782', 'type': 'WatchEvent', 'actor': {'id': 1610828, 'login': 'vinaymavi', 'display_login': 'vinaymavi', 'gravatar_id': '', 'url': 'https://api.github.com/users/vinaymavi', 'avatar_url': 'https://avatars.githubusercontent.com/u/1610828?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:35:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620924', 'type': 'IssuesEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752620912', 'type': 'IssueCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305', 'id': 390503056, 'node_id': 'MDU6SXNzdWUzOTA1MDMwNTY=', 'number': 305, 'title': 'move `process_ejections` to per-epoch', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T03:29:38Z', 'updated_at': '2018-12-14T04:07:36Z', 'closed_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'Ejections are currently in \"per-block\". They should instead be in per-epoch.\\r\\n\\r\\nI argue per-epoch instead of per-slot because there is nothing during the middle of an epoch that lowers a validator\\'s balance. Only after per-epoch rewards/penalties would a validator newly be below the `MIN_BALANCE` and qualify for ejection.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447206906', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/305#issuecomment-447206906', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/305', 'id': 447206906, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzIwNjkwNg==', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T04:07:36Z', 'updated_at': '2018-12-14T04:07:36Z', 'author_association': 'CONTRIBUTOR', 'body': 'closing in favor of #314'}}, 'public': True, 'created_at': '2018-12-14T04:07:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604667', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 318, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318', 'id': 238604573, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjA0NTcz', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/318', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/318.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318', 'number': 318, 'state': 'open', 'locked': False, 'title': 'Clarify block hash -> block root', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T04:01:38Z', 'updated_at': '2018-12-14T04:01:38Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644', 'head': {'label': 'ethereum:vbuterin-patch-16', 'ref': 'vbuterin-patch-16', 'sha': 'c43724132b06086ae51a11001794dce802c74644', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T04:01:39Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 39, 'license': None, 'forks': 67, 'open_issues': 39, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/318'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/318/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/318/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/c43724132b06086ae51a11001794dce802c74644'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 3, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T04:01:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752604442', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-16', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T04:01:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601400', 'type': 'WatchEvent', 'actor': {'id': 2513446, 'login': 'anirudh-chhangani', 'display_login': 'anirudh-chhangani', 'gravatar_id': '', 'url': 'https://api.github.com/users/anirudh-chhangani', 'avatar_url': 'https://avatars.githubusercontent.com/u/2513446?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752601144', 'type': 'WatchEvent', 'actor': {'id': 7011738, 'login': 'hiro8ma', 'display_login': 'hiro8ma', 'gravatar_id': '', 'url': 'https://api.github.com/users/hiro8ma', 'avatar_url': 'https://avatars.githubusercontent.com/u/7011738?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T04:00:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586965', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180', 'pull_request_review_id': 184961540, 'id': 241638180, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzODE4MA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'One of the operations involving aggregate signatures _is_ aggregate signature verification. So I guess this depends what we want the order to be: simple sig verification first, then all aggregate sig stuff, or pubkey and sig aggregation first, then all sig verification?', 'created_at': '2018-12-14T03:55:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241638180'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241638180'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}, 'in_reply_to_id': 241634854}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:55:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:55:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752586432', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667', 'pull_request_review_id': 184960929, 'id': 241637667, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNzY2Nw==', 'diff_hunk': '@@ -967,17 +990,19 @@ def get_effective_balance(validator: ValidatorRecord) -> int:\\n \\n ```python\\n def get_new_validator_registry_delta_chain_tip(current_validator_registry_delta_chain_tip: Hash32,\\n- index: int,\\n+ validator_index: int,', 'path': 'specs/core/0_beacon-chain.md', 'position': 56, 'original_position': 56, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, need to update the keyword argument where that this function is being called.\\r\\n(in `def activate_validator()` and in `def exit_validator()`)', 'created_at': '2018-12-14T03:50:16Z', 'updated_at': '2018-12-14T03:55:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241637667'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241637667'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-14T03:55:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:50:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752567103', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136657017, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '1683c108885da84f8b81b3669b6e40e9111e147b', 'before': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'commits': [{'sha': '1683c108885da84f8b81b3669b6e40e9111e147b', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'Chore: package config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/1683c108885da84f8b81b3669b6e40e9111e147b'}]}, 'public': True, 'created_at': '2018-12-14T03:48:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752564560', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136655721, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'before': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'commits': [{'sha': 'd7dfa4faa2d41ac42b641a6cfe3a13f529eac853', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: disabling package cache', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/d7dfa4faa2d41ac42b641a6cfe3a13f529eac853'}]}, 'public': True, 'created_at': '2018-12-14T03:47:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752562158', 'type': 'PullRequestEvent', 'actor': {'id': 17670147, 'login': 'NIC619', 'display_login': 'NIC619', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'avatar_url': 'https://avatars.githubusercontent.com/u/17670147?'}, 'repo': {'id': 137509648, 'name': 'ethereum/beacon_chain', 'url': 'https://api.github.com/repos/ethereum/beacon_chain'}, 'payload': {'action': 'opened', 'number': 137, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137', 'id': 238602700, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NjAyNzAw', 'html_url': 'https://github.com/ethereum/beacon_chain/pull/137', 'diff_url': 'https://github.com/ethereum/beacon_chain/pull/137.diff', 'patch_url': 'https://github.com/ethereum/beacon_chain/pull/137.patch', 'issue_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137', 'number': 137, 'state': 'open', 'locked': False, 'title': 'Update pow chain deposit contract and tests', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'body': '- [x] Update deposit contract with the one from the [spec](https://github.com/ethereum/eth2.0-specs/blob/9e74043a1737b1a792e259ef93c995e0634df086/specs/core/0_beacon-chain.md#ethereum-10-deposit-contract)\\r\\n- [x] Update Vyper version\\r\\n- [x] Update deposit tests\\r\\n - deposit amount\\r\\n - deposit log\\r\\n - receipt tree\\r\\n- [x] Add `ChainStart` test', 'created_at': '2018-12-14T03:46:35Z', 'updated_at': '2018-12-14T03:46:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'head': {'label': 'NIC619:update_pow_chain_deposit_contract', 'ref': 'update_pow_chain_deposit_contract', 'sha': '87cc31819fd212f5f6f28c305b74cdf603d4bca9', 'user': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 138282107, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzgyODIxMDc=', 'name': 'beacon_chain', 'full_name': 'NIC619/beacon_chain', 'private': False, 'owner': {'login': 'NIC619', 'id': 17670147, 'node_id': 'MDQ6VXNlcjE3NjcwMTQ3', 'avatar_url': 'https://avatars0.githubusercontent.com/u/17670147?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/NIC619', 'html_url': 'https://github.com/NIC619', 'followers_url': 'https://api.github.com/users/NIC619/followers', 'following_url': 'https://api.github.com/users/NIC619/following{/other_user}', 'gists_url': 'https://api.github.com/users/NIC619/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/NIC619/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/NIC619/subscriptions', 'organizations_url': 'https://api.github.com/users/NIC619/orgs', 'repos_url': 'https://api.github.com/users/NIC619/repos', 'events_url': 'https://api.github.com/users/NIC619/events{/privacy}', 'received_events_url': 'https://api.github.com/users/NIC619/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/NIC619/beacon_chain', 'description': None, 'fork': True, 'url': 'https://api.github.com/repos/NIC619/beacon_chain', 'forks_url': 'https://api.github.com/repos/NIC619/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/NIC619/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/NIC619/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/NIC619/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/NIC619/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/NIC619/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/NIC619/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/NIC619/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/NIC619/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/NIC619/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/NIC619/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/NIC619/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/NIC619/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/NIC619/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/NIC619/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/NIC619/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/NIC619/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/NIC619/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/NIC619/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/NIC619/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/NIC619/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/NIC619/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/NIC619/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/NIC619/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/NIC619/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/NIC619/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/NIC619/beacon_chain/deployments', 'created_at': '2018-06-22T09:16:51Z', 'updated_at': '2018-06-22T09:16:53Z', 'pushed_at': '2018-12-14T03:28:30Z', 'git_url': 'git://github.com/NIC619/beacon_chain.git', 'ssh_url': 'git@github.com:NIC619/beacon_chain.git', 'clone_url': 'https://github.com/NIC619/beacon_chain.git', 'svn_url': 'https://github.com/NIC619/beacon_chain', 'homepage': None, 'size': 78, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '57a97342f2c0291dfbf7fa76b987743e6061511a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 137509648, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMzc1MDk2NDg=', 'name': 'beacon_chain', 'full_name': 'ethereum/beacon_chain', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/beacon_chain', 'description': None, 'fork': False, 'url': 'https://api.github.com/repos/ethereum/beacon_chain', 'forks_url': 'https://api.github.com/repos/ethereum/beacon_chain/forks', 'keys_url': 'https://api.github.com/repos/ethereum/beacon_chain/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/beacon_chain/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/beacon_chain/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/beacon_chain/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/beacon_chain/events', 'assignees_url': 'https://api.github.com/repos/ethereum/beacon_chain/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/beacon_chain/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/beacon_chain/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/beacon_chain/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/beacon_chain/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/beacon_chain/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/beacon_chain/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/beacon_chain/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/beacon_chain/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/beacon_chain/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/beacon_chain/merges', 'archive_url': 'https://api.github.com/repos/ethereum/beacon_chain/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/beacon_chain/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/beacon_chain/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/beacon_chain/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/beacon_chain/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/beacon_chain/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/beacon_chain/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/beacon_chain/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/beacon_chain/deployments', 'created_at': '2018-06-15T16:26:28Z', 'updated_at': '2018-12-11T14:58:24Z', 'pushed_at': '2018-11-23T13:37:58Z', 'git_url': 'git://github.com/ethereum/beacon_chain.git', 'ssh_url': 'git@github.com:ethereum/beacon_chain.git', 'clone_url': 'https://github.com/ethereum/beacon_chain.git', 'svn_url': 'https://github.com/ethereum/beacon_chain', 'homepage': None, 'size': 404, 'stargazers_count': 149, 'watchers_count': 149, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 36, 'mirror_url': None, 'archived': False, 'open_issues_count': 7, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 36, 'open_issues': 7, 'watchers': 149, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137'}, 'html': {'href': 'https://github.com/ethereum/beacon_chain/pull/137'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/issues/137/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/pulls/137/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/beacon_chain/statuses/87cc31819fd212f5f6f28c305b74cdf603d4bca9'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 7, 'additions': 138, 'deletions': 57, 'changed_files': 4}}, 'public': True, 'created_at': '2018-12-14T03:46:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752498077', 'type': 'WatchEvent', 'actor': {'id': 7344025, 'login': 'jeojoe', 'display_login': 'jeojoe', 'gravatar_id': '', 'url': 'https://api.github.com/users/jeojoe', 'avatar_url': 'https://avatars.githubusercontent.com/u/7344025?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T03:23:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752497430', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9263930, 'login': 'hwwhww', 'display_login': 'hwwhww', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'avatar_url': 'https://avatars.githubusercontent.com/u/9263930?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854', 'pull_request_review_id': 184957523, 'id': 241634854, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYzNDg1NA==', 'diff_hunk': '@@ -117,6 +117,16 @@ Let `bls_verify(pubkey: uint384, message: bytes32, signature: [uint384], domain:\\n * Verify that `signature` is a valid G2 point.\\n * Verify that `e(pubkey, hash_to_G2(message, domain)) == e(g, signature)`.\\n \\n+## Operations involving aggregate signatures', 'path': 'specs/bls_signature.md', 'position': 4, 'original_position': 4, 'commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'original_commit_id': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Perhaps move \"## Signature verification\" section after \"## Operations involving aggregate signatures\" section.', 'created_at': '2018-12-14T03:22:34Z', 'updated_at': '2018-12-14T03:23:11Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241634854'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316#discussion_r241634854'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T03:23:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7b71010626d440d289bb2fb5ea9f7ddf7853d581', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 67, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 67, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T03:22:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752385152', 'type': 'ForkEvent', 'actor': {'id': 19542680, 'login': 'dctlsk', 'display_login': 'dctlsk', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'avatar_url': 'https://avatars.githubusercontent.com/u/19542680?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'forkee': {'id': 161722668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MjI2Njg=', 'name': 'eth2.0-specs', 'full_name': 'dctlsk/eth2.0-specs', 'private': False, 'owner': {'login': 'dctlsk', 'id': 19542680, 'node_id': 'MDQ6VXNlcjE5NTQyNjgw', 'avatar_url': 'https://avatars0.githubusercontent.com/u/19542680?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dctlsk', 'html_url': 'https://github.com/dctlsk', 'followers_url': 'https://api.github.com/users/dctlsk/followers', 'following_url': 'https://api.github.com/users/dctlsk/following{/other_user}', 'gists_url': 'https://api.github.com/users/dctlsk/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dctlsk/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dctlsk/subscriptions', 'organizations_url': 'https://api.github.com/users/dctlsk/orgs', 'repos_url': 'https://api.github.com/users/dctlsk/repos', 'events_url': 'https://api.github.com/users/dctlsk/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dctlsk/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dctlsk/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': True, 'url': 'https://api.github.com/repos/dctlsk/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dctlsk/eth2.0-specs/deployments', 'created_at': '2018-12-14T02:45:29Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:40:02Z', 'git_url': 'git://github.com/dctlsk/eth2.0-specs.git', 'ssh_url': 'git@github.com:dctlsk/eth2.0-specs.git', 'clone_url': 'https://github.com/dctlsk/eth2.0-specs.git', 'svn_url': 'https://github.com/dctlsk/eth2.0-specs', 'homepage': None, 'size': 1065, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:45:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752377568', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'id': 390934833, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'number': 5399, 'title': 'Add allow-local networking command-line argument to aleth & aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T02:43:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch'}, 'body': 'New networking arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones local machine'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447194231', 'html_url': 'https://github.com/ethereum/aleth/pull/5399#issuecomment-447194231', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'id': 447194231, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE5NDIzMQ==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T02:43:04Z', 'updated_at': '2018-12-14T02:43:04Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=h1) Report\\n> Merging [#5399](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/aleth/commit/ec3886029393fc9927b130ba8f8671480d810391?src=pr&el=desc) will **decrease** coverage by `0.48%`.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/aleth/pull/5399/graphs/tree.svg?width=650&token=FLNAK13ErJ&height=150&src=pr)](https://codecov.io/gh/ethereum/aleth/pull/5399?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #5399 +/- ##\\n==========================================\\n- Coverage 61.24% 60.75% -0.49% \\n==========================================\\n Files 344 344 \\n Lines 28178 28184 +6 \\n Branches 3245 3247 +2 \\n==========================================\\n- Hits 17257 17123 -134 \\n- Misses 9792 9925 +133 \\n- Partials 1129 1136 +7\\n```\\n'}}, 'public': True, 'created_at': '2018-12-14T02:43:04Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752283212', 'type': 'WatchEvent', 'actor': {'id': 38976, 'login': 'yorzi', 'display_login': 'yorzi', 'gravatar_id': '', 'url': 'https://api.github.com/users/yorzi', 'avatar_url': 'https://avatars.githubusercontent.com/u/38976?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:12:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752249772', 'type': 'WatchEvent', 'actor': {'id': 15381920, 'login': 'chiaki-i', 'display_login': 'chiaki-i', 'gravatar_id': '', 'url': 'https://api.github.com/users/chiaki-i', 'avatar_url': 'https://avatars.githubusercontent.com/u/15381920?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T02:01:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752245403', 'type': 'ForkEvent', 'actor': {'id': 13427145, 'login': 'coolhackboy', 'display_login': 'coolhackboy', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'avatar_url': 'https://avatars.githubusercontent.com/u/13427145?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161718404, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTg0MDQ=', 'name': 'go-ethereum', 'full_name': 'coolhackboy/go-ethereum', 'private': False, 'owner': {'login': 'coolhackboy', 'id': 13427145, 'node_id': 'MDQ6VXNlcjEzNDI3MTQ1', 'avatar_url': 'https://avatars1.githubusercontent.com/u/13427145?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/coolhackboy', 'html_url': 'https://github.com/coolhackboy', 'followers_url': 'https://api.github.com/users/coolhackboy/followers', 'following_url': 'https://api.github.com/users/coolhackboy/following{/other_user}', 'gists_url': 'https://api.github.com/users/coolhackboy/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/coolhackboy/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/coolhackboy/subscriptions', 'organizations_url': 'https://api.github.com/users/coolhackboy/orgs', 'repos_url': 'https://api.github.com/users/coolhackboy/repos', 'events_url': 'https://api.github.com/users/coolhackboy/events{/privacy}', 'received_events_url': 'https://api.github.com/users/coolhackboy/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/coolhackboy/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/coolhackboy/go-ethereum', 'forks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/coolhackboy/go-ethereum/deployments', 'created_at': '2018-12-14T02:00:14Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-14T01:35:03Z', 'git_url': 'git://github.com/coolhackboy/go-ethereum.git', 'ssh_url': 'git@github.com:coolhackboy/go-ethereum.git', 'clone_url': 'https://github.com/coolhackboy/go-ethereum.git', 'svn_url': 'https://github.com/coolhackboy/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T02:00:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752240909', 'type': 'PullRequestEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'opened', 'number': 5399, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399', 'id': 238588768, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg4NzY4', 'html_url': 'https://github.com/ethereum/aleth/pull/5399', 'diff_url': 'https://github.com/ethereum/aleth/pull/5399.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5399.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399', 'number': 5399, 'state': 'open', 'locked': False, 'title': 'Add allow-local arg to aleth/aleth-bootnode', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Arg is used to enable nodes from your local network to be added to the\\r\\nnode table. Useful for testing discovery running multiple nodes on ones\\r\\nlocal machine', 'created_at': '2018-12-14T01:58:55Z', 'updated_at': '2018-12-14T01:58:55Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'head': {'label': 'ethereum:test-allowlocal', 'ref': 'test-allowlocal', 'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ec3886029393fc9927b130ba8f8671480d810391', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T23:38:15Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55466, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 323, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 323, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5399'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5399/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5399/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 11, 'deletions': 3, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:58:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752217273', 'type': 'IssueCommentEvent', 'actor': {'id': 1195159, 'login': 'dete', 'display_login': 'dete', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'avatar_url': 'https://avatars.githubusercontent.com/u/1195159?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654', 'id': 390492191, 'node_id': 'MDU6SXNzdWUzOTA0OTIxOTE=', 'number': 1654, 'title': 'ERC-1654 Dapp-wallet authentication process with contract wallets support', 'user': {'login': 'pazams', 'id': 9962080, 'node_id': 'MDQ6VXNlcjk5NjIwODA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/9962080?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pazams', 'html_url': 'https://github.com/pazams', 'followers_url': 'https://api.github.com/users/pazams/followers', 'following_url': 'https://api.github.com/users/pazams/following{/other_user}', 'gists_url': 'https://api.github.com/users/pazams/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pazams/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pazams/subscriptions', 'organizations_url': 'https://api.github.com/users/pazams/orgs', 'repos_url': 'https://api.github.com/users/pazams/repos', 'events_url': 'https://api.github.com/users/pazams/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pazams/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T02:31:17Z', 'updated_at': '2018-12-14T01:51:34Z', 'closed_at': None, 'author_association': 'NONE', 'body': '---\\r\\neip: \\r\\ntitle: Dapp-wallet authentication process with contract wallets support\\r\\nauthor: Maor Zamski (@pazams)\\r\\ndiscussions-to: \\r\\nstatus: Draft\\r\\ntype: Meta\\r\\ncreated: 2018-12-12\\r\\n---\\r\\n\\r\\n\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nAn off-chain process for dapps to prove actionable control (informally, \"ownership\") over a public Ethereum address using `eth_sign`. Supports both external wallets and contract wallets.\\r\\n\\r\\n## Definitions\\r\\n- `contract wallet` A contract [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts) deployed with the intent to be used as the ownership address for on-chain assets (including ether, ERC-20 tokens, and ERC-721 NFTs). It has the ability to transfer ether or dynamically execute actions on other contracts (acting as the owner of assets controlled by those contracts). Common examples of contract wallets are `multisig wallets` (such as the ones provided by [Gnosis](https://github.com/Gnosis/MultiSigWallet) and [Parity](https://github.com/ConsenSys/MultiSigWallet)) and `identity contracts`, as defined in [ERC-725](https://github.com/ethereum/EIPs/issues/725).\\r\\n- `external wallet` An externally owned [account](https://github.com/ethereum/wiki/wiki/White-Paper#ethereum-accounts), controlled by a private key. Currently, most on-chain assets are owned by such accounts. A common example for an external wallet are the wallets generated by MetaMask.\\r\\n- `actionable control` A public key is defined to have actionable control over an address if either:\\r\\n - It is an external wallet AND the key is determined to correspond to the address.\\r\\n - It is a contract wallet AND the key exists in the contract account state and has a purpose of `ACTION` as defined in EIP-725.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nThe authentication process starts with the dapp client component requesting a message signature from the wallet.\\r\\nThe client then proceeds to send the result to the dapp backend component along with the requested address to be used for authentication. The dapp backend recovers a public key from the signature, and checks if it has actionable control over the requested address. This check is done under consideration that the address may represent either an external wallet or a contract wallet. This process works with external wallets and EIP-725 contract wallets. For this process to be compatible with any other contract wallet, it requires the wallet to implement a small subset of EIP-725.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nDapps frequently offer a customised off-chain user experience in addition to their smart-contract interface. For example, a dapp may provide a push notification feature to their users, allowing them to stay notified about successful state changes associated with their public addresses. For these type of features, a dapp needs a way to authenticate that a user has actionable control over the public address associated with their account.\\r\\n\\r\\nA common practice dapps use in an authentication process is to only check if a recovered public key matches the requested authentication address. For contract wallets, this check is broken, as there is no corresponding private key to which to generate a signed message, and hence why some dapps are inaccessible for contract wallet users. It is therefore argued that a more broader approach is needed.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Dapp\\r\\n\\r\\nOn the dapp side, the dapp-wallet authentication process MUST follow these steps:\\r\\n1. Dapp client requests the wallet software to sign a challenge message via [`eth_sign`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign).\\r\\n2. Dapp client sends the signature to the dapp\\'s backend component, along with the wallet address to be authenticated with. The address may be obtained via [`eth_accounts`](https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts).\\r\\n3. Dapp backend recovers a public key from the signature.\\r\\n4. Dapp backend checks if the recovered key has actionable control over the provided wallet address under the assumption it could represent an external wallet OR a contract wallet. For the case of a contract wallet, it MUST be determined it supports the entirety of the EIP-725 interface via a EIP-165 interfaceID `0xdc3d2a7b` or just the `keyHasPurpose` method as a subset of it using the EIP-165 interfaceID `0xd202158d`.\\r\\n5. The result of the actionable control check is returned as the result of the authentication and the flow is complete.\\r\\n\\r\\nA challenge message SHOULD contain a random component. This will reduce the risk of replay attacks.\\r\\n\\r\\nA challenge message SHOULD be generated by the dapp backend AND not get sent back as input from the dapp client, but be persisted in the backend for at least the entirety of the authentication process. This will remove the risk of accepting forged challenges.\\r\\n\\r\\nThe following algorithm MAY be used by dapp backend when authenticating users with personal signed messages:\\r\\n\\r\\n```\\r\\nFUNCTION isSignerActionableOnAddress(challengeString, signature, walletAddress) RETURNS (successFlag, errorMsg)\\r\\n\\r\\n SET challengeHash to the hash of: challengeString prepended with `\"\\\\x19Ethereum Signed Message:\\\\n\" + len(challengeString)`\\r\\n\\r\\n SET recoveredKey to the public key recovered from signature and challengeHash\\r\\n\\r\\n SET recoveredAddress to the address corresponding with recoveredKey\\r\\n\\r\\n // try external wallet\\r\\n IF walletAddress EQUALS recoveredAddress\\r\\n RETURN true, nil\\r\\n END IF\\r\\n\\r\\n // else try contract wallet\\r\\n SET isSupportedContract to TRUE IF walletAddress is a smart contract AND (has interfaceID 0xd202158d OR has interfaceID 0xdc3d2a7b)\\r\\n\\r\\n IF isSupportedContract resulted in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n IF isSupportedContract equals FALSE\\r\\n RETURN false, nil\\r\\n END IF\\r\\n\\r\\n SET keyHasActionPurpose to the result of calling a contract method keyHasPurpose with recoveredKey and ACTION parameters\\r\\n\\r\\n IF keyHasActionPurpose in an error\\r\\n RETURN false, ERROR\\r\\n END IF\\r\\n\\r\\n RETURN keyHasActionPurpose, nil\\r\\n\\r\\nEND FUNCTION\\r\\n```\\r\\n\\r\\n### Wallet\\r\\n\\r\\n#### External wallet\\r\\nAny software agents managing external wallets are not required to make any changes to continue to work with this process.\\r\\n\\r\\n#### Contract wallet\\r\\n\\r\\n1. The contract MUST implement the [keyHasPurpose](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-725.md#keyhaspurpose) method as in EIP-725:\\r\\n\\r\\n ```Solidity\\r\\n function keyHasPurpose(bytes32 _key, uint256 purpose) constant returns(bool exists);\\r\\n ```\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `true` if a key is present AND it can perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n When passed the ACTION `purpose` parameter of `2`, the method MUST return `false` if a key is not present OR it cannot perform actions in wallet\\'s name (signing, logins, transactions, etc.)\\r\\n\\r\\n2. The contract MUST implement the EIP-165 method:\\r\\n\\r\\n ```Solidity\\r\\n function supportsInterface(bytes4 interfaceID) external view returns (bool);\\r\\n ```\\r\\n\\r\\n It MUST return `true` if passed an `interfaceID` of `0xd202158d` OR `0xdc3d2a7b`. The former value represents a minimal subset of EIP-725 with just the `keyHasPurpose` method, while the later represents the full EIP-725 interface.\\r\\n\\r\\n## Rationale\\r\\n\\r\\nThere has been a great body of work in standardizing contracts wallets, namely https://github.com/ethereum/EIPs/issues/725. However, for the current process of dapp-wallet authentication, interfaces for claims and key management are not required. Instead, a single contract method and a modification for the current process suffices. The small surface area of this proposal should allow it to be easily compatible across different types of contract wallets.\\r\\n\\r\\n## Backwards Compatibility\\r\\n\\r\\n- external wallets are backwards compatible with this process.\\r\\n- contract wallets with EIP-725 support, are compatible with this process without modification.\\r\\n- contract wallets without EIP-725 support must implement the proposed subset of EIP-725 to be compatible with this process.\\r\\n\\r\\n## Implementation\\r\\n\\r\\nPackages implementing the purposed algorithm: \\r\\n- Javascript: https://github.com/dapperlabs/dappauth.js\\r\\n- Go: https://github.com/dapperlabs/dappauth\\r\\n\\r\\n## Copyright\\r\\nCopyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).\\r\\n\\r\\n---\\r\\nThanks to @dete @Arachnid @chrisaxiom @igorbarbashin @turbolent @jordanschalm @hwrdtm for feedback and suggestions'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447185503', 'html_url': 'https://github.com/ethereum/EIPs/issues/1654#issuecomment-447185503', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1654', 'id': 447185503, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE4NTUwMw==', 'user': {'login': 'dete', 'id': 1195159, 'node_id': 'MDQ6VXNlcjExOTUxNTk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1195159?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dete', 'html_url': 'https://github.com/dete', 'followers_url': 'https://api.github.com/users/dete/followers', 'following_url': 'https://api.github.com/users/dete/following{/other_user}', 'gists_url': 'https://api.github.com/users/dete/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dete/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dete/subscriptions', 'organizations_url': 'https://api.github.com/users/dete/orgs', 'repos_url': 'https://api.github.com/users/dete/repos', 'events_url': 'https://api.github.com/users/dete/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dete/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:51:34Z', 'updated_at': '2018-12-14T01:51:34Z', 'author_association': 'NONE', 'body': 'Thanks to @pazams for writing this up. We think that there are lots of good reasons to use smart contract wallets, even for individual users. Hopefully, lots of Dapps will make this simple change to make that use-case viable (as we will for [CryptoKitties](https://www.cryptokitties.co/)!).'}}, 'public': True, 'created_at': '2018-12-14T01:51:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752196298', 'type': 'WatchEvent', 'actor': {'id': 863281, 'login': 'zouguangxian', 'display_login': 'zouguangxian', 'gravatar_id': '', 'url': 'https://api.github.com/users/zouguangxian', 'avatar_url': 'https://avatars.githubusercontent.com/u/863281?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T01:44:59Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752181948', 'type': 'IssuesEvent', 'actor': {'id': 32337870, 'login': 'landedexperts', 'display_login': 'landedexperts', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'avatar_url': 'https://avatars.githubusercontent.com/u/32337870?'}, 'repo': {'id': 55413578, 'name': 'ethereum/solc-js', 'url': 'https://api.github.com/repos/ethereum/solc-js'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solc-js/issues/322', 'repository_url': 'https://api.github.com/repos/ethereum/solc-js', 'labels_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/comments', 'events_url': 'https://api.github.com/repos/ethereum/solc-js/issues/322/events', 'html_url': 'https://github.com/ethereum/solc-js/issues/322', 'id': 390931434, 'node_id': 'MDU6SXNzdWUzOTA5MzE0MzQ=', 'number': 322, 'title': 'Which pragma version for compiler 0.5.1+commit.c8a2cb62.Emscripten.clang', 'user': {'login': 'landedexperts', 'id': 32337870, 'node_id': 'MDQ6VXNlcjMyMzM3ODcw', 'avatar_url': 'https://avatars1.githubusercontent.com/u/32337870?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/landedexperts', 'html_url': 'https://github.com/landedexperts', 'followers_url': 'https://api.github.com/users/landedexperts/followers', 'following_url': 'https://api.github.com/users/landedexperts/following{/other_user}', 'gists_url': 'https://api.github.com/users/landedexperts/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/landedexperts/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/landedexperts/subscriptions', 'organizations_url': 'https://api.github.com/users/landedexperts/orgs', 'repos_url': 'https://api.github.com/users/landedexperts/repos', 'events_url': 'https://api.github.com/users/landedexperts/events{/privacy}', 'received_events_url': 'https://api.github.com/users/landedexperts/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:40:20Z', 'updated_at': '2018-12-14T01:40:20Z', 'closed_at': None, 'author_association': 'NONE', 'body': 'Hi,\\r\\n\\r\\nI am trying to compile the following SC:\\r\\n`pragma solidity ^0.5.1\\r\\n\\r\\ncontract x {\\r\\n\\tfunction f() {}\\r\\n};\\r\\n`\\r\\nin JavaScript using the following code:\\r\\n`const fs = require(\"fs\")\\r\\nconst solc = require(\"solc\")\\r\\n\\r\\nconst source = fs.readFileSync(\\'contract.sol\\', \"utf8\")\\r\\n\\r\\nconsole.log(source)\\r\\n\\r\\nconst compiled = solc.compile(JSON.stringify({\\r\\n\\tlanguage: \"Solidity\",\\r\\n\\tsources: {\\r\\n\\t\\t\"contract.sol\": {\\r\\n\\t\\t\\t\"content\": source\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\tsettings: {\\r\\n\\t\\toutputSelection: {\\r\\n\\t\\t\\t\"*\": {\\r\\n\\t\\t\\t\\t\"*\": [\"*\"]\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}))\\r\\n\\r\\nconsole.log(JSON.stringify(compiled))`\\r\\nin `package.json`, the versioning is `\"solc\": \"^0.5.0\"`, but I get the following error:\\r\\n`\"{\\\\\"contracts\\\\\":{},\\\\\"errors\\\\\":[{\\\\\"component\\\\\":\\\\\"general\\\\\",\\\\\"formattedMessage\\\\\":\\\\\"contract.sol:1:1: SyntaxError: Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\\\\npragma solidity ^0.5.1\\\\\\\\r\\\\\\\\n^ (Relevant source part starts here and spans across multiple\\r\\nlines).\\\\\\\\n\\\\\",\\\\\"message\\\\\":\\\\\"Source file requires different compiler version (current compiler is 0.5.1+commit.c8a2cb62.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version\\\\\",\\\\\"severity\\\\\":\\\\\"error\\\\\",\\\\\"sourceLocation\\\\\":{\\\\\"end\\\\\":60,\\\\\"file\\\\\":\\\\\"contract.sol\\\\\",\\\\\"start\\\\\":0},\\\\\"type\\\\\":\\\\\"SyntaxError\\\\\"}],\\\\\"sources\\\\\":{}}\"`\\r\\n\\r\\nSo I tried each `<=`, `<`, `>`, `>=` combined with each `0.5.1` and `0.5.0` but the same error shows up.\\r\\n\\r\\nSo which pragma version to use?\\r\\nMy guess is that the error comes from somewhere else, but I have no clue where.\\r\\nCan you help?\\r\\n'}}, 'public': True, 'created_at': '2018-12-14T01:40:20Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752164638', 'type': 'PullRequestEvent', 'actor': {'id': 807580, 'login': 'SamuelMarks', 'display_login': 'SamuelMarks', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'avatar_url': 'https://avatars.githubusercontent.com/u/807580?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'opened', 'number': 18308, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308', 'id': 238585621, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTg1NjIx', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18308', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18308.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18308.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308', 'number': 18308, 'state': 'open', 'locked': False, 'title': 'travis, appveyor: bump to Go 1.11.3', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'body': 'No release notes yet! - https://golang.org/doc/devel/release.html', 'created_at': '2018-12-14T01:35:03Z', 'updated_at': '2018-12-14T01:35:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'head': {'label': 'SamuelMarks:go-1.11.3', 'ref': 'go-1.11.3', 'sha': 'c0e51a731fee6f6b08a0e6ab60e95cad654cc436', 'user': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 146245869, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDYyNDU4Njk=', 'name': 'go-ethereum', 'full_name': 'SamuelMarks/go-ethereum', 'private': False, 'owner': {'login': 'SamuelMarks', 'id': 807580, 'node_id': 'MDQ6VXNlcjgwNzU4MA==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/807580?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SamuelMarks', 'html_url': 'https://github.com/SamuelMarks', 'followers_url': 'https://api.github.com/users/SamuelMarks/followers', 'following_url': 'https://api.github.com/users/SamuelMarks/following{/other_user}', 'gists_url': 'https://api.github.com/users/SamuelMarks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SamuelMarks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SamuelMarks/subscriptions', 'organizations_url': 'https://api.github.com/users/SamuelMarks/orgs', 'repos_url': 'https://api.github.com/users/SamuelMarks/repos', 'events_url': 'https://api.github.com/users/SamuelMarks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SamuelMarks/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/SamuelMarks/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/SamuelMarks/go-ethereum', 'forks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/SamuelMarks/go-ethereum/deployments', 'created_at': '2018-08-27T04:12:20Z', 'updated_at': '2018-12-14T01:29:02Z', 'pushed_at': '2018-12-14T01:34:35Z', 'git_url': 'git://github.com/SamuelMarks/go-ethereum.git', 'ssh_url': 'git@github.com:SamuelMarks/go-ethereum.git', 'clone_url': 'https://github.com/SamuelMarks/go-ethereum.git', 'svn_url': 'https://github.com/SamuelMarks/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107276, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Go', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e79821cabeda5c6907f03073d11fe6d83367f494', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 859, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 859, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18308'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18308/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18308/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/c0e51a731fee6f6b08a0e6ab60e95cad654cc436'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 3}}, 'public': True, 'created_at': '2018-12-14T01:35:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752124781', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007', 'pull_request_review_id': 184938979, 'id': 241619007, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxOTAwNw==', 'diff_hunk': '@@ -751,6 +759,9 @@ func (p *Pss) enqueue(msg *PssMsg) error {\\n //\\n // Will fail if raw messages are disallowed\\n func (p *Pss) SendRaw(address PssAddress, topic Topic, msg []byte) error {\\n+\\tif !checkAddress(address) {\\n+\\t\\treturn errors.New(\"invalid address\")', 'path': 'swarm/pss/pss.go', 'position': 158, 'original_position': 158, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'll handle exported errors in separate PR\", 'created_at': '2018-12-14T01:23:16Z', 'updated_at': '2018-12-14T01:23:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241619007'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241619007'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241615168}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:23:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:23:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752123721', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 9886925, 'login': 'nolash', 'display_login': 'nolash', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'avatar_url': 'https://avatars.githubusercontent.com/u/9886925?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962', 'pull_request_review_id': 184938921, 'id': 241618962, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODk2Mg==', 'diff_hunk': '@@ -30,6 +30,7 @@ import (\\n // asymmetrical key exchange between two directly connected peers\\n // full address, partial address (8 bytes) and empty address\\n func TestHandshake(t *testing.T) {\\n+\\tt.Skip(\"handshakes are not adapted to current pss core code\")', 'path': 'swarm/pss/handshake_test.go', 'position': 4, 'original_position': 4, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Actually I'm tempted to just throw the whole thing out...\", 'created_at': '2018-12-14T01:22:55Z', 'updated_at': '2018-12-14T01:22:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241618962'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241618962'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241614493}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:22:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:22:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752112582', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521', 'pull_request_review_id': 184938419, 'id': 241618521, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODUyMQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:', 'path': 'trinity/sync/common/headers.py', 'position': 528, 'original_position': 528, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Do you think we're still going the `black` route in the next few months? If so:\\r\\n\\r\\n1. I assume `black` will try to get as much as possible on one line\\r\\n2. Whatever we do now will be overwritten soon-ish\\r\\n\\r\\nI should really add something of significance to eth-utils to see how much it annoys me and if I want to object to using it. :smile: \", 'created_at': '2018-12-14T01:19:40Z', 'updated_at': '2018-12-14T01:19:40Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618521'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618521'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240770066}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:19:40Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:19:40Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752106571', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271', 'pull_request_review_id': 184938116, 'id': 241618271, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxODI3MQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()', 'path': 'trinity/sync/common/headers.py', 'position': 497, 'original_position': 497, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1601 ', 'created_at': '2018-12-14T01:17:47Z', 'updated_at': '2018-12-14T01:17:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241618271'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241618271'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240769529}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:17:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:17:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752103378', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1601/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1601', 'id': 390926787, 'node_id': 'MDU6SXNzdWUzOTA5MjY3ODc=', 'number': 1601, 'title': 'convert subscription_msg_types to frozenset', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T01:16:50Z', 'updated_at': '2018-12-14T01:16:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'Inspired by:\\r\\n\\r\\n> should probably be written as a property method since `set()` is a mutable data type.\\r\\n\\r\\n_Originally posted by @pipermerriam in https://github.com/_render_node/MDE3OlB1bGxSZXF1ZXN0UmV2aWV3MTgzODY1NTEz/pull_request_reviews/more_threads_\\r\\n\\r\\nThere are quite a few places in the code where we use a set to define the message types. Making it immutable is fairly reasonable and `frozenset` seems like the obvious choice. So convert the type definitions and the values everywhere from `set` to `frozenset`.'}}, 'public': True, 'created_at': '2018-12-14T01:16:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752093866', 'type': 'IssueCommentEvent', 'actor': {'id': 19257612, 'login': 'pakaplace', 'display_login': 'pakaplace', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'avatar_url': 'https://avatars.githubusercontent.com/u/19257612?'}, 'repo': {'id': 44971752, 'name': 'ethereum/EIPs', 'url': 'https://api.github.com/repos/ethereum/EIPs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'repository_url': 'https://api.github.com/repos/ethereum/EIPs', 'labels_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/comments', 'events_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594/events', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594', 'id': 382147100, 'node_id': 'MDU6SXNzdWUzODIxNDcxMDA=', 'number': 1594, 'title': 'ERC 1594: Core Security Token Standard', 'user': {'login': 'adamdossa', 'id': 2633913, 'node_id': 'MDQ6VXNlcjI2MzM5MTM=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2633913?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/adamdossa', 'html_url': 'https://github.com/adamdossa', 'followers_url': 'https://api.github.com/users/adamdossa/followers', 'following_url': 'https://api.github.com/users/adamdossa/following{/other_user}', 'gists_url': 'https://api.github.com/users/adamdossa/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/adamdossa/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/adamdossa/subscriptions', 'organizations_url': 'https://api.github.com/users/adamdossa/orgs', 'repos_url': 'https://api.github.com/users/adamdossa/repos', 'events_url': 'https://api.github.com/users/adamdossa/events{/privacy}', 'received_events_url': 'https://api.github.com/users/adamdossa/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-11-19T10:24:10Z', 'updated_at': '2018-12-14T01:13:56Z', 'closed_at': None, 'author_association': 'NONE', 'body': \"---\\r\\n\\r\\neip: ERC-1594\\r\\ntitle: Core Security Token Standard (part of the ERC-1400 Security Token Standards)\\r\\nauthor: Adam Dossa (@adamdossa), Pablo Ruiz (@pabloruiz55), Fabian Vogelsteller (@frozeman), Stephane Gosselin (@thegostep)\\r\\ndiscussions-to: #1411\\r\\nstatus: Draft\\r\\ntype: Standards Track\\r\\ncategory: ERC\\r\\ncreated: 2018-09-09\\r\\nrequire: ERC-20 (#20), ERC-1066 (#1066)\\r\\n\\r\\n---\\r\\n\\r\\n## Simple Summary\\r\\n\\r\\nThis standard sits under the ERC-1400 (#1411) umbrella set of standards related to security tokens.\\r\\n\\r\\nProvides a standard to support off-chain injection of data into transfers / issuance / redemption and the ability to check the validity of a transfer distinct from it's execution.\\r\\n\\r\\n## Abstract\\r\\n\\r\\nIncorporates error signalling, off-chain data injection and issuance / redemption semantics.\\r\\n\\r\\nThis standard inherits from ERC-20 (#20) and could be easily extended to meet the ERC-777 (#777) standard if needed.\\r\\n\\r\\n## Motivation\\r\\n\\r\\nAccelerate the issuance and management of securities on the Ethereum blockchain by specifying a standard interface through which security tokens can be operated on and interrogated by all relevant parties.\\r\\n\\r\\nSecurity tokens differ materially from other token use-cases, with more complex interactions between off-chain and on-chain actors, and considerable regulatory scrutiny.\\r\\n\\r\\nThe ability to provide data (e.g. signed authorisation) alongside transfer, issuance and redemption functions allows security tokens to more flexibly implement transfer restrictions without depending on on-chain whitelists exclusively.\\r\\n\\r\\nUsing ERC-1066 (#1066) to provide reason codes as to why a transfer would fail, without requiring a user to actually try and execute a transfer, allows for improved UX and potentially saves gas on what would otherwise be failed transfers.\\r\\n\\r\\nFormalising issuance and redemption semantics (similar to minting / burning) provides visibility into the total supply of the token and how it has changed over time.\\r\\n\\r\\n## Requirements\\r\\n\\r\\nSee ERC-1400 (#1411) for a full set of requirements across the library of standards.\\r\\n\\r\\nThe following requirements have been compiled following discussions with parties across the Security Token ecosystem.\\r\\n\\r\\n- MUST have a standard interface to query if a transfer would be successful and return a reason for failure.\\r\\n- MUST emit standard events for issuance and redemption.\\r\\n- MAY require signed data to be passed into a transfer transaction in order to validate it on-chain.\\r\\n- SHOULD NOT restrict the range of asset classes across jurisdictions which can be represented.\\r\\n- MUST be ERC-20 (#20) compatible.\\r\\n- COULD be ERC-777 (#777) compatible.\\r\\n\\r\\n## Rationale\\r\\n\\r\\n### Transfer Restrictions\\r\\n\\r\\nTransfers of securities can fail for a variety of reasons in contrast to utility tokens which generally only require the sender to have a sufficient balance.\\r\\n\\r\\nThese conditions could be related to metadata of the securities being transferred (i.e. whether they are subject to a lock-up period), the identity of the sender and receiver of the securities (i.e. whether they have been through a KYC process, whether they are accredited or an affiliate of the issuer) or for reasons unrelated to the specific transfer but instead set at the token level (i.e. the token contract enforces a maximum number of investors or a cap on the percentage held by any single investor).\\r\\n\\r\\nFor ERC-20 / ERC-777 tokens, the `balanceOf` and `allowance` functions provide a way to check that a transfer is likely to succeed before executing the transfer, which can be executed both on and off-chain.\\r\\n\\r\\nFor tokens representing securities the standard introduces a function `canTransfer` which provides a more general purpose way to achieve this when the reasons for failure are more complex; and a function of the whole transfer (i.e. includes any data sent with the transfer and the receiver of the securities).\\r\\n\\r\\nIn order to support off-chain data inputs to transfer functions, transfer functions are extended to `transferWithData` / `transferFromWithData` which can optionally take an additional `bytes _data` parameter.\\r\\n\\r\\nIn order to provide a richer result than just true or false, a byte return code is returned. This allows us to give a reason for why the transfer failed, or at least which category of reason the failure was in. The ability to query documents and the expected success of a transfer is included in Security Token section.\\r\\n\\r\\n## Specification\\r\\n\\r\\n### Restricted Transfers\\r\\n\\r\\n#### canTransfer / canTransferFrom\\r\\n\\r\\nTransfers of securities may fail for a number of reasons, for example relating to:\\r\\n - the identity of the sender or receiver of the tokens\\r\\n - limits placed on the specific tokens being transferred (i.e. lockups on certain quantities of token)\\r\\n - limits related to the overall state of the token (i.e. total number of investors)\\r\\n\\r\\nThe standard provides an on-chain function to determine whether a transfer will succeed, and return details indicating the reason if the transfer is not valid.\\r\\n\\r\\nThese rules can either be defined using smart contracts and on-chain data, or rely on `_data` passed as part of the `transferWithData` function which could represent authorisation for the transfer (e.g. a signed message by a transfer agent attesting to the validity of this specific transfer).\\r\\n\\r\\nThe function will return both a ESC (Ethereum Status Code) following the EIP-1066 standard, and an additional `bytes32` parameter that can be used to define application specific reason codes with additional details (for example the transfer restriction rule responsible for making the transfer operation invalid).\\r\\n\\r\\nIf `bytes _data` is empty, then this corresponds to a check on whether a `transfer` (or `transferFrom`) request will succeed, if `bytes _data` is populated, then this corresponds to a check on `transferWithData` (or `transferFromWithData`) will succeed.\\r\\n\\r\\n`canTransfer` assumes the sender of tokens is `msg.sender` and will be executed via `transfer` or `transferWithData` whereas `canTransferFrom` allows the specification of the sender of tokens and that the transfer will be executed via `transferFrom` or `transferFromWithData`.\\r\\n\\r\\n``` solidity\\r\\nfunction canTransfer(address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\nfunction canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (byte, bytes32);\\r\\n```\\r\\n\\r\\n#### transferWithData\\r\\n\\r\\nTransfer restrictions can take many forms and typically involve on-chain rules or whitelists. However for many types of approved transfers, maintaining an on-chain list of approved transfers can be cumbersome and expensive. An alternative is the co-signing approach, where in addition to the token holder approving a token transfer, and authorised entity provides signed data which further validates the transfer.\\r\\n\\r\\nThe `bytes _data` allows arbitrary data to be submitted alongside the transfer, for the token contract to interpret or record. This could be signed data authorising the transfer (e.g. a dynamic whitelist) but is flexible enough to accomadate other use-cases.\\r\\n\\r\\n`transferWithData` MUST emit a `Transfer` event with details of the transfer.\\r\\n\\r\\n``` solidity\\r\\nfunction transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### transferFromWithData\\r\\n\\r\\nThis is the analogy to the `transferWithData` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\n``` solidity\\r\\nfunction transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Issuance\\r\\n\\r\\n#### isIssuable\\r\\n\\r\\nA security token issuer can specify that issuance has finished for the token (i.e. no new tokens can be minted or issued).\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST always return FALSE in the future.\\r\\n\\r\\nIf a token returns FALSE for `isIssuable()` then it MUST never allow additional tokens to be issued.\\r\\n\\r\\n``` solidity\\r\\nfunction isIssuable() external view returns (bool);\\r\\n```\\r\\n\\r\\n#### issue\\r\\n\\r\\nThis function must be called to increase the total supply.\\r\\n\\r\\nThe `bytes _data` parameter can be used to inject off-chain data (e.g. signed data) to authorise or authenticate the issuance and receiver of issued tokens.\\r\\n\\r\\nWhen called, this function MUST emit the `Issued` event.\\r\\n\\r\\n``` solidity\\r\\nfunction issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n### Token Redemption\\r\\n\\r\\n#### redeem\\r\\n\\r\\nAllows a token holder to redeem tokens.\\r\\n\\r\\nThe redeemed tokens must be subtracted from the total supply and the balance of the token holder. The token redemption should act like sending tokens and be subject to the same conditions.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\nAs with `transferWithData` this function has a `bytes _data` parameter that can be used in the token contract to authenticate the redemption.\\r\\n\\r\\n``` solidity\\r\\nfunction redeem(uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n#### redeemFrom\\r\\n\\r\\nThis is the analogy to the `redeem` function.\\r\\n\\r\\n`msg.sender` MUST have a sufficient `allowance` set and this `allowance` must be debited by the `_value`.\\r\\n\\r\\nThe `Redeemed` event MUST be emitted every time this function is called.\\r\\n\\r\\n``` solidity\\r\\nfunction redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n```\\r\\n\\r\\n## Interface\\r\\n\\r\\n``` solidity\\r\\n/// @title IERC1594 Security Token Standard\\r\\n/// @dev See https://github.com/SecurityTokenStandard/EIP-Spec\\r\\n\\r\\ninterface IERC1594 is IERC20 {\\r\\n\\r\\n // Transfers\\r\\n function transferWithData(address _to, uint256 _value, bytes _data) external;\\r\\n function transferFromWithData(address _from, address _to, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Issuance\\r\\n function isIssuable() external view returns (bool);\\r\\n function issue(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Token Redemption\\r\\n function redeem(uint256 _value, bytes _data) external;\\r\\n function redeemFrom(address _tokenHolder, uint256 _value, bytes _data) external;\\r\\n\\r\\n // Transfer Validity\\r\\n function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n function canTransferFrom(address _from, address _to, uint256 _value, bytes _data) external view returns (bool, byte, bytes32);\\r\\n\\r\\n // Issuance / Redemption Events\\r\\n event Issued(address indexed _operator, address indexed _to, uint256 _value, bytes _data);\\r\\n event Redeemed(address indexed _operator, address indexed _from, uint256 _value, bytes _data);\\r\\n\\r\\n}\\r\\n```\\r\\n\\r\\n## References\\r\\n- [EIP 1400: Security Token Standard With Partitions](https://github.com/ethereum/EIPs/issues/1411)\\r\\n- [EIP Draft](https://github.com/SecurityTokenStandard/EIP-Spec)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/EIPs/issues/comments/447178846', 'html_url': 'https://github.com/ethereum/EIPs/issues/1594#issuecomment-447178846', 'issue_url': 'https://api.github.com/repos/ethereum/EIPs/issues/1594', 'id': 447178846, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3ODg0Ng==', 'user': {'login': 'pakaplace', 'id': 19257612, 'node_id': 'MDQ6VXNlcjE5MjU3NjEy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/19257612?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pakaplace', 'html_url': 'https://github.com/pakaplace', 'followers_url': 'https://api.github.com/users/pakaplace/followers', 'following_url': 'https://api.github.com/users/pakaplace/following{/other_user}', 'gists_url': 'https://api.github.com/users/pakaplace/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pakaplace/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pakaplace/subscriptions', 'organizations_url': 'https://api.github.com/users/pakaplace/orgs', 'repos_url': 'https://api.github.com/users/pakaplace/repos', 'events_url': 'https://api.github.com/users/pakaplace/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pakaplace/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T01:13:56Z', 'updated_at': '2018-12-14T01:13:56Z', 'author_association': 'NONE', 'body': 'Great work @adamdossa . We\\'re pretty in line with this design at Meridio, and the community\\'s decomposition of 1400. A few comments around issuance/redemption as part of the standard:\\r\\n* If issuance/redemption is part of the required interface and `isIssuable()` is defined, then shouldn\\'t a`finishIssuance()` function be included in the standard? Even if you deem its inclusion out of the scope of an interface, I think it would help explain a non-intuitive concept for readers of the standard. \\r\\n* Curious to hear why \"issue\" and \"redeem\" were chosen terminology given the prominence of \"mint\" and \"burn.\" I understand it may be more in line with industry terminology, but on the other hand I would argue \"redemption\" does not imply convey burn/destroy-tokens functionality at first glance. \\r\\n* I\\'m still hesitant to vie for 1066 status codes in a core standard given their WIP status. Including a `Bool` as the first returned variable of `canTransfer()` would be much easier to implement and adopt, and it would still allow people to query transfer success. With a `bool` as a first parameter, you could still allow for optional 1066 and application specific status codes. Dependency on 1066 comes with an uncertain ETA for completion, and security token projects are going to market **soon**.\\r\\n \\r\\ni.e. ```function canTransfer(address _to, uint256 _value, bytes _data) external view returns (bool success, byte statusCode, bytes32 reason);```\\r\\n\\r\\n\\r\\nA peer at Meridio (Asha Dakshi) pointed out that from an audit perspective, `controllerTransfer` might be preferable for fund recovery, since events could be emitted on `controllerTransfer` would show matching debits/credits and sender/recipient. Not sure if `controllerTransfer()` should necessarily be part of the base standard, but I guess the same could be argued for issuance/redemption. In either case, I\\'m okay with this being in the standard. The implementation decision should probably be left to the issuer and regulator. @0age interested to hear your thoughts on this. '}}, 'public': True, 'created_at': '2018-12-14T01:13:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752079953', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077', 'pull_request_review_id': 184936758, 'id': 241617077, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNzA3Nw==', 'diff_hunk': '@@ -0,0 +1,67 @@\\n+from asyncio import (\\n+ PriorityQueue,\\n+)\\n+from typing import (\\n+ Generic,\\n+ Type,\\n+ TypeVar,\\n+)\\n+\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+\\n+from p2p.protocol import Command\\n+\\n+from trinity.protocol.common.peer import BaseChainPeer\\n+from trinity.utils.datastructures import (\\n+ SortableTask,\\n+)\\n+\\n+TChainPeer = TypeVar(\\'TChainPeer\\', bound=BaseChainPeer)\\n+\\n+\\n+class WaitingPeers(Generic[TChainPeer]):\\n+ \"\"\"\\n+ Peers waiting to perform some action. When getting a peer from this queue,\\n+ prefer the peer with the best throughput for the given command.\\n+ \"\"\"\\n+ _waiting_peers: \\'PriorityQueue[SortableTask[TChainPeer]]\\'\\n+\\n+ def __init__(self, response_command_type: Type[Command]) -> None:\\n+ self._waiting_peers = PriorityQueue()\\n+ self._response_command_type = response_command_type\\n+ self._peer_wrapper = SortableTask.orderable_by_func(self._ranked_peer)\\n+\\n+ def _ranked_peer(self, peer: TChainPeer) -> float:\\n+ relevant_throughputs = [\\n+ exchange.tracker.items_per_second_ema.value\\n+ for exchange in peer.requests\\n+ if issubclass(exchange.response_cmd_type, self._response_command_type)\\n+ ]\\n+\\n+ if len(relevant_throughputs) == 0:\\n+ raise ValidationError(\\n+ f\"Could not find any exchanges on {peer} \"\\n+ f\"with response {self._response_command_type!r}\"\\n+ )\\n+\\n+ avg_throughput = sum(relevant_throughputs) / len(relevant_throughputs)', 'path': 'trinity/sync/common/peers.py', 'position': 49, 'original_position': 49, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Right, and other than `mypy` complaining, `response_command_type` could theoretically be a tuple if you really wanted to average throughput across a couple different commands.', 'created_at': '2018-12-14T01:09:56Z', 'updated_at': '2018-12-14T01:09:56Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241617077'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241617077'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240776544}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:09:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:09:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752074277', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819', 'pull_request_review_id': 184936426, 'id': 241616819, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjgxOQ==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))\\n+ previous_tail_header = launch_headers[-1]\\n+ start_num = BlockNumber(previous_tail_header.block_number + self._skip_length)\\n+\\n+ while self.is_operational:\\n+ # get parents\\n+ parents = await self._fetch_headers_from(peer, start_num)\\n+ if not parents:\\n+ break\\n+\\n+ # get children\\n+ children = await self._fetch_headers_from(peer, BlockNumber(start_num + 1))\\n+ if not children:\\n+ break\\n+\\n+ # validate that parents and children match\\n+ pairs = tuple(zip(parents, children))\\n+ try:\\n+ for parent, child in pairs:\\n+ await self._chain.coro_validate_chain(parent, (child, ))\\n+ except ValidationError as e:\\n+ self.logger.warn(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ raise\\n+\\n+ # select and validate a single random gap, to test that skeleton peer has meat headers\\n+ if len(pairs) >= 2:\\n+ segments = await self._fill_in_a_gap(peer, pairs)\\n+ if len(segments) == 0:\\n+ raise ValidationError(\\n+ \"Unexpected - filling in gap silently returned no headers\"\\n+ )\\n+ else:\\n+ segments = pairs\\n+\\n+ previous_lead_header = segments[0][0]\\n+ previous_tail_header = segments[-1][-1]\\n+ self.logger.debug(\\n+ \"Got new header bones from %s: %s-%s\",\\n+ peer,\\n+ previous_lead_header,\\n+ previous_tail_header,\\n+ )\\n+ # load all headers, pausing when buffer is full\\n+ for segment in segments:\\n+ if len(segment) > 0:\\n+ await self.wait(self._fetched_headers.put(segment))\\n+ else:\\n+ raise ValidationError(f\"Found empty header segment in {segments}\")\\n+\\n+ # prepare for the next request\\n+ start_num = previous_tail_header.block_number + self._skip_length - 1\\n+\\n+ await self._get_final_headers(peer, previous_tail_header)\\n+\\n+ async def _get_final_headers(self, peer: TChainPeer, previous_tail_header: BlockHeader) -> None:\\n+ while self.is_operational:\\n+ final_headers = await self._fetch_headers_from(\\n+ peer,\\n+ previous_tail_header.block_number + 1,\\n+ skip=0,\\n+ )\\n+ if len(final_headers) == 0:\\n+ break\\n+\\n+ await self._chain.coro_validate_chain(previous_tail_header, final_headers)\\n+ await self.wait(self._fetched_headers.put(final_headers))\\n+ previous_tail_header = final_headers[-1]\\n+\\n+ async def _find_newest_matching_skeleton_header(self, peer: TChainPeer) -> BlockHeader:\\n+ start_num = await self._get_starting_block_num()\\n+ # after returning this header, we request the next gap, and prefer that one header\\n+ # is new to us, which may be the next header in this mini-skeleton. (hence the -1 below)\\n+ skip = MAX_HEADERS_FETCH - 1\\n+ skeleton_launch_headers = await self._fetch_headers_from(peer, start_num, skip=skip)\\n+\\n+ if len(skeleton_launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common skeleton ancestors\")\\n+\\n+ # check the first returned value\\n+ first = skeleton_launch_headers[0]\\n+ if first.is_genesis:\\n+ # make sure we have the same genesis\\n+ try:\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(f\"{peer} returned a different genesis header: {first}\")\\n+ else:\\n+ try:\\n+ # make sure that the earliest ancestor has a parent in our db\\n+ await self.wait(\\n+ self._db.coro_get_block_header_by_hash(first.parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ await self._log_ancester_failure(peer, first)\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, parent of {first} missing.\"\\n+ ) from exc\\n+\\n+ first_is_present = await self.wait(self._db.coro_header_exists(first.hash))\\n+\\n+ if not first_is_present:\\n+ raise ValidationError(\\n+ f\"No common ancestor with {peer}, who started with {first}\"\\n+ )\\n+ elif len(skeleton_launch_headers) == 1:\\n+ return skeleton_launch_headers[0]\\n+ else:\\n+ for parent, child in sliding_window(2, skeleton_launch_headers):\\n+ is_present = await self.wait(self._db.coro_header_exists(child.hash))\\n+ if not is_present:\\n+ return parent\\n+ else:\\n+ # All headers are present, probably the canonical head updated recently\\n+ # Return the newest one\\n+ return skeleton_launch_headers[-1]\\n+\\n+ async def _find_launch_headers(self, peer: TChainPeer) -> Tuple[BlockHeader, ...]:\\n+ \"\"\"\\n+ When getting started with a peer, find exactly where the headers start differing from the\\n+ current database of headers by requesting contiguous headers from peer. Return the first\\n+ headers returned that are missing from the local db.\\n+\\n+ It is possible that it will be unreasonable to find the exact starting header. For example,\\n+ the canonical head may update while waiting for a response from the skeleton peer. In\\n+ that case, return a *stale* header that we already know about, and there will be some\\n+ duplicate header downloads.\\n+ \"\"\"\\n+ newest_matching_header = await self._find_newest_matching_skeleton_header(peer)\\n+\\n+ # This next gap will have at least one header that\\'s new to us, because it overlaps\\n+ # with the skeleton header that is next in the previous skeleton request, and\\n+ # we chose the starting skeleton header so it goes past our canonical head\\n+ start_num = newest_matching_header.block_number + 1\\n+ launch_headers = await self._fetch_headers_from(peer, start_num, skip=0)\\n+\\n+ if len(launch_headers) == 0:\\n+ raise ValidationError(f\"{peer} gave 0 headers when seeking common meat ancestor\")\\n+\\n+ # identify headers that are not already stored locally\\n+ new_headers = tuple(\\n+ # The inner list comprehension is needed because async_generators\\n+ # cannot be cast to a tuple.\\n+ [header async for header in self.wait_iter(self._get_missing_tail(launch_headers))]\\n+ )\\n+ if len(new_headers) == 0:\\n+ self.logger.debug(\\n+ \"Canonical head updated while finding new head from %s, returning old %s instead\",\\n+ peer,\\n+ launch_headers[-1],\\n+ )\\n+ return (launch_headers[-1], )\\n+ else:\\n+ try:\\n+ launch_parent = await self.wait(\\n+ self._db.coro_get_block_header_by_hash(new_headers[0].parent_hash)\\n+ )\\n+ except HeaderNotFound as exc:\\n+ raise ValidationError(\\n+ f\"First header {new_headers[0]} did not have parent in DB\"\\n+ ) from exc\\n+\\n+ # validate new headers against the parent in the database\\n+ await self.wait(self._chain.coro_validate_chain(launch_parent, new_headers))\\n+ return new_headers\\n+\\n+ async def _fill_in_a_gap(\\n+ self,\\n+ peer: TChainPeer,\\n+ pairs: Tuple[Tuple[BlockHeader, ...], ...]) -> Tuple[Tuple[BlockHeader, ...], ...]:\\n+ \"\"\"\\n+ Choose a random gap in the middle of the pairs to fill in using peer. Validate it against\\n+ the surrounding headers.\\n+ :param peer: to make the request to\\n+ :param pairs: header pairs with gaps in between\\n+ :return: segments just like the pairs input, but with one long segment that was filled in\\n+\\n+ For example, if four pairs were input, and the middle gap was chosen to fill in, then the\\n+ returned value would have three segments, like:\\n+\\n+ ::\\n+\\n+ (segment 1: parent, child)\\n+ --gap--\\n+ (segment 2: parent, child, ... all headers between ... parent, child)\\n+ --gap--\\n+ (segment 3: parent, child)\\n+ \"\"\"\\n+ # choose a random gap to fill\\n+ gap_idx = randrange(0, len(pairs) - 1)\\n+ # find the headers just before and after the gap\\n+ gap_parent = pairs[gap_idx][-1]\\n+ gap_child = pairs[gap_idx + 1][0]\\n+ # request the gap\\'s headers from the skeleton peer\\n+ start_num = gap_parent.block_number + 1\\n+ max_headers = gap_child.block_number - gap_parent.block_number - 1\\n+ gap_headers = await self._fetch_headers_from(peer, start_num, max_headers, skip=0)\\n+\\n+ if len(gap_headers) == 0:\\n+ self.logger.warning(\\n+ \"Skeleton %s could not fill header gap with headers at %s\",\\n+ peer,\\n+ start_num,\\n+ )\\n+ raise ValidationError(f\"Skeleton {peer} could not return headers at {start_num}\")\\n+\\n+ # validate the filled headers\\n+ filled_gap_children = tuple(concatv(gap_headers, pairs[gap_idx + 1]))\\n+ try:\\n+ await self._chain.coro_validate_chain(gap_parent, filled_gap_children)\\n+ except ValidationError:\\n+ self.logger.warning(\\n+ \"%s returned an invalid gap for index %s, with pairs %s, filler %s\",\\n+ peer,\\n+ gap_idx,\\n+ pairs,\\n+ gap_headers,\\n+ )\\n+ raise\\n+ else:\\n+ return tuple(concatv(\\n+ # include all the leading pairs, through the pair that marks the start of the gap\\n+ pairs[:gap_idx + 1],\\n+ # include the gap that has been filled in, which includes the pair after the gap\\n+ # must convert to tuple of tuple of headers to match the other types\\n+ (filled_gap_children, ),\\n+ # skip the pair following the gap, include all the following pairs\\n+ pairs[gap_idx + 2:],\\n+ ))\\n+\\n+ async def _get_starting_block_num(self) -> BlockNumber:\\n+ head = await self.wait(self._db.coro_get_canonical_head())\\n+\\n+ # When we start the sync with a peer, we always request up to MAX_REORG_DEPTH extra\\n+ # headers before our current head\\'s number, in case there were chain reorgs since the last\\n+ # time _sync() was called. All of the extra headers that are already present in our DB\\n+ # will be discarded so we don\\'t unnecessarily process them again.\\n+ return max(GENESIS_BLOCK_NUMBER, head.block_number - self.max_reorg_depth)\\n+\\n+ async def _fetch_headers_from(\\n+ self,\\n+ peer: TChainPeer,\\n+ start_at: BlockNumber,\\n+ max_headers: int = None,\\n+ skip: int = None) -> Tuple[BlockHeader, ...]:\\n+\\n+ if not peer.is_operational:\\n+ self.logger.info(\"%s disconnected while fetching headers\", peer)\\n+ return tuple()\\n+\\n+ if skip is not None:\\n+ derived_skip = skip\\n+ else:\\n+ derived_skip = self._skip_length\\n+\\n+ if max_headers is None:\\n+ header_limit = peer.max_headers_fetch\\n+ else:\\n+ header_limit = min(max_headers, peer.max_headers_fetch)\\n+\\n+ try:\\n+ self.logger.debug(\"Requsting chain of headers from %s starting at #%d\", peer, start_at)\\n+\\n+ headers = await self.wait(peer.requests.get_block_headers(\\n+ start_at,\\n+ header_limit,\\n+ derived_skip,\\n+ reverse=False,\\n+ ))\\n+\\n+ self.logger.debug2(\\'sync received new headers\\', headers)\\n+ except OperationCancelled:\\n+ self.logger.info(\"Skeleteon sync with %s cancelled\", peer)\\n+ return tuple()\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, aborting sync\", peer)\\n+ await peer.disconnect(DisconnectReason.timeout)\\n+ return tuple()\\n+ except ValidationError as err:\\n+ self.logger.warn(\\n+ \"Invalid header response sent by peer %s disconnecting: %s\",\\n+ peer, err,\\n+ )\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+\\n+ if not headers:\\n+ self.logger.info(\"Got no new headers from %s, exiting skeleton sync\", peer)\\n+ return tuple()\\n+ else:\\n+ return headers\\n+\\n+ async def _get_missing_tail(\\n+ self,\\n+ headers: Tuple[BlockHeader, ...]) -> AsyncIterator[BlockHeader]:\\n+ \"\"\"\\n+ We only want headers that are missing, so we iterate over the list\\n+ until we find the first missing header, after which we return all of\\n+ the remaining headers.\\n+ \"\"\"\\n+ iter_headers = iter(headers)\\n+ for header in iter_headers:\\n+ is_present = await self.wait(self._db.coro_header_exists(header.hash))\\n+ if is_present:\\n+ self.logger.debug(\"Discarding header that we already have: %s\", header)\\n+ else:\\n+ yield header\\n+ break\\n+\\n+ for header in iter_headers:\\n+ yield header\\n+\\n+ async def _log_ancester_failure(self, peer: TChainPeer, first_header: BlockHeader) -> None:\\n+ self.logger.info(\"Unable to find common ancestor betwen our chain and %s\", peer)\\n+ previous_num = first_header.block_number - 1\\n+ try:\\n+ previous = await self._db.coro_get_canonical_block_header_by_number(previous_num)\\n+ except HeaderNotFound as exc:\\n+ self.logger.debug(\"Could not find any header at #%d: %s\", previous_num, exc)\\n+ previous = None\\n+\\n+ # Header just preceeding this one may or may not be in the database. Either way log an error\\n+ self.logger.debug(\\n+ \"%s returned starting header %s, whose parent %s is not in our DB. \"\\n+ \"Instead at #%d, is header %s\",\\n+ peer,\\n+ first_header,\\n+ first_header.parent_hash,\\n+ previous_num,\\n+ previous,\\n+ )\\n+\\n+\\n+class HeaderSyncerAPI(ABC):\\n+ @abstractmethod\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ # hack to get python & mypy to recognize that this is an async generator\\n+ if False:\\n+ yield\\n+\\n+ @abstractmethod\\n+ def get_target_header_hash(self) -> Hash32:\\n+ pass\\n+\\n+\\n+class _PeerBehind(Exception):\\n+ \"\"\"\\n+ Raised when a candidate for skeleton sync has lower total difficulty than the local chain.\\n+ \"\"\"\\n+ pass\\n+\\n+\\n+HeaderStitcher = OrderedTaskPreparation[BlockHeader, Hash32, OrderedTaskPreparation.NoPrerequisites]\\n+\\n+\\n+class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):\\n+ # We are only interested in peers entering or leaving the pool\\n+ subscription_msg_types: Set[Type[Command]] = set()\\n+ msg_queue_maxsize = 2000\\n+\\n+ _filler_header_tasks: TaskQueue[Tuple[BlockHeader, int, TChainPeer]]\\n+\\n+ def __init__(\\n+ self,\\n+ chain: BaseAsyncChain,\\n+ peer_pool: BaseChainPeerPool,\\n+ stitcher: HeaderStitcher,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._stitcher = stitcher\\n+ max_pending_fillers = 50\\n+ self._filler_header_tasks = TaskQueue(\\n+ max_pending_fillers,\\n+ # order by block number of the parent header\\n+ compose(attrgetter(\\'block_number\\'), itemgetter(0)),\\n+ )\\n+\\n+ # queue up idle peers, ordered by speed that they return block bodies\\n+ self._waiting_peers: WaitingPeers[TChainPeer] = WaitingPeers(BaseBlockHeaders)\\n+ self._peer_pool = peer_pool\\n+\\n+ def register_peer(self, peer: BasePeer) -> None:\\n+ super().register_peer(peer)\\n+ # when a new peer is added to the pool, add it to the idle peer list\\n+ self._waiting_peers.put_nowait(peer) # type: ignore\\n+\\n+ async def schedule_segment(\\n+ self, parent_header: BlockHeader, gap_length: int, skeleton_peer: TChainPeer) -> None:\\n+ \"\"\"\\n+ :param parent_header: the parent of the gap to fill\\n+ :param gap_length: how long is the header gap\\n+ :param skeleton_peer: the peer that provided the parent_header - will not use to fill gaps\\n+ \"\"\"\\n+ await self.wait(self._filler_header_tasks.add((\\n+ (parent_header, gap_length, skeleton_peer),\\n+ )))\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ with self.subscribe(self._peer_pool):\\n+ await self.wait(self._match_header_dls_to_peers())\\n+\\n+ async def _display_stats(self) -> None:\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\\n+ \"(in progress, queued, max size) of header filler gaps: %r\",\\n+ [(q.num_in_progress(), len(q), q._maxsize) for q in (\\n+ self._filler_header_tasks,\\n+ )],\\n+ )\\n+\\n+ async def _match_header_dls_to_peers(self) -> None:\\n+ while self.is_operational:\\n+ batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ) = await self._filler_header_tasks.get(1)\\n+\\n+ await self._match_dl_to_peer(batch_id, parent_header, gap, skeleton_peer)\\n+\\n+ async def _match_dl_to_peer(\\n+ self,\\n+ batch_id: int,\\n+ parent_header: BlockHeader,\\n+ gap: int,\\n+ skeleton_peer: TChainPeer) -> None:\\n+ def fail_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, tuple())\\n+\\n+ peer = await self._waiting_peers.get_fastest()\\n+\\n+ def complete_task() -> None:\\n+ self._filler_header_tasks.complete(batch_id, (\\n+ (parent_header, gap, skeleton_peer),\\n+ ))\\n+ self.run_task(self._run_fetch_segment(peer, parent_header, gap, complete_task, fail_task))\\n+\\n+ async def _run_fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int,\\n+ complete_task: Callable[[], None],\\n+ fail_task: Callable[[], None]) -> None:\\n+ # If there is an exception during _fetch_segment, prepare to mark the task as finished\\n+ # with no headers collected:\\n+ completed_headers: Tuple[BlockHeader, ...] = tuple()\\n+ try:\\n+ completed_headers = await peer.wait(self._fetch_segment(peer, parent_header, length))\\n+ except BaseP2PError as exc:\\n+ self.logger.info(\"Unexpected p2p err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ except OperationCancelled:\\n+ self.logger.debug(\\n+ \"Service cancellation while fetching segment, dropping %s from queue\",\\n+ peer,\\n+ exc_info=True,\\n+ )\\n+ fail_task()\\n+ raise\\n+ except Exception as exc:\\n+ self.logger.info(\"Unexpected err while downloading headers from %s: %s\", peer, exc)\\n+ self.logger.debug(\"Problem downloading headers from peer, dropping...\", exc_info=True)\\n+ fail_task()\\n+ else:\\n+ if len(completed_headers) == length:\\n+ # peer completed successfully, so have it get back in line for processing\\n+ self._waiting_peers.put_nowait(peer)\\n+ complete_task()\\n+ else:\\n+ # peer didn\\'t return enough results, wait a while before trying again\\n+ delay = EMPTY_PEER_RESPONSE_PENALTY\\n+ self.logger.debug(\\n+ \"Pausing %s for %.1fs, for sending %d headers\",\\n+ peer,\\n+ delay,\\n+ len(completed_headers),\\n+ )\\n+ self.call_later(delay, self._waiting_peers.put_nowait, peer)\\n+ fail_task()\\n+\\n+ async def _fetch_segment(\\n+ self,\\n+ peer: TChainPeer,\\n+ parent_header: BlockHeader,\\n+ length: int) -> Tuple[BlockHeader, ...]:\\n+ if length > peer.max_headers_fetch:\\n+ raise ValidationError(\\n+ f\"Can\\'t request {length} headers, because peer maximum is {peer.max_headers_fetch}\"\\n+ )\\n+ headers = await self._request_headers(peer, parent_header.block_number + 1, length)\\n+ if not headers:\\n+ return tuple()\\n+ elif headers[0].parent_hash != parent_header.hash:\\n+ # Segment doesn\\'t match leading peer, drop this peer\\n+ # Eventually, we\\'ll do something smarter, in case the leading peer is the divergent one\\n+ self.logger.warning(\\n+ \"%s returned segment starting %s & parent %s, doesn\\'t match %s, ignoring result...\",\\n+ peer,\\n+ headers[0],\\n+ headers[0].parent_hash,\\n+ parent_header,\\n+ )\\n+ return tuple()\\n+ elif len(headers) != length:\\n+ self.logger.debug(\\n+ \"Ignoring %d headers from %s, because wanted %d\",\\n+ len(headers),\\n+ peer,\\n+ length,\\n+ )\\n+ return tuple()\\n+ else:\\n+ try:\\n+ await self._chain.coro_validate_chain(\\n+ parent_header,\\n+ headers,\\n+ SEAL_CHECK_RANDOM_SAMPLE_RATE,\\n+ )\\n+ except ValidationError as e:\\n+ self.logger.warning(\"Received invalid headers from %s, disconnecting: %s\", peer, e)\\n+ await peer.disconnect(DisconnectReason.subprotocol_error)\\n+ return tuple()\\n+ else:\\n+ # stitch headers together in order, ignoring duplicates\\n+ try:\\n+ self._stitcher.register_tasks(headers)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in headers if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)\\n+\\n+ return headers\\n+\\n+ async def _request_headers(\\n+ self, peer: TChainPeer, start_at: BlockNumber, length: int) -> Tuple[BlockHeader, ...]:\\n+ self.logger.debug(\"Requesting %d headers from %s\", length, peer)\\n+ try:\\n+ return await peer.requests.get_block_headers(start_at, length, skip=0, reverse=False)\\n+ except TimeoutError as err:\\n+ self.logger.debug(\"Timed out requesting %d headers from %s\", length, peer)\\n+ return tuple()\\n+ except CancelledError:\\n+ self.logger.debug(\"Pending headers call to %r future cancelled\", peer)\\n+ return tuple()\\n+ except OperationCancelled:\\n+ self.logger.debug2(\"Pending headers call to %r operation cancelled\", peer)\\n+ return tuple()\\n+ except PeerConnectionLost:\\n+ self.logger.debug(\"Peer went away, cancelling the headers request and moving on...\")\\n+ return tuple()\\n+ except Exception:\\n+ self.logger.exception(\"Unknown error when getting headers\")\\n+ raise\\n+\\n+\\n+class BaseHeaderChainSyncer(BaseService, HeaderSyncerAPI, Generic[TChainPeer]):\\n+ \"\"\"\\n+ Generate a skeleton header, then use all peers to fill in the headers\\n+ returned by the skeleton syncer.\\n+ \"\"\"\\n+ _meat: HeaderMeatSyncer[TChainPeer]\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer_pool: BaseChainPeerPool,\\n+ token: CancelToken = None) -> None:\\n+ super().__init__(token)\\n+ self._db = db\\n+ self._chain = chain\\n+ self._peer_pool = peer_pool\\n+ self._tip_monitor = self.tip_monitor_class(peer_pool, token=self.cancel_token)\\n+ self._skeleton: SkeletonSyncer[TChainPeer] = None\\n+ # stitch together headers as they come in\\n+ self._stitcher = OrderedTaskPreparation(\\n+ # we don\\'t have to do any prep work on the headers, just linearize them, so empty enum\\n+ OrderedTaskPreparation.NoPrerequisites,\\n+ id_extractor=attrgetter(\\'hash\\'),\\n+ # make sure that a header is not returned in new_sync_headers until its parent has been\\n+ dependency_extractor=attrgetter(\\'parent_hash\\'),\\n+ # headers will come in out of order\\n+ accept_dangling_tasks=True,\\n+ )\\n+ # When downloading the headers into the gaps left by the syncer, they must be linearized\\n+ # by the stitcher\\n+ self._meat = HeaderMeatSyncer(chain, peer_pool, self._stitcher, token)\\n+ self._last_target_header_hash: Hash32 = None\\n+\\n+ async def new_sync_headers(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational:\\n+ next_header_batch = await self.wait(self._stitcher.ready_tasks())\\n+ yield cast(Tuple[BlockHeader, ...], next_header_batch)\\n+\\n+ def get_target_header_hash(self) -> Hash32:\\n+ if not self._is_syncing_skeleton and self._last_target_header_hash is None:\\n+ raise ValidationError(\"Cannot check the target hash before the first sync has started\")\\n+ elif self._is_syncing_skeleton:\\n+ return self._skeleton.peer.head_hash\\n+ else:\\n+ return self._last_target_header_hash\\n+\\n+ @property\\n+ @abstractmethod\\n+ def tip_monitor_class(self) -> Type[BaseChainTipMonitor]:\\n+ pass\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon(self._tip_monitor)\\n+ self.run_daemon(self._meat)\\n+ await self.wait(self._build_skeleton())\\n+\\n+ async def _build_skeleton(self) -> None:\\n+ \"\"\"\\n+ Find best peer to build a skeleton, and build it immediately\\n+ \"\"\"\\n+ # iterator yields the peer with the highest TD in our pool\\n+ async for peer in self._tip_monitor.wait_tip_info():\\n+ try:\\n+ await self._validate_peer_is_ahead(peer)\\n+ except _PeerBehind:\\n+ self.logger.info(\"At or behind peer %s, skipping skeleton sync\", peer)\\n+ else:\\n+ async with self._get_skeleton_syncer(peer) as syncer:\\n+ await self._full_skeleton_sync(syncer)\\n+\\n+ @asynccontextmanager\\n+ async def _get_skeleton_syncer(\\n+ self, peer: TChainPeer) -> AsyncIterator[SkeletonSyncer[TChainPeer]]:\\n+ if self._is_syncing_skeleton:\\n+ raise ValidationError(\"Cannot sync skeleton headers from two peers at the same time\")\\n+\\n+ self._skeleton = SkeletonSyncer(\\n+ self._chain,\\n+ self._db,\\n+ peer,\\n+ self.cancel_token,\\n+ )\\n+ self.run_child_service(self._skeleton)\\n+ await self._skeleton.events.started.wait()\\n+ try:\\n+ yield self._skeleton\\n+ except OperationCancelled:\\n+ pass\\n+ else:\\n+ if self._skeleton.is_operational:\\n+ self._skeleton.cancel_nowait()\\n+ finally:\\n+ self.logger.info(\"Skeleton sync with %s ended\", peer)\\n+ self._last_target_header_hash = peer.head_hash\\n+ self._skeleton = None\\n+\\n+ @property\\n+ def _is_syncing_skeleton(self) -> bool:\\n+ return self._skeleton is not None\\n+\\n+ async def _full_skeleton_sync(self, skeleton_syncer: SkeletonSyncer[TChainPeer]) -> None:\\n+ skeleton_generator = skeleton_syncer.next_skeleton_segment()\\n+ try:\\n+ first_segment = await skeleton_generator.__anext__()\\n+ except StopAsyncIteration:\\n+ self.logger.debug(\\n+ \"Skeleton %s was cancelled before first header was returned\",\\n+ skeleton_syncer.peer,\\n+ )\\n+ return\\n+\\n+ self.logger.debug(\\n+ \"Skeleton syncer asserts that parent (%s) of the first header (%s) is already present\",\\n+ first_segment[0].parent_hash,\\n+ first_segment[0],\\n+ )\\n+ first_parent = await self._db.coro_get_block_header_by_hash(first_segment[0].parent_hash)\\n+ try:\\n+ self._stitcher.set_finished_dependency(first_parent)\\n+ except DuplicateTasks:\\n+ # the first header of this segment was already registered: no problem, carry on\\n+ pass\\n+\\n+ try:\\n+ self._stitcher.register_tasks(first_segment)\\n+ except DuplicateTasks as exc:\\n+ non_duplicate_headers = tuple(h for h in first_segment if h not in exc.duplicates)\\n+ if len(non_duplicate_headers):\\n+ self._stitcher.register_tasks(non_duplicate_headers)', 'path': 'trinity/sync/common/headers.py', 'position': 826, 'original_position': 826, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '#1600', 'created_at': '2018-12-14T01:08:09Z', 'updated_at': '2018-12-14T01:08:09Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241616819'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241616819'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240775432}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-14T01:08:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-14T01:07:51Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:08:09Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752073306', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1600, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600', 'id': 238581722, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTgxNzIy', 'html_url': 'https://github.com/ethereum/py-evm/pull/1600', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1600.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1600.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600', 'number': 1600, 'state': 'open', 'locked': False, 'title': 'Option to ignore duplicates in OrderedTaskPreparation', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nSome use cases are totally fine with duplicates in `OrderedTaskPreparation`, but they have a bit of boilerplate to overcome the dups.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nAdd option to drop duplicates when registering tasks.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://theawesomedaily.com/wp-content/uploads/2014/10/cute-animals-twins-14.jpg)', 'created_at': '2018-12-14T01:07:50Z', 'updated_at': '2018-12-14T01:07:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'head': {'label': 'carver:task-prep-duplicates', 'ref': 'task-prep-duplicates', 'sha': '0bed7a9b3cda9fe43e71285d4f01a673698f6280', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-14T01:02:06Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7110, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1600'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1600/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1600/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/0bed7a9b3cda9fe43e71285d4f01a673698f6280'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 26, 'deletions': 7, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T01:07:51Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752058628', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095', 'pull_request_review_id': 184935511, 'id': 241616095, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNjA5NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lint reports also https://travis-ci.org/ethereum/go-ethereum/jobs/467536235#L514', 'created_at': '2018-12-14T01:03:16Z', 'updated_at': '2018-12-14T01:03:16Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241616095'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241616095'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241613965}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:03:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:03:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752053738', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850', 'pull_request_review_id': 184935233, 'id': 241615850, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTg1MA==', 'diff_hunk': '@@ -1034,3 +1047,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr *PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': None, 'original_position': 63, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '05eae4f31250d085602a86074dd278a8861fb567', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'should be the same way as proposed for `checkMsg`', 'created_at': '2018-12-14T01:01:44Z', 'updated_at': '2018-12-14T01:01:45Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615850'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615850'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}, 'in_reply_to_id': 241387376}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:01:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:01:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051108', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508', 'pull_request_review_id': 184933055, 'id': 241615508, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTUwOA==', 'diff_hunk': '@@ -1034,3 +1039,10 @@ func (p *Pss) digestBytes(msg []byte) pssDigest {\\n \\tcopy(digest[:], key[:digestLength])\\n \\treturn digest\\n }\\n+\\n+func checkAddress(addr PssAddress) bool {', 'path': 'swarm/pss/pss.go', 'position': 209, 'original_position': 209, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'better return the (exported) error here where it belongs\\r\\n\\r\\n```golang\\r\\nfunc validate(addr PssAddress) error \\r\\n```', 'created_at': '2018-12-14T00:59:27Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615508'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615508'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:59:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051106', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703', 'pull_request_review_id': 184933055, 'id': 241615703, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxNTcwMw==', 'diff_hunk': '@@ -1008,6 +1008,34 @@ func TestRawAllow(t *testing.T) {\\n \\t}\\n }\\n \\n+// BELOW HERE ARE TESTS USING THE SIMULATION FRAMEWORK\\n+\\n+// tests that the API layer can handle edge case values\\n+func TestApi(t *testing.T) {\\n+\\tclients, err := setupNetwork(2, true)\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\ttopic := \"0xdeadbeef\"\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0x\", topic, \"0x666f6f\")\\n+\\tif err != nil {\\n+\\t\\tt.Fatal(err)\\n+\\t}\\n+\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", \"0xabcdef\", topic, \"0x\")\\n+\\tif err == nil {\\n+\\t\\tt.Fatal(\"expected error on empty msg\")\\n+\\t}\\n+\\n+\\toverflowAddr := [33]byte{}\\n+\\terr = clients[0].Call(nil, \"pss_sendRaw\", hexutil.Encode(overflowAddr[:]), topic, \"0x666f6f\")\\n+\\tif err == nil {', 'path': 'swarm/pss/pss_test.go', 'position': 74, 'original_position': 74, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'lets check the actual error returned', 'created_at': '2018-12-14T01:00:41Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241615703'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241615703'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T01:00:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8752051104', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 769725, 'login': 'zelig', 'display_login': 'zelig', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'avatar_url': 'https://avatars.githubusercontent.com/u/769725?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965', 'pull_request_review_id': 184933055, 'id': 241613965, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYxMzk2NQ==', 'diff_hunk': '@@ -177,3 +186,10 @@ func (pssapi *API) GetPeerTopics(pubkeyhex string) ([]Topic, error) {\\n func (pssapi *API) GetPeerAddress(pubkeyhex string, topic Topic) (PssAddress, error) {\\n \\treturn pssapi.Pss.getPeerAddress(pubkeyhex, topic)\\n }\\n+\\n+func checkMsg(msg []byte) bool {\\n+\\tif msg == nil || len(msg) == 0 {', 'path': 'swarm/pss/api.go', 'position': 71, 'original_position': 71, 'commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'original_commit_id': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'zelig', 'id': 769725, 'node_id': 'MDQ6VXNlcjc2OTcyNQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/769725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/zelig', 'html_url': 'https://github.com/zelig', 'followers_url': 'https://api.github.com/users/zelig/followers', 'following_url': 'https://api.github.com/users/zelig/following{/other_user}', 'gists_url': 'https://api.github.com/users/zelig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/zelig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/zelig/subscriptions', 'organizations_url': 'https://api.github.com/users/zelig/orgs', 'repos_url': 'https://api.github.com/users/zelig/repos', 'events_url': 'https://api.github.com/users/zelig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/zelig/received_events', 'type': 'User', 'site_admin': False}, 'body': 'redundant. `len(msg) == 0 ` covers the nil case too. ', 'created_at': '2018-12-14T00:49:53Z', 'updated_at': '2018-12-14T01:00:56Z', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965', 'pull_request_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments/241613965'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304#discussion_r241613965'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304', 'id': 238372127, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MzcyMTI3', 'html_url': 'https://github.com/ethereum/go-ethereum/pull/18304', 'diff_url': 'https://github.com/ethereum/go-ethereum/pull/18304.diff', 'patch_url': 'https://github.com/ethereum/go-ethereum/pull/18304.patch', 'issue_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304', 'number': 18304, 'state': 'open', 'locked': False, 'title': 'swarm/pss: Reduce input vulnerabilities', 'user': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'body': '**EDIT**\\r\\n\\r\\nThis PR aims to reduce some potential and actual input vulnerabilities in PSS APIs, namely:\\r\\n\\r\\n* Makes the API return an error when an empty message is being sent.\\r\\n* Removes unnecessary indirection to pss addresses\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/926\\r\\n - solution: Return error on peer register if address is more than 32 bytes\\r\\n* Fixes https://github.com/ethersphere/go-ethereum/issues/1050\\r\\n - solution: Add nil map check on topic handler caps (which would be unnecessary if we had the originally planned _bit field_ <3 instead, right guys? right?)', 'created_at': '2018-12-13T12:28:46Z', 'updated_at': '2018-12-14T01:00:56Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '21ef5d3f0d8f0bab64aff60bc0df53e8b6b56bc4', 'assignee': {'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'nolash', 'id': 9886925, 'node_id': 'MDQ6VXNlcjk4ODY5MjU=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/9886925?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/nolash', 'html_url': 'https://github.com/nolash', 'followers_url': 'https://api.github.com/users/nolash/followers', 'following_url': 'https://api.github.com/users/nolash/following{/other_user}', 'gists_url': 'https://api.github.com/users/nolash/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/nolash/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/nolash/subscriptions', 'organizations_url': 'https://api.github.com/users/nolash/orgs', 'repos_url': 'https://api.github.com/users/nolash/repos', 'events_url': 'https://api.github.com/users/nolash/events{/privacy}', 'received_events_url': 'https://api.github.com/users/nolash/received_events', 'type': 'User', 'site_admin': False}], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 72233650, 'node_id': 'MDU6TGFiZWw3MjIzMzY1MA==', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/bug', 'name': 'bug', 'color': 'fc2929', 'default': True}, {'id': 163665008, 'node_id': 'MDU6TGFiZWwxNjM2NjUwMDg=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/please%20review', 'name': 'please review', 'color': 'fad8c7', 'default': False}, {'id': 295303566, 'node_id': 'MDU6TGFiZWwyOTUzMDM1NjY=', 'url': 'https://api.github.com/repos/ethereum/go-ethereum/labels/swarm', 'name': 'swarm', 'color': 'd4c5f9', 'default': False}], 'milestone': {'url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61', 'html_url': 'https://github.com/ethereum/go-ethereum/milestone/61', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones/61/labels', 'id': 3111008, 'node_id': 'MDk6TWlsZXN0b25lMzExMTAwOA==', 'number': 61, 'title': '1.9.0', 'description': '', 'creator': {'login': 'fjl', 'id': 6915, 'node_id': 'MDQ6VXNlcjY5MTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6915?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fjl', 'html_url': 'https://github.com/fjl', 'followers_url': 'https://api.github.com/users/fjl/followers', 'following_url': 'https://api.github.com/users/fjl/following{/other_user}', 'gists_url': 'https://api.github.com/users/fjl/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fjl/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fjl/subscriptions', 'organizations_url': 'https://api.github.com/users/fjl/orgs', 'repos_url': 'https://api.github.com/users/fjl/repos', 'events_url': 'https://api.github.com/users/fjl/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fjl/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 5, 'closed_issues': 1, 'state': 'open', 'created_at': '2018-02-13T11:59:08Z', 'updated_at': '2018-12-13T12:28:46Z', 'due_on': '2019-01-30T08:00:00Z', 'closed_at': None}, 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d', 'head': {'label': 'ethersphere:pss-raw-crash', 'ref': 'pss-raw-crash', 'sha': '887eda209c4e72728de438e130f130b0ca27019d', 'user': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 17790136, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNzc5MDEzNg==', 'name': 'go-ethereum', 'full_name': 'ethersphere/go-ethereum', 'private': False, 'owner': {'login': 'ethersphere', 'id': 6946989, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjY5NDY5ODk=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/6946989?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethersphere', 'html_url': 'https://github.com/ethersphere', 'followers_url': 'https://api.github.com/users/ethersphere/followers', 'following_url': 'https://api.github.com/users/ethersphere/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethersphere/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethersphere/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethersphere/subscriptions', 'organizations_url': 'https://api.github.com/users/ethersphere/orgs', 'repos_url': 'https://api.github.com/users/ethersphere/repos', 'events_url': 'https://api.github.com/users/ethersphere/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethersphere/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethersphere/go-ethereum', 'description': 'Ethereum Go', 'fork': True, 'url': 'https://api.github.com/repos/ethersphere/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethersphere/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethersphere/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethersphere/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethersphere/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethersphere/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethersphere/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethersphere/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethersphere/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethersphere/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethersphere/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethersphere/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethersphere/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethersphere/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethersphere/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethersphere/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethersphere/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethersphere/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethersphere/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethersphere/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethersphere/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethersphere/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethersphere/go-ethereum/deployments', 'created_at': '2014-03-16T02:06:34Z', 'updated_at': '2018-12-13T09:44:41Z', 'pushed_at': '2018-12-13T21:14:45Z', 'git_url': 'git://github.com/ethersphere/go-ethereum.git', 'ssh_url': 'git@github.com:ethersphere/go-ethereum.git', 'clone_url': 'https://github.com/ethersphere/go-ethereum.git', 'svn_url': 'https://github.com/ethersphere/go-ethereum', 'homepage': '', 'size': 110160, 'stargazers_count': 118, 'watchers_count': 118, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 37, 'mirror_url': None, 'archived': False, 'open_issues_count': 198, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 37, 'open_issues': 198, 'watchers': 118, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'e57e4571d3382c504a01f87be654d984f26e2dd1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15452919, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ1MjkxOQ==', 'name': 'go-ethereum', 'full_name': 'ethereum/go-ethereum', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/go-ethereum', 'forks_url': 'https://api.github.com/repos/ethereum/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/ethereum/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/ethereum/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/ethereum/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/go-ethereum/deployments', 'created_at': '2013-12-26T13:05:46Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/ethereum/go-ethereum.git', 'ssh_url': 'git@github.com:ethereum/go-ethereum.git', 'clone_url': 'https://github.com/ethereum/go-ethereum.git', 'svn_url': 'https://github.com/ethereum/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 22056, 'watchers_count': 22056, 'language': 'Go', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 7709, 'mirror_url': None, 'archived': False, 'open_issues_count': 858, 'license': {'key': 'lgpl-3.0', 'name': 'GNU Lesser General Public License v3.0', 'spdx_id': 'LGPL-3.0', 'url': 'https://api.github.com/licenses/lgpl-3.0', 'node_id': 'MDc6TGljZW5zZTEy'}, 'forks': 7709, 'open_issues': 858, 'watchers': 22056, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304'}, 'html': {'href': 'https://github.com/ethereum/go-ethereum/pull/18304'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/issues/18304/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/pulls/18304/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/go-ethereum/statuses/887eda209c4e72728de438e130f130b0ca27019d'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T00:49:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751989838', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'id': 390917644, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'number': 317, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:41:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch'}, 'body': ''}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447173057', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317#issuecomment-447173057', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'id': 447173057, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE3MzA1Nw==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:41:50Z', 'updated_at': '2018-12-14T00:41:50Z', 'author_association': 'CONTRIBUTOR', 'body': 'One aesthetic change I think we should consider is switching the `get_effective_balance` function to just take the state as an argument instead of (as in this PR right now) the validator balance entry. I could see future changes that use parts of the validator registry entry as well as the balance entry to calculate the effective balance, so we may as well just make grab all the data it needs from the state.'}}, 'public': True, 'created_at': '2018-12-14T00:41:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751984020', 'type': 'PushEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'push_id': 3136352433, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/vbuterin-patch-15', 'head': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'before': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'commits': [{'sha': '964395c362f90cfed2cda1224ea6587d01e8d80b', 'author': {'email': 'v@buterin.com', 'name': 'vbuterin'}, 'message': 'Some bugfixes', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits/964395c362f90cfed2cda1224ea6587d01e8d80b'}]}, 'public': True, 'created_at': '2018-12-14T00:40:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751978095', 'type': 'ForkEvent', 'actor': {'id': 34241240, 'login': 'lostjcwide', 'display_login': 'lostjcwide', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'avatar_url': 'https://avatars.githubusercontent.com/u/34241240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'forkee': {'id': 161711418, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTE0MTg=', 'name': 'go-ethereum', 'full_name': 'lostjcwide/go-ethereum', 'private': False, 'owner': {'login': 'lostjcwide', 'id': 34241240, 'node_id': 'MDQ6VXNlcjM0MjQxMjQw', 'avatar_url': 'https://avatars2.githubusercontent.com/u/34241240?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/lostjcwide', 'html_url': 'https://github.com/lostjcwide', 'followers_url': 'https://api.github.com/users/lostjcwide/followers', 'following_url': 'https://api.github.com/users/lostjcwide/following{/other_user}', 'gists_url': 'https://api.github.com/users/lostjcwide/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/lostjcwide/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/lostjcwide/subscriptions', 'organizations_url': 'https://api.github.com/users/lostjcwide/orgs', 'repos_url': 'https://api.github.com/users/lostjcwide/repos', 'events_url': 'https://api.github.com/users/lostjcwide/events{/privacy}', 'received_events_url': 'https://api.github.com/users/lostjcwide/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/lostjcwide/go-ethereum', 'description': 'Official Go implementation of the Ethereum protocol', 'fork': True, 'url': 'https://api.github.com/repos/lostjcwide/go-ethereum', 'forks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/forks', 'keys_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/teams', 'hooks_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/hooks', 'issue_events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/events{/number}', 'events_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/events', 'assignees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/assignees{/user}', 'branches_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/branches{/branch}', 'tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/tags', 'blobs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/languages', 'stargazers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/stargazers', 'contributors_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contributors', 'subscribers_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscribers', 'subscription_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/subscription', 'commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/contents/{+path}', 'compare_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/merges', 'archive_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/downloads', 'issues_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/issues{/number}', 'pulls_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/labels{/name}', 'releases_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/releases{/id}', 'deployments_url': 'https://api.github.com/repos/lostjcwide/go-ethereum/deployments', 'created_at': '2018-12-14T00:38:08Z', 'updated_at': '2018-12-14T00:21:13Z', 'pushed_at': '2018-12-13T21:14:48Z', 'git_url': 'git://github.com/lostjcwide/go-ethereum.git', 'ssh_url': 'git@github.com:lostjcwide/go-ethereum.git', 'clone_url': 'https://github.com/lostjcwide/go-ethereum.git', 'svn_url': 'https://github.com/lostjcwide/go-ethereum', 'homepage': 'https://geth.ethereum.org', 'size': 107613, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:38:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751969024', 'type': 'ForkEvent', 'actor': {'id': 32267442, 'login': 'tootooquan', 'display_login': 'tootooquan', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'avatar_url': 'https://avatars.githubusercontent.com/u/32267442?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161711222, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MTEyMjI=', 'name': 'wiki', 'full_name': 'tootooquan/wiki', 'private': False, 'owner': {'login': 'tootooquan', 'id': 32267442, 'node_id': 'MDQ6VXNlcjMyMjY3NDQy', 'avatar_url': 'https://avatars2.githubusercontent.com/u/32267442?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tootooquan', 'html_url': 'https://github.com/tootooquan', 'followers_url': 'https://api.github.com/users/tootooquan/followers', 'following_url': 'https://api.github.com/users/tootooquan/following{/other_user}', 'gists_url': 'https://api.github.com/users/tootooquan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tootooquan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tootooquan/subscriptions', 'organizations_url': 'https://api.github.com/users/tootooquan/orgs', 'repos_url': 'https://api.github.com/users/tootooquan/repos', 'events_url': 'https://api.github.com/users/tootooquan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tootooquan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/tootooquan/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/tootooquan/wiki', 'forks_url': 'https://api.github.com/repos/tootooquan/wiki/forks', 'keys_url': 'https://api.github.com/repos/tootooquan/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/tootooquan/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/tootooquan/wiki/teams', 'hooks_url': 'https://api.github.com/repos/tootooquan/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/tootooquan/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/tootooquan/wiki/events', 'assignees_url': 'https://api.github.com/repos/tootooquan/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/tootooquan/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/tootooquan/wiki/tags', 'blobs_url': 'https://api.github.com/repos/tootooquan/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/tootooquan/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/tootooquan/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/tootooquan/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/tootooquan/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/tootooquan/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/tootooquan/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/tootooquan/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/tootooquan/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/tootooquan/wiki/subscription', 'commits_url': 'https://api.github.com/repos/tootooquan/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/tootooquan/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/tootooquan/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/tootooquan/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/tootooquan/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/tootooquan/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/tootooquan/wiki/merges', 'archive_url': 'https://api.github.com/repos/tootooquan/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/tootooquan/wiki/downloads', 'issues_url': 'https://api.github.com/repos/tootooquan/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/tootooquan/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/tootooquan/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/tootooquan/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/tootooquan/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/tootooquan/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/tootooquan/wiki/deployments', 'created_at': '2018-12-14T00:35:13Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/tootooquan/wiki.git', 'ssh_url': 'git@github.com:tootooquan/wiki.git', 'clone_url': 'https://github.com/tootooquan/wiki.git', 'svn_url': 'https://github.com/tootooquan/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:35:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949703', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 317, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317', 'id': 238576035, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTc2MDM1', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/317', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/317.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317', 'number': 317, 'state': 'open', 'locked': False, 'title': 'Separate validator balances', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-14T00:29:05Z', 'updated_at': '2018-12-14T00:29:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'head': {'label': 'ethereum:vbuterin-patch-15', 'ref': 'vbuterin-patch-15', 'sha': '2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:29:00Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 38, 'license': None, 'forks': 66, 'open_issues': 38, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/317'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/317/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/317/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/2b9a0e999c60f7f466801f91b1eabcf3d00ba3a7'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 47, 'deletions': 54, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:29:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751949477', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-15', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:29:00Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751924428', 'type': 'WatchEvent', 'actor': {'id': 9455140, 'login': 'BITjiangrui', 'display_login': 'BITjiangrui', 'gravatar_id': '', 'url': 'https://api.github.com/users/BITjiangrui', 'avatar_url': 'https://avatars.githubusercontent.com/u/9455140?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:21:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751892952', 'type': 'ForkEvent', 'actor': {'id': 40443354, 'login': 'akkaorig', 'display_login': 'akkaorig', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'avatar_url': 'https://avatars.githubusercontent.com/u/40443354?'}, 'repo': {'id': 16852060, 'name': 'ethereum/wiki', 'url': 'https://api.github.com/repos/ethereum/wiki'}, 'payload': {'forkee': {'id': 161709668, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE3MDk2Njg=', 'name': 'wiki', 'full_name': 'akkaorig/wiki', 'private': False, 'owner': {'login': 'akkaorig', 'id': 40443354, 'node_id': 'MDQ6VXNlcjQwNDQzMzU0', 'avatar_url': 'https://avatars0.githubusercontent.com/u/40443354?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/akkaorig', 'html_url': 'https://github.com/akkaorig', 'followers_url': 'https://api.github.com/users/akkaorig/followers', 'following_url': 'https://api.github.com/users/akkaorig/following{/other_user}', 'gists_url': 'https://api.github.com/users/akkaorig/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/akkaorig/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/akkaorig/subscriptions', 'organizations_url': 'https://api.github.com/users/akkaorig/orgs', 'repos_url': 'https://api.github.com/users/akkaorig/repos', 'events_url': 'https://api.github.com/users/akkaorig/events{/privacy}', 'received_events_url': 'https://api.github.com/users/akkaorig/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/akkaorig/wiki', 'description': 'The Ethereum Wiki', 'fork': True, 'url': 'https://api.github.com/repos/akkaorig/wiki', 'forks_url': 'https://api.github.com/repos/akkaorig/wiki/forks', 'keys_url': 'https://api.github.com/repos/akkaorig/wiki/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/akkaorig/wiki/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/akkaorig/wiki/teams', 'hooks_url': 'https://api.github.com/repos/akkaorig/wiki/hooks', 'issue_events_url': 'https://api.github.com/repos/akkaorig/wiki/issues/events{/number}', 'events_url': 'https://api.github.com/repos/akkaorig/wiki/events', 'assignees_url': 'https://api.github.com/repos/akkaorig/wiki/assignees{/user}', 'branches_url': 'https://api.github.com/repos/akkaorig/wiki/branches{/branch}', 'tags_url': 'https://api.github.com/repos/akkaorig/wiki/tags', 'blobs_url': 'https://api.github.com/repos/akkaorig/wiki/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/akkaorig/wiki/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/akkaorig/wiki/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/akkaorig/wiki/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/akkaorig/wiki/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/akkaorig/wiki/languages', 'stargazers_url': 'https://api.github.com/repos/akkaorig/wiki/stargazers', 'contributors_url': 'https://api.github.com/repos/akkaorig/wiki/contributors', 'subscribers_url': 'https://api.github.com/repos/akkaorig/wiki/subscribers', 'subscription_url': 'https://api.github.com/repos/akkaorig/wiki/subscription', 'commits_url': 'https://api.github.com/repos/akkaorig/wiki/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/akkaorig/wiki/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/akkaorig/wiki/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/akkaorig/wiki/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/akkaorig/wiki/contents/{+path}', 'compare_url': 'https://api.github.com/repos/akkaorig/wiki/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/akkaorig/wiki/merges', 'archive_url': 'https://api.github.com/repos/akkaorig/wiki/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/akkaorig/wiki/downloads', 'issues_url': 'https://api.github.com/repos/akkaorig/wiki/issues{/number}', 'pulls_url': 'https://api.github.com/repos/akkaorig/wiki/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/akkaorig/wiki/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/akkaorig/wiki/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/akkaorig/wiki/labels{/name}', 'releases_url': 'https://api.github.com/repos/akkaorig/wiki/releases{/id}', 'deployments_url': 'https://api.github.com/repos/akkaorig/wiki/deployments', 'created_at': '2018-12-14T00:11:33Z', 'updated_at': '2018-12-13T12:27:38Z', 'pushed_at': '2018-10-25T17:35:34Z', 'git_url': 'git://github.com/akkaorig/wiki.git', 'ssh_url': 'git@github.com:akkaorig/wiki.git', 'clone_url': 'https://github.com/akkaorig/wiki.git', 'svn_url': 'https://github.com/akkaorig/wiki', 'homepage': 'https://www.ethereum.org', 'size': 3791, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'public': True}}, 'public': True, 'created_at': '2018-12-14T00:11:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751888250', 'type': 'WatchEvent', 'actor': {'id': 168240, 'login': 'miguelmota', 'display_login': 'miguelmota', 'gravatar_id': '', 'url': 'https://api.github.com/users/miguelmota', 'avatar_url': 'https://avatars.githubusercontent.com/u/168240?'}, 'repo': {'id': 15540967, 'name': 'ethereum/tests', 'url': 'https://api.github.com/repos/ethereum/tests'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-14T00:10:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751876088', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 103953670, 'name': 'ethereum/snake-charmers-tactical-manual', 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual'}, 'payload': {'action': 'opened', 'number': 32, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32', 'id': 238572554, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTU0', 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32', 'diff_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.diff', 'patch_url': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32.patch', 'issue_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32', 'number': 32, 'state': 'open', 'locked': False, 'title': 'Add link to release file in README', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Forgot the push to master step originally. Also added link to the readme.', 'created_at': '2018-12-14T00:06:41Z', 'updated_at': '2018-12-14T00:06:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'head': {'label': 'kclowes:edit-release-docs', 'ref': 'edit-release-docs', 'sha': '781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 157785913, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTc3ODU5MTM=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'kclowes/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/snake-charmers-tactical-manual/deployments', 'created_at': '2018-11-15T23:33:08Z', 'updated_at': '2018-11-15T23:33:10Z', 'pushed_at': '2018-12-14T00:01:33Z', 'git_url': 'git://github.com/kclowes/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:kclowes/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/kclowes/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/kclowes/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 39, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': None, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dcdfa5c8345876b6bab867f1d1736a8fdc3cde4a', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 103953670, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMDM5NTM2NzA=', 'name': 'snake-charmers-tactical-manual', 'full_name': 'ethereum/snake-charmers-tactical-manual', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'description': 'Development *stuff* for the Snake Charmers EF team', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual', 'forks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/forks', 'keys_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/events', 'assignees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/merges', 'archive_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/deployments', 'created_at': '2017-09-18T15:00:44Z', 'updated_at': '2018-12-12T19:12:49Z', 'pushed_at': '2018-12-12T19:12:47Z', 'git_url': 'git://github.com/ethereum/snake-charmers-tactical-manual.git', 'ssh_url': 'git@github.com:ethereum/snake-charmers-tactical-manual.git', 'clone_url': 'https://github.com/ethereum/snake-charmers-tactical-manual.git', 'svn_url': 'https://github.com/ethereum/snake-charmers-tactical-manual', 'homepage': 'http://python.ethereum.org/', 'size': 57, 'stargazers_count': 28, 'watchers_count': 28, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 11, 'mirror_url': None, 'archived': False, 'open_issues_count': 15, 'license': None, 'forks': 11, 'open_issues': 15, 'watchers': 28, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32'}, 'html': {'href': 'https://github.com/ethereum/snake-charmers-tactical-manual/pull/32'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/issues/32/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/pulls/32/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/snake-charmers-tactical-manual/statuses/781e3e77606d6ccbf7f89be1cc9ea85d0e0cc736'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-14T00:06:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751875553', 'type': 'IssueCommentEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300', 'id': 390356377, 'node_id': 'MDU6SXNzdWUzOTAzNTYzNzc=', 'number': 300, 'title': 'Add aggregation description to BLS document', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 1063043868, 'node_id': 'MDU6TGFiZWwxMDYzMDQzODY4', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels/enhancement', 'name': 'enhancement', 'color': '086788', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-12T18:39:12Z', 'updated_at': '2018-12-14T00:06:32Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '- [ ] Add `aggregate_pubkeys` function description\\r\\n- [ ] Add `aggregate_signatures` function description\\r\\n- [ ] Rename `bls_verify.md` -> `bls_signature.md`\\r\\n\\r\\n\\r\\nTBD:\\r\\n* Add more description: BLS signature scheme for Ethereum 2.0: Aggregate and Multi-Signatures based on BLS (Boneh–Lynn–Shacham) over BLS12-381.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447166455', 'html_url': 'https://github.com/ethereum/eth2.0-specs/issues/300#issuecomment-447166455', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/300', 'id': 447166455, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2NjQ1NQ==', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-14T00:06:32Z', 'updated_at': '2018-12-14T00:06:32Z', 'author_association': 'CONTRIBUTOR', 'body': 'Addressed with https://github.com/ethereum/eth2.0-specs/pull/316'}}, 'public': True, 'created_at': '2018-12-14T00:06:32Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874995', 'type': 'PullRequestEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'opened', 'number': 316, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316', 'id': 238572500, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTcyNTAw', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/316', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/316.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316', 'number': 316, 'state': 'open', 'locked': False, 'title': 'Edit BLS spec as per issue #300', 'user': {'login': 'vbuterin', 'id': 2230894, 'node_id': 'MDQ6VXNlcjIyMzA4OTQ=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/2230894?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'html_url': 'https://github.com/vbuterin', 'followers_url': 'https://api.github.com/users/vbuterin/followers', 'following_url': 'https://api.github.com/users/vbuterin/following{/other_user}', 'gists_url': 'https://api.github.com/users/vbuterin/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vbuterin/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vbuterin/subscriptions', 'organizations_url': 'https://api.github.com/users/vbuterin/orgs', 'repos_url': 'https://api.github.com/users/vbuterin/repos', 'events_url': 'https://api.github.com/users/vbuterin/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vbuterin/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See https://github.com/ethereum/eth2.0-specs/issues/300', 'created_at': '2018-12-14T00:06:21Z', 'updated_at': '2018-12-14T00:06:21Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'head': {'label': 'ethereum:vbuterin-patch-13', 'ref': 'vbuterin-patch-13', 'sha': 'add628d26bcb0b55d7f1a4b4c3031f4241922c66', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-14T00:06:07Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 37, 'license': None, 'forks': 66, 'open_issues': 37, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/316'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/316/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/316/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/add628d26bcb0b55d7f1a4b4c3031f4241922c66'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-14T00:06:22Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751874194', 'type': 'CreateEvent', 'actor': {'id': 2230894, 'login': 'vbuterin', 'display_login': 'vbuterin', 'gravatar_id': '', 'url': 'https://api.github.com/users/vbuterin', 'avatar_url': 'https://avatars.githubusercontent.com/u/2230894?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'ref': 'vbuterin-patch-13', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Ethereum 2.0 Specifications', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-14T00:06:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751821039', 'type': 'PushEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3136263998, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'before': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'commits': [{'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Add a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}, {'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'Keri'}, 'message': 'Change readthedocs yaml to build from latest image\\n\\nSupport python >=3.5.2', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/62448d0858e80d3e8bad219f4669360249a1031c'}, {'sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'author': {'email': 'kclowes@users.noreply.github.com', 'name': 'kclowes'}, 'message': 'Merge pull request #1162 from kclowes/add-rtd-yml\\n\\nAdd a yaml file for Read the Docs', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/911e2a4842b8b5cda51cc312df55a329881b6dc7'}]}, 'public': True, 'created_at': '2018-12-13T23:51:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751820926', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'closed', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:51:16Z', 'closed_at': '2018-12-13T23:51:16Z', 'merged_at': '2018-12-13T23:51:16Z', 'merge_commit_sha': '911e2a4842b8b5cda51cc312df55a329881b6dc7', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '62448d0858e80d3e8bad219f4669360249a1031c', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T23:39:31Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3083, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:51:16Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/62448d0858e80d3e8bad219f4669360249a1031c'}}, 'author_association': 'CONTRIBUTOR', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 2, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T23:51:17Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811322', 'type': 'PullRequestEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1088, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'id': 220916221, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'number': 1088, 'state': 'closed', 'locked': False, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\", 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:29Z', 'closed_at': '2018-12-13T23:48:28Z', 'merged_at': None, 'merge_commit_sha': 'b3cc4fa473d82228fcef84656ca96203d710533c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'head': {'label': 'dylanjw:async_modules', 'ref': 'async_modules', 'sha': 'b8ff3bc59f8f9dafed5514f1fb41627bd5382b53', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111731372, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTE3MzEzNzI=', 'name': 'web3.py', 'full_name': 'dylanjw/web3.py', 'private': False, 'owner': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/dylanjw/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/dylanjw/web3.py', 'forks_url': 'https://api.github.com/repos/dylanjw/web3.py/forks', 'keys_url': 'https://api.github.com/repos/dylanjw/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dylanjw/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dylanjw/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/dylanjw/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dylanjw/web3.py/events', 'assignees_url': 'https://api.github.com/repos/dylanjw/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dylanjw/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dylanjw/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dylanjw/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dylanjw/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dylanjw/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dylanjw/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dylanjw/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/dylanjw/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/dylanjw/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/dylanjw/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/dylanjw/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/dylanjw/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dylanjw/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dylanjw/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dylanjw/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dylanjw/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dylanjw/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dylanjw/web3.py/merges', 'archive_url': 'https://api.github.com/repos/dylanjw/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dylanjw/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/dylanjw/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dylanjw/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dylanjw/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dylanjw/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dylanjw/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/dylanjw/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dylanjw/web3.py/deployments', 'created_at': '2017-11-22T20:53:39Z', 'updated_at': '2018-11-02T10:22:38Z', 'pushed_at': '2018-11-01T11:55:01Z', 'git_url': 'git://github.com/dylanjw/web3.py.git', 'ssh_url': 'git@github.com:dylanjw/web3.py.git', 'clone_url': 'https://github.com/dylanjw/web3.py.git', 'svn_url': 'https://github.com/dylanjw/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 19370, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 1, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '22a215fb6a0e8f0b4479c994f3d88e65bff3dda1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T23:11:10Z', 'pushed_at': '2018-12-13T23:39:33Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1216, 'watchers_count': 1216, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 109, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 109, 'watchers': 1216, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1088'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/b8ff3bc59f8f9dafed5514f1fb41627bd5382b53'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 10, 'review_comments': 19, 'maintainer_can_modify': False, 'commits': 21, 'additions': 734, 'deletions': 461, 'changed_files': 43}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751811316', 'type': 'IssueCommentEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'id': 367503181, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIwOTE2MjIx', 'number': 1088, 'title': 'Asynchronous Web3', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-10-06T22:57:29Z', 'updated_at': '2018-12-13T23:48:28Z', 'closed_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1088', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1088.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1088.patch'}, 'body': \"### What was wrong?\\r\\n\\r\\nRelated to Issue #1055 \\r\\n\\r\\n### How was it fixed?\\r\\nExpanded on @carver 's pseudocode. I wrestled for a while with how to give the caller function access to the manager request methods. I haven't found a way around using a descriptor.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image](https://user-images.githubusercontent.com/8933231/46576520-7d4d1280-c980-11e8-94fd-552643aadc00.png)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447162791', 'html_url': 'https://github.com/ethereum/web3.py/pull/1088#issuecomment-447162791', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1088', 'id': 447162791, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2Mjc5MQ==', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:48:28Z', 'updated_at': '2018-12-13T23:48:28Z', 'author_association': 'CONTRIBUTOR', 'body': 'This PR was mostly experimentation and can be closed now.'}}, 'public': True, 'created_at': '2018-12-13T23:48:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751780935', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653', 'pull_request_review_id': 184918499, 'id': 241601653, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMTY1Mw==', 'diff_hunk': '@@ -0,0 +1,868 @@\\n+from abc import ABC, abstractmethod\\n+import asyncio\\n+from concurrent.futures import CancelledError\\n+from operator import attrgetter, itemgetter\\n+from random import randrange\\n+from typing import (\\n+ AsyncIterator,\\n+ Callable,\\n+ Generic,\\n+ Set,\\n+ Tuple,\\n+ Type,\\n+ cast,\\n+)\\n+\\n+from async_generator import (\\n+ asynccontextmanager,\\n+)\\n+from cancel_token import CancelToken, OperationCancelled\\n+from eth_typing import (\\n+ BlockNumber,\\n+ Hash32,\\n+)\\n+from eth_utils import (\\n+ ValidationError,\\n+)\\n+from eth_utils.toolz import (\\n+ compose,\\n+ concatv,\\n+ sliding_window,\\n+)\\n+\\n+from eth.constants import GENESIS_BLOCK_NUMBER\\n+from eth.exceptions import (\\n+ HeaderNotFound,\\n+)\\n+from eth.rlp.headers import BlockHeader\\n+from p2p.constants import SEAL_CHECK_RANDOM_SAMPLE_RATE\\n+from p2p.exceptions import BaseP2PError, PeerConnectionLost\\n+from p2p.p2p_proto import DisconnectReason\\n+from p2p.peer import BasePeer, PeerSubscriber\\n+from p2p.protocol import Command\\n+from p2p.service import BaseService\\n+\\n+from trinity.chains.base import BaseAsyncChain\\n+from trinity.db.header import AsyncHeaderDB\\n+from trinity.protocol.common.commands import (\\n+ BaseBlockHeaders,\\n+)\\n+from trinity.protocol.common.monitors import BaseChainTipMonitor\\n+from trinity.protocol.common.peer import BaseChainPeer, BaseChainPeerPool\\n+from trinity.protocol.eth.constants import (\\n+ MAX_HEADERS_FETCH,\\n+)\\n+from trinity.sync.common.constants import (\\n+ EMPTY_PEER_RESPONSE_PENALTY,\\n+ MAX_SKELETON_REORG_DEPTH,\\n+)\\n+from trinity.sync.common.peers import TChainPeer, WaitingPeers\\n+from trinity.utils.datastructures import (\\n+ DuplicateTasks,\\n+ OrderedTaskPreparation,\\n+ TaskQueue,\\n+)\\n+\\n+\\n+class SkeletonSyncer(BaseService, Generic[TChainPeer]):\\n+ # header skip: long enough that the pairs leave a gap of 192, the max header request length\\n+ _skip_length = MAX_HEADERS_FETCH + 1\\n+\\n+ max_reorg_depth = MAX_SKELETON_REORG_DEPTH\\n+\\n+ _fetched_headers: \\'asyncio.Queue[Tuple[BlockHeader, ...]]\\'\\n+\\n+ def __init__(self,\\n+ chain: BaseAsyncChain,\\n+ db: AsyncHeaderDB,\\n+ peer: TChainPeer,\\n+ token: CancelToken) -> None:\\n+ super().__init__(token=token)\\n+ self._chain = chain\\n+ self._db = db\\n+ self.peer = peer\\n+ max_pending_headers = peer.max_headers_fetch * 8\\n+ self._fetched_headers = asyncio.Queue(max_pending_headers)\\n+\\n+ async def next_skeleton_segment(self) -> AsyncIterator[Tuple[BlockHeader, ...]]:\\n+ while self.is_operational or self._fetched_headers.qsize() > 0:\\n+ if self._fetched_headers.qsize() == 0:\\n+ try:\\n+ yield await self.wait(self._fetched_headers.get())\\n+ self._fetched_headers.task_done()\\n+ except OperationCancelled:\\n+ # if cancelled before the next item is ready, return immediately\\n+ break\\n+ else:\\n+ # allow caller to continue reading queued headers after skeleton is cancelled\\n+ yield await self._fetched_headers.get()\\n+ self._fetched_headers.task_done()\\n+\\n+ async def _run(self) -> None:\\n+ self.run_daemon_task(self._display_stats())\\n+ await self.wait(self._quietly_fetch_full_skeleton())\\n+ self.logger.info(\"Skeleton %s stopped responding, waiting for sync to complete\", self.peer)\\n+ await self.wait(self._fetched_headers.join())\\n+ self.logger.info(\"Skeleton %s emitted all headers\", self.peer)\\n+\\n+ async def _display_stats(self) -> None:\\n+ queue = self._fetched_headers\\n+ while self.is_operational:\\n+ await self.sleep(5)\\n+ self.logger.debug(\"Skeleton header queue is %d/%d full\", queue.qsize(), queue.maxsize)\\n+\\n+ async def _quietly_fetch_full_skeleton(self) -> None:\\n+ try:\\n+ await self._fetch_full_skeleton()\\n+ except ValidationError as exc:\\n+ self.logger.debug(\\n+ \"Exiting sync and booting %s due to validation error: %s\",\\n+ self.peer,\\n+ exc,\\n+ )\\n+ await self.peer.disconnect(DisconnectReason.subprotocol_error)\\n+ except TimeoutError:\\n+ self.logger.warning(\"Timeout waiting for header batch from %s, halting sync\", self.peer)\\n+ await self.peer.disconnect(DisconnectReason.timeout)\\n+\\n+ async def _fetch_full_skeleton(self) -> None:\\n+ \"\"\"\\n+ Request a skeleton of headers. In other words, return headers with gaps like so:\\n+ parent -> child -> [skip] ... [skip] -> parent -> child -> [skip] ... [skip] -> ...\\n+\\n+ There are some exceptions where more than two headers are returned consecutively.\\n+ \"\"\"\\n+ peer = self.peer\\n+\\n+ # launch the skeleton sync by finding a segment that has a parent header in the DB\\n+ launch_headers = await self.wait(self._find_launch_headers(peer))\\n+ await self.wait(self._fetched_headers.put(launch_headers))', 'path': 'trinity/sync/common/headers.py', 'position': 139, 'original_position': 139, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Eh, no great reason. A future change might make the queue smaller than `launch_headers` and it seems slightly better to pause while the queue is drained than to crash.\\r\\n\\r\\nI'm on the fence, and it's easier to change than to document clearly :)\", 'created_at': '2018-12-13T23:40:11Z', 'updated_at': '2018-12-13T23:40:11Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241601653'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241601653'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240762923}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:40:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '4d4842158cdf6bd14aaf19b04355c1470e5e7e23', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:40:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751774402', 'type': 'PushEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'push_id': 3136239202, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/test-allowlocal', 'head': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'before': '160dba6eefb5f8cb9eb12d1daee2903a699d1cd7', 'commits': [{'sha': '12bae4ea3a5f3a4931d778de64c43e4974da92e6', 'author': {'email': 'nilserik.frantzell@gmail.com', 'name': 'Nils-Erik Frantzell'}, 'message': 'Add allow-local arg to aleth/aleth-bootnode\\n\\nArg is used to enable nodes from your local network to be added to the\\nnode table. Useful for testing discovery running multiple nodes on ones\\nlocal machine', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/aleth/commits/12bae4ea3a5f3a4931d778de64c43e4974da92e6'}]}, 'public': True, 'created_at': '2018-12-13T23:38:16Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751772151', 'type': 'CreateEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'ref': 'test-allowlocal', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T23:37:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751768176', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:36:31Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447160464', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447160464', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447160464, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE2MDQ2NA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:36:31Z', 'updated_at': '2018-12-13T23:36:31Z', 'author_association': 'COLLABORATOR', 'body': '> Do you have a preference between cherry picking that commit or updating the file here?\\r\\n\\r\\nNo need to cherry-pick it, update in place is fine. :+1: '}}, 'public': True, 'created_at': '2018-12-13T23:36:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751763013', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1599/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1599', 'id': 390905959, 'node_id': 'MDU6SXNzdWUzOTA5MDU5NTk=', 'number': 1599, 'title': 'Change the DB fixture naming convention to `pow_headers_20` so that they sort intuitively', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T23:35:01Z', 'updated_at': '2018-12-13T23:35:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '_Originally posted by @pipermerriam in https://github.com/_render_node/MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDc2MTEyMQ==/comments/review_comment_'}}, 'public': True, 'created_at': '2018-12-13T23:35:01Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751760637', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540', 'pull_request_review_id': 184917173, 'id': 241600540, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTYwMDU0MA==', 'diff_hunk': \"@@ -147,6 +147,7 @@ def load_mining_chain(db):\\n \\n class DBFixture(Enum):\\n twenty_pow_headers = '20pow_headers.ldb'\\n+ thousand_pow_headers = '1000pow_headers.ldb'\", 'path': 'tests/trinity/core/integration_test_helpers.py', 'position': 4, 'original_position': 4, 'commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'original_commit_id': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Maybe :football: this to a follow-up to avoid growing this PR', 'created_at': '2018-12-13T23:34:18Z', 'updated_at': '2018-12-13T23:34:19Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241600540'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392#discussion_r241600540'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}}, 'in_reply_to_id': 240761121}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392', 'id': 222615989, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjIyNjE1OTg5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1392', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1392.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1392.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392', 'number': 1392, 'state': 'open', 'locked': False, 'title': '[WIP] Header skeleton sync', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nMoving towards closing #1324 \\r\\n\\r\\nFixes #978 \\r\\n\\r\\n(Missing requirement: handle long valid forks where peer is lying about TD)\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n**super WIP!**\\r\\n\\r\\nThis will likely split into a few more PRs for reasonable review size.\\r\\n\\r\\nThis splits the header sync from the body sync, into two separate services. So the body syncer no longer inherits from the header syncer (favoring composition over inheritance), and there are smaller units to reason about.\\r\\n\\r\\nTODO\\r\\n- [x] clean up `# TODO ...`s\\r\\n- [x] clean up ` WARNING 11-27 17:15:33 SkeletonSyncer Tried to cancel , but it was already cancelled`\\r\\n - [x] ` INFO 11-29 17:08:42 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cancellation requested by ETHPeer:ETHPeerPool:FullServer:FullNode token`\\r\\n- [x] `INFO 11-29 17:24:59 HeaderMeatSyncer Unexpected exception while downloading headers from peer: Cannot re-register tasks` (after a peer disconnected)\\r\\n- [x] `DEBUG 12-07 15:15:26 SkeletonSyncer All 192 headers ending in are redundant, head at , fetching from #55343`\\r\\n- [x] more ropsten/mainnet light/full smoke testing\\r\\n- [x] open more issues:\\r\\n - [x] quit out of current skeleton syncer if a better peer comes along #1218 \\r\\n - [x] deal with [long valid forks where peer is exaggerating TD](https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267)\\r\\n - [x] ~~prefer/require second peer to fill in the skeleton meat~~ (_unnecessary with this ^ implemented_)\\r\\n - [x] ~~when peer returns subset of headers, keep them and ask for intermediate headers, instead of dropping the partial header set all on the floor.~~ (_this adds a surprising amount of complexity, and almost all peers return all headers at all times, currently_)\\r\\n\\r\\nNice to have\\r\\n- [x] ~~benchmarking~~ :football: till general perf review\\r\\n- [x] `_GatheringFuture exception was never retrieved`\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](http://2.bp.blogspot.com/-OvKEj5I7SFc/T9DyAlgViQI/AAAAAAAAM6I/yuradmbttnc/s640/funny-animals-playing-soccer-football-001.jpg)\\r\\n ', 'created_at': '2018-10-13T00:37:07Z', 'updated_at': '2018-12-13T23:34:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '014fbbfeee97efbf059d633982a5940a7745526f', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 630871768, 'node_id': 'MDU6TGFiZWw2MzA4NzE3Njg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/PR%20state:%20WIP', 'name': 'PR state: WIP', 'color': 'fbca04', 'default': False}], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a', 'head': {'label': 'carver:header-skeleton-sync', 'ref': 'header-skeleton-sync', 'sha': 'd747af16be5f813e57d2c69f9981918f7830da6a', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'ba08e5d98ca38e9d41677c8dc8acef6062131645', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T23:26:42Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1392'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1392/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1392/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/d747af16be5f813e57d2c69f9981918f7830da6a'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:34:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751739960', 'type': 'IssueCommentEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T23:28:57Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447158885', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447158885', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447158885, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1ODg4NQ==', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:28:57Z', 'updated_at': '2018-12-13T23:28:57Z', 'author_association': 'CONTRIBUTOR', 'body': \"> I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\nooo, sweet! I'll check it out\\r\\n\\r\\n> For whatever reason, we used a slightly different yaml in v4:\\r\\nNeat! I didn't even see that one. It looks like build.latest should work. Do you have a preference between cherry picking that commit or updating the file here?\"}}, 'public': True, 'created_at': '2018-12-13T23:28:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751731443', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1598, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598', 'id': 238565680, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTY1Njgw', 'html_url': 'https://github.com/ethereum/py-evm/pull/1598', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1598.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1598.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598', 'number': 1598, 'state': 'open', 'locked': False, 'title': 'Pretty hash display utility', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nWe\\'re likely to write little bits of hash display code here and there. Better to have a common utility.\\r\\n\\r\\nInspired by https://github.com/ethereum/py-evm/pull/1392#discussion_r240773225\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDecided to keep it super simple by only supporting the long form.\\r\\n\\r\\nThe short form seems just so short to implement, that it\\'s better not to worry about the utility, like:\\r\\n\\r\\n```py\\r\\nf\"{header.hash[:4].hex()}\"\\r\\n```\\r\\n\\r\\nI don\\'t feel super strongly though.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![screenshot_2018-12-13_15-25-22](https://user-images.githubusercontent.com/205327/49973811-63353080-feeb-11e8-8909-8165087b7d9c.png)\\r\\n_\"hash browns\"_', 'created_at': '2018-12-13T23:26:41Z', 'updated_at': '2018-12-13T23:26:41Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13', 'head': {'label': 'carver:humanize-hash', 'ref': 'humanize-hash', 'sha': '5147609fc43470c2b01e273f7b00f1cc71728d13', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 111029002, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTEwMjkwMDI=', 'name': 'py-evm', 'full_name': 'carver/py-evm', 'private': False, 'owner': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/carver/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/carver/py-evm', 'forks_url': 'https://api.github.com/repos/carver/py-evm/forks', 'keys_url': 'https://api.github.com/repos/carver/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/carver/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/carver/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/carver/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/carver/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/carver/py-evm/events', 'assignees_url': 'https://api.github.com/repos/carver/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/carver/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/carver/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/carver/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/carver/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/carver/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/carver/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/carver/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/carver/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/carver/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/carver/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/carver/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/carver/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/carver/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/carver/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/carver/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/carver/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/carver/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/carver/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/carver/py-evm/merges', 'archive_url': 'https://api.github.com/repos/carver/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/carver/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/carver/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/carver/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/carver/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/carver/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/carver/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/carver/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/carver/py-evm/deployments', 'created_at': '2017-11-16T22:23:49Z', 'updated_at': '2018-12-13T20:12:01Z', 'pushed_at': '2018-12-13T23:17:44Z', 'git_url': 'git://github.com/carver/py-evm.git', 'ssh_url': 'git@github.com:carver/py-evm.git', 'clone_url': 'https://github.com/carver/py-evm.git', 'svn_url': 'https://github.com/carver/py-evm', 'homepage': '', 'size': 7100, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '751c856953060d68ae7be2c62306d11935e32345', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 163, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 163, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1598'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1598/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1598/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/5147609fc43470c2b01e273f7b00f1cc71728d13'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 22, 'deletions': 1, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T23:26:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751671993', 'type': 'WatchEvent', 'actor': {'id': 1105978, 'login': 'ajbennett', 'display_login': 'ajbennett', 'gravatar_id': '', 'url': 'https://api.github.com/users/ajbennett', 'avatar_url': 'https://avatars.githubusercontent.com/u/1105978?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T23:11:10Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751668907', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 2, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T23:10:23Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447154718', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447154718', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447154718, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1NDcxOA==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:10:23Z', 'updated_at': '2018-12-13T23:10:23Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener (or maybe we can create the `NodeTable `without going through `Host`, though I doubt it since I think the `NodeTable `depends on the host e.g. it uses a reference to `Host`'s boost IO service to listen for discovery packets)\\r\\n\\r\\nI'm thinking of adding a boolean parameter to `NetworkConfig` named something like `p2p `which aleth-bootnode's `main `would set to `false`. In `Host `we would then skip starting the capability threads and the tcp4 acceptor in `Host::startedWorking`:\\r\\n\\r\\nhttps://github.com/ethereum/aleth/blob/ec3886029393fc9927b130ba8f8671480d810391/libp2p/Host.cpp#L774-L787\\r\\n\\r\\nWe could also turn `Host::m_tcp4Acceptor` and `Host::m_ioService` into pointer types and only create them if `NetworkConfig::p2p` is `true`. \\r\\n\\r\\nI think we should still restore the data from `aleth-bootnode-network.rlp` since that can contain node table data.\\r\\n\\r\\n@gumb0,@chfast: Thoughts? \"}}, 'public': True, 'created_at': '2018-12-13T23:10:23Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751648709', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T23:05:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447153626', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447153626', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447153626, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MzYyNg==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T23:05:21Z', 'updated_at': '2018-12-13T23:05:21Z', 'author_association': 'MEMBER', 'body': \"Yup! Hopefully I've reframed the real problem I see better. It's not about making the parameter larger to fit, it's about allowing the parameter to be smaller in the first place.\"}}, 'public': True, 'created_at': '2018-12-13T23:05:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751636392', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678', 'pull_request_review_id': 184908756, 'id': 241593678, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzY3OA==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'See my comment below about moving the utility (and thus not needing this import)', 'created_at': '2018-12-13T23:02:29Z', 'updated_at': '2018-12-13T23:02:29Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593678'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593678'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}, 'in_reply_to_id': 241588887}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:29Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:29Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751635242', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615', 'pull_request_review_id': 184908670, 'id': 241593615, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MzYxNQ==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401\\n+\\n+\\n+class Storage(object):\\n+ __slots__ = [\\'store\\']\\n+\\n+ def __init__(self) -> None:\\n+ self.store = {} # type: Dict[Address, Dict[int, Union[int, bytes]]]\\n+\\n+ def dump(self, address: Address) -> Dict[int, Union[int, bytes]]:\\n+ if address not in self.store:\\n+ return {}\\n+ return self.store[address]\\n+\\n+ def set_slot(self, address: Address, slot: int, value: Union[int, bytes]) -> None:\\n+ if address not in self.store:\\n+ self.store[address] = {}\\n+ self.store[address][slot] = value\\n+\\n+ def set_address(self, address: Address, slots: Dict[int, Union[int, bytes]]) -> None:\\n+ self.store[address] = slots\\n+\\n+\\n+StructLogEntry = NamedTuple(\\'StructLogEntry\\',\\n+ [\\n+ (\\'depth\\', int),\\n+ (\\'err\\', VMError),\\n+ (\\'gas\\', int),\\n+ (\\'gas_cost\\', int),\\n+ (\\'memory\\', Optional[bytes]),\\n+ (\\'op\\', str),\\n+ (\\'pc\\', int),\\n+ (\\'stack\\', Optional[Tuple[int, ...]]),\\n+ (\\'storage\\', Optional[Dict[int, Union[int, bytes]]])\\n+ ])\\n+\\n+\\n+class BaseTracer(ABC):\\n+ @contextlib.contextmanager\\n+ @abstractmethod\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> None:\\n+ pass\\n+\\n+ @abstractmethod\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+class NoopTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which does nothing.\\n+ \"\"\"\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ yield\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ pass\\n+\\n+\\n+ExecutionResult = NamedTuple(\\'ExecutionResult\\',\\n+ [\\n+ (\\'error\\', bool),\\n+ (\\'gas\\', int),\\n+ (\\'output\\', bytes),\\n+ (\\'logs\\', Tuple[StructLogEntry, ...]),\\n+ ])\\n+\\n+\\n+class StructTracer(BaseTracer):\\n+ \"\"\"\\n+ A Tracer class which implements structured log tracing:\\n+\\n+ https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction\\n+ \"\"\"\\n+ logger = logging.getLogger(\\'eth.vm.tracing.StructTracer\\')\\n+\\n+ result = None\\n+\\n+ def __init__(self,\\n+ memory: bool = True,\\n+ stack: bool = True,\\n+ storage: bool = True,\\n+ limit: int = None):\\n+ self.changed_values = Storage()\\n+ self.is_memory_enabled = memory\\n+ self.is_stack_enabled = stack\\n+ self.is_storage_enabled = storage\\n+ self.limit = limit\\n+ self.logs = [] # type: List[StructLogEntry]\\n+\\n+ @property\\n+ def is_full(self) -> bool:\\n+ if self.limit is None:\\n+ return False\\n+ else:\\n+ return len(self.logs) >= self.limit\\n+\\n+ @property\\n+ def is_final(self) -> bool:\\n+ return self.result is not None\\n+\\n+ @contextlib.contextmanager\\n+ def capture(self, computation: \\'BaseComputation\\', opcode_fn: Opcode) -> Iterator[None]:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot capture using a finalized tracer\")\\n+\\n+ pc = computation.get_pc()\\n+ start_gas = computation.get_gas_remaining()\\n+ stack = computation.dump_stack() if self.is_storage_enabled else None\\n+ memory = computation.dump_memory() if self.is_memory_enabled else None\\n+\\n+ if self.is_storage_enabled:\\n+ storage_address = computation.msg.storage_address\\n+ if opcode_fn.mnemonic == \"SSTORE\" and len(stack) >= 2:\\n+ val = stack[len(stack) - 2]\\n+ slot = stack[len(stack) - 1]\\n+ self.changed_values.set_slot(storage_address, slot, val)\\n+ storage = self.changed_values.dump(storage_address)\\n+ else:\\n+ storage = None\\n+\\n+ try:\\n+ yield\\n+ except VMError as err:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=err,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+ raise\\n+ else:\\n+ self._log_operation(\\n+ depth=computation.msg.depth + 1,\\n+ error=None,\\n+ gas=start_gas,\\n+ gas_cost=start_gas - computation.get_gas_remaining(),\\n+ memory=memory,\\n+ op=opcode_fn.mnemonic,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage\\n+ )\\n+\\n+ def finalize(self, computation: \\'BaseComputation\\') -> None:\\n+ if self.is_final:\\n+ raise ValidationError(\"Cannot finalize tracer which is already finalized\")\\n+ elif computation.is_origin_computation:\\n+ self.result = ExecutionResult(\\n+ error=computation.error is not None,\\n+ gas=computation.get_gas_used(),\\n+ logs=tuple(self.logs),\\n+ output=computation.output,\\n+ )\\n+\\n+ def _log_operation(self,\\n+ *,\\n+ depth: int,\\n+ error: Optional[VMError],\\n+ gas: int,\\n+ gas_cost: int,\\n+ memory: bytes,\\n+ op: str,\\n+ pc: int,\\n+ stack: Tuple[int, ...],\\n+ storage: Dict[int, Union[int, bytes]]) -> None:\\n+ if self.is_full:\\n+ self.logger.debug(\\n+ \\'StructTracer full (limit=%d). Discarding trace log entry\\',\\n+ self.limit,\\n+ )\\n+ return\\n+\\n+ self.logs.append(StructLogEntry(\\n+ depth=depth,\\n+ err=error,\\n+ gas=gas,\\n+ gas_cost=gas_cost,\\n+ memory=memory,\\n+ op=op,\\n+ pc=pc,\\n+ stack=stack,\\n+ storage=storage,\\n+ ))\\n+\\n+\\n+def trace_transaction(chain: \\'BaseAsyncChain\\', tx_hash: Hash32, memory: bool, stack: bool,', 'path': 'eth/vm/tracing.py', 'position': 233, 'original_position': 233, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'This utility should just be moved into the `trinity` module somewhere near the `debug_traceTransaction` implementation.', 'created_at': '2018-12-13T23:02:13Z', 'updated_at': '2018-12-13T23:02:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241593615'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241593615'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T23:02:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6618, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T23:02:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751612602', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453', 'pull_request_review_id': 184907211, 'id': 241592453, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU5MjQ1Mw==', 'diff_hunk': '@@ -14,10 +14,6 @@\\n You should have received a copy of the GNU General Public License\\n along with cpp-ethereum. If not, see .\\n */\\n-/** @file NodeTable.cpp', 'path': 'libp2p/NodeTable.cpp', 'position': 4, 'original_position': 4, 'commit_id': '87cc8487521d0eec7272e6a5599af298107812e5', 'original_commit_id': 'ab7aa4ea9d7f8001ca46b45f84cfbf9180a3b04a', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Should we also replace cpp-ethereum with aleth? ', 'created_at': '2018-12-13T22:57:05Z', 'updated_at': '2018-12-13T22:57:05Z', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453', 'pull_request_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments/241592453'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380#discussion_r241592453'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}}, 'in_reply_to_id': 241142316}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'id': 235816816, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'number': 5380, 'state': 'open', 'locked': False, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\", 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:57:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '9f4710033bcf867684ecf8fd4cbb4ef3d9d52df9', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5', 'head': {'label': 'ethereum:improve-discovery2', 'ref': 'improve-discovery2', 'sha': '87cc8487521d0eec7272e6a5599af298107812e5', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'b4f616296fb8035488f1db7686ff40e1f641fa27', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 15460666, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTQ2MDY2Ng==', 'name': 'aleth', 'full_name': 'ethereum/aleth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/aleth', 'description': 'Aleth – Ethereum C++ client, tools and libraries', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/aleth', 'forks_url': 'https://api.github.com/repos/ethereum/aleth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/aleth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/aleth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/aleth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/aleth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/aleth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/aleth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/aleth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/aleth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/aleth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/aleth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/aleth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/aleth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/aleth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/aleth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/aleth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/aleth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/aleth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/aleth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/aleth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/aleth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/aleth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/aleth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/aleth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/aleth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/aleth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/aleth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/aleth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/aleth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/aleth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/aleth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/aleth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/aleth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/aleth/deployments', 'created_at': '2013-12-26T21:26:06Z', 'updated_at': '2018-12-12T23:45:36Z', 'pushed_at': '2018-12-13T13:49:25Z', 'git_url': 'git://github.com/ethereum/aleth.git', 'ssh_url': 'git@github.com:ethereum/aleth.git', 'clone_url': 'https://github.com/ethereum/aleth.git', 'svn_url': 'https://github.com/ethereum/aleth', 'homepage': 'http://cpp-ethereum.org', 'size': 55458, 'stargazers_count': 3453, 'watchers_count': 3453, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': True, 'forks_count': 2137, 'mirror_url': None, 'archived': False, 'open_issues_count': 322, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 2137, 'open_issues': 322, 'watchers': 3453, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380'}, 'html': {'href': 'https://github.com/ethereum/aleth/pull/5380'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/aleth/pulls/5380/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/aleth/statuses/87cc8487521d0eec7272e6a5599af298107812e5'}}, 'author_association': 'MEMBER'}}, 'public': True, 'created_at': '2018-12-13T22:57:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751606764', 'type': 'IssueCommentEvent', 'actor': {'id': 8655789, 'login': 'codecov-io', 'display_login': 'codecov-io', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'avatar_url': 'https://avatars.githubusercontent.com/u/8655789?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'repository_url': 'https://api.github.com/repos/ethereum/retesteth', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/events', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'id': 390891437, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'number': 22, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch'}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments/447151283', 'html_url': 'https://github.com/ethereum/retesteth/pull/22#issuecomment-447151283', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'id': 447151283, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MTI4Mw==', 'user': {'login': 'codecov-io', 'id': 8655789, 'node_id': 'MDQ6VXNlcjg2NTU3ODk=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/8655789?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/codecov-io', 'html_url': 'https://github.com/codecov-io', 'followers_url': 'https://api.github.com/users/codecov-io/followers', 'following_url': 'https://api.github.com/users/codecov-io/following{/other_user}', 'gists_url': 'https://api.github.com/users/codecov-io/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/codecov-io/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/codecov-io/subscriptions', 'organizations_url': 'https://api.github.com/users/codecov-io/orgs', 'repos_url': 'https://api.github.com/users/codecov-io/repos', 'events_url': 'https://api.github.com/users/codecov-io/events{/privacy}', 'received_events_url': 'https://api.github.com/users/codecov-io/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:55:44Z', 'updated_at': '2018-12-13T22:55:44Z', 'author_association': 'NONE', 'body': '# [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=h1) Report\\n> Merging [#22](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=desc) into [master](https://codecov.io/gh/ethereum/retesteth/commit/dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1?src=pr&el=desc) will **not change** coverage.\\n> The diff coverage is `0%`.\\n\\n[![Impacted file tree graph](https://codecov.io/gh/ethereum/retesteth/pull/22/graphs/tree.svg?width=650&token=PvJVrvApgx&height=150&src=pr)](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree)\\n\\n```diff\\n@@ Coverage Diff @@\\n## master #22 +/- ##\\n======================================\\n Coverage 0% 0% \\n======================================\\n Files 71 72 +1 \\n Lines 4357 4244 -113 \\n Branches 540 543 +3 \\n======================================\\n+ Misses 4357 4244 -113\\n```\\n\\n\\n| [Impacted Files](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=tree) | Coverage Δ | |\\n|---|---|---|\\n| [retesteth/testSuites/StateTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvU3RhdGVUZXN0cy5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ethObjects/stateTest/scheme\\\\_RPCTest.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9SUENUZXN0Lmg=) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuaA==) | `0% <0%> (ø)` | |\\n| [retesteth/testSuites/RPCTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvUlBDVGVzdHMuY3Bw) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/BlockchainTests.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQmxvY2tjaGFpblRlc3RzLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/testSuites/Common.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL3Rlc3RTdWl0ZXMvQ29tbW9uLmNwcA==) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/TestSuite.cpp](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL1Rlc3RTdWl0ZS5jcHA=) | `0% <0%> (ø)` | :arrow_up: |\\n| [...etesteth/ethObjects/stateTest/scheme\\\\_expectState.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RTdGF0ZS5o) | `0% <0%> (ø)` | :arrow_up: |\\n| [...esteth/ethObjects/stateTest/scheme\\\\_expectAccount.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL2V0aE9iamVjdHMvc3RhdGVUZXN0L3NjaGVtZV9leHBlY3RBY2NvdW50Lmg=) | `0% <0%> (ø)` | :arrow_up: |\\n| [retesteth/ClientConfig.h](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree#diff-cmV0ZXN0ZXRoL0NsaWVudENvbmZpZy5o) | `0% <0%> (ø)` | :arrow_up: |\\n| ... and [5 more](https://codecov.io/gh/ethereum/retesteth/pull/22/diff?src=pr&el=tree-more) | |\\n\\n------\\n\\n[Continue to review full report at Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=continue).\\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\\n> `Δ = absolute (impact)`, `ø = not affected`, `? = missing data`\\n> Powered by [Codecov](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=footer). Last update [dbf47e7...3cdfa03](https://codecov.io/gh/ethereum/retesteth/pull/22?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\\n'}}, 'public': True, 'created_at': '2018-12-13T22:55:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751592879', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:52:38Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447150467', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447150467', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447150467, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE1MDQ2Nw==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:52:38Z', 'updated_at': '2018-12-13T22:52:38Z', 'author_association': 'CONTRIBUTOR', 'body': \"Hrm yeah haha I'm a bit torn, on one hand I think its an elegant way to handle these cases, on the other it does feel pretty magical/isn't the most intuitive to understand what is going on because in Python syntax that would be used for slicing, not type annotating, right?\"}}, 'public': True, 'created_at': '2018-12-13T22:52:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751580082', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'id': 390892494, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'number': 1162, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:49:48Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch'}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447149736', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162#issuecomment-447149736', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'id': 447149736, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTczNg==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:48Z', 'updated_at': '2018-12-13T22:49:48Z', 'author_association': 'COLLABORATOR', 'body': \"Ooh right, I forgot about that yaml. I think there's some way to trigger a build on the branch (esp if the branch gets pushed upstream) to test it out.\\r\\n\\r\\nFor whatever reason, we used a slightly different yaml in v4: https://github.com/ethereum/web3.py/blob/df03ed098f32054fecc6bb4d2cfd7cf1a524e4cc/.readthedocs.yaml#L1-L2\\r\\n\\r\\nI don't remember why we used that approach. You might try to blame it and see if there's any more information in the old PR about what was tried.\"}}, 'public': True, 'created_at': '2018-12-13T22:49:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751579259', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:49:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447149689', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447149689', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447149689, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0OTY4OQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:49:37Z', 'updated_at': '2018-12-13T22:49:37Z', 'author_association': 'MEMBER', 'body': 'We could also have that specify a min size:\\r\\n```python\\r\\ndef foo(a: uint256[2:4]):\\r\\n for i in a:\\r\\n # Runs a minimum of twice and a maximum of 4 times\\r\\n```\\r\\n\\r\\nProbably pretty insidious though maybe'}}, 'public': True, 'created_at': '2018-12-13T22:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751575653', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136135662, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'before': '348030663754b15eee4a5442fbb7d229fadda489', 'commits': [{'sha': '6517f4f64a4a0610254c9b9fe19f6d50207773a0', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'BatchRequest improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/6517f4f64a4a0610254c9b9fe19f6d50207773a0'}]}, 'public': True, 'created_at': '2018-12-13T22:48:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751554182', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391/events', 'html_url': 'https://github.com/ethereum/aleth/issues/5391', 'id': 389836170, 'node_id': 'MDU6SXNzdWUzODk4MzYxNzA=', 'number': 5391, 'title': 'Aleth bootnode improvements', 'user': {'login': 'chfast', 'id': 573380, 'node_id': 'MDQ6VXNlcjU3MzM4MA==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/573380?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/chfast', 'html_url': 'https://github.com/chfast', 'followers_url': 'https://api.github.com/users/chfast/followers', 'following_url': 'https://api.github.com/users/chfast/following{/other_user}', 'gists_url': 'https://api.github.com/users/chfast/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/chfast/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/chfast/subscriptions', 'organizations_url': 'https://api.github.com/users/chfast/orgs', 'repos_url': 'https://api.github.com/users/chfast/repos', 'events_url': 'https://api.github.com/users/chfast/events{/privacy}', 'received_events_url': 'https://api.github.com/users/chfast/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 816182839, 'node_id': 'MDU6TGFiZWw4MTYxODI4Mzk=', 'url': 'https://api.github.com/repos/ethereum/aleth/labels/networking', 'name': 'networking', 'color': 'a4e559', 'default': False}], 'state': 'open', 'locked': False, 'assignee': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 1, 'created_at': '2018-12-11T16:05:20Z', 'updated_at': '2018-12-13T22:44:06Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': \"- [ ] Does the bootnode need to open the TCP port?\\r\\n- [ ] It runs with very low resources, but the memory usage is growing slightly over time. Check if we don't keep some data forever (like pending peers, evictions).\\r\\n- [ ] When running devp2p without any capabilities the Hello messages should be ignored.\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447148245', 'html_url': 'https://github.com/ethereum/aleth/issues/5391#issuecomment-447148245', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5391', 'id': 447148245, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODI0NQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:44:06Z', 'updated_at': '2018-12-13T22:44:06Z', 'author_association': 'CONTRIBUTOR', 'body': \"Looked at the network code in Host, we don't need to start the TCP listener (`m_tcp4Acceptor`) since we don't need to support p2p connections at all, we just need to receive discovery packets (which is handled via UDP sockets in `NodeTable`). I'll take a closer look at how to avoid starting the TCP listener. \"}}, 'public': True, 'created_at': '2018-12-13T22:44:06Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751552656', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T22:43:44Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447148155', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447148155', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447148155, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0ODE1NQ==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:43:44Z', 'updated_at': '2018-12-13T22:43:44Z', 'author_association': 'MEMBER', 'body': 'I think the best case would be to write something that ends up looking a lot like what we do with `bytes[N]` (where there is a `len` variable). This would probably be something specific to input/output parameters only.'}}, 'public': True, 'created_at': '2018-12-13T22:43:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751546770', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887', 'pull_request_review_id': 184902851, 'id': 241588887, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4ODg4Nw==', 'diff_hunk': '@@ -0,0 +1,246 @@\\n+from abc import (\\n+ ABC,\\n+ abstractmethod,\\n+)\\n+\\n+import contextlib\\n+\\n+import logging\\n+\\n+from typing import (\\n+ Dict,\\n+ Iterator,\\n+ NamedTuple,\\n+ Optional,\\n+ Tuple,\\n+ TYPE_CHECKING,\\n+ Union,\\n+)\\n+\\n+from eth_typing import (\\n+ Address,\\n+ Hash32,\\n+)\\n+\\n+from eth_utils import (\\n+ decode_hex,\\n+ ValidationError,\\n+)\\n+\\n+from eth.exceptions import (\\n+ VMError,\\n+)\\n+\\n+from eth.vm.opcode import (\\n+ Opcode,\\n+)\\n+\\n+if TYPE_CHECKING:\\n+ # avoid circular import\\n+ from eth.vm.computation import BaseComputation # noqa: F401\\n+ from trinity.chains.base import BaseAsyncChain # noqa: F401', 'path': 'eth/vm/tracing.py', 'position': 41, 'original_position': 41, 'commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'original_commit_id': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"This is why the lint is failing: the code imports the `trinity` module from inside `eth`. Not sure the right solution here. I can't think of a reason off-hand why the `BaseAsyncChain` couldn't live in `eth` but I don't know why it was moved out in the first place...\", 'created_at': '2018-12-13T22:42:26Z', 'updated_at': '2018-12-13T22:42:26Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241588887'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515#discussion_r241588887'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515', 'id': 233332864, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjMzMzMyODY0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1515', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1515.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1515.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515', 'number': 1515, 'state': 'open', 'locked': False, 'title': '[WIP] debug_traceTransaction endpoint implementation', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\nThere was no way to trace transactions in py-evm\\r\\n\\r\\n### How was it fixed?\\r\\nA basic tracing support was added.\\r\\n\\r\\n### Description\\r\\nNew functionality is based on a go-ethereum\\'s debug_traceTransaction logic (https://github.com/ethereum/go-ethereum/wiki/Tracing:-Introduction). Only basic parts were ported so far (e.g. no JS tracers support). Closes issue #62.\\r\\n\\r\\nList of open questions to discuss:\\r\\n- [ ] Should we drop output of computation.logger.trace as it mostly duplicates a new tracer\\'s output?\\r\\n- [ ] Find a better way to turn tracer on\\\\off (right now it\\'s a member of VM\\'s state class and we just check if it\\'s \"not None\" from a computation instance). Another way could be passing Tracer as param all the way down in chain of calls: VM.state.apply_transaction() -> execute_transaction() -> TransactionExecutor.build_computation() -> computation.apply_computation().\\r\\n- [ ] Cross-compare output with go-ethereum tests. Problem is I can\\'t find any tests related to non-JS (basic) tracer there. I\\'ve performed cross-comparison of multiple transactions and output is identical except few bugs in geth: e.g. sometimes it initializes memory with zero after push into stack, or do not populate error field in case error fired etc).\\r\\n- [ ] \"gas\" field in response represents a total block gas usage. I believe this is a bug in geth implementation and for traceTransaction should be equal to the gas used purely by a traced transaction, not the whole block.\\r\\n- [ ] Putting main \"capture_state\" into \"finally\" block allows us to catch both error and success cases in one place. Also it\\'s the only way I\\'ve found to store a valid \"cost\" amount. In the future we shall move \"cost\" estimation calculations into Opcode\\'s \"gas_cost\" method (see \"operation\\'s gasCost gasFunc\" implementation in geth: https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump_table.go).\\r\\n', 'created_at': '2018-11-24T18:17:33Z', 'updated_at': '2018-12-13T22:42:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1a79bc4dd89dcc6328ef60c73adf8641340347d8', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'head': {'label': 'rayrapetyan:tracer', 'ref': 'tracer', 'sha': '54d587d4377e08b133d69e52a1f3ea44dfd170e2', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 153731630, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTM3MzE2MzA=', 'name': 'py-evm', 'full_name': 'rayrapetyan/py-evm', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/py-evm', 'forks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/py-evm/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/py-evm/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/py-evm/deployments', 'created_at': '2018-10-19T05:37:29Z', 'updated_at': '2018-12-11T19:13:20Z', 'pushed_at': '2018-12-13T21:13:17Z', 'git_url': 'git://github.com/rayrapetyan/py-evm.git', 'ssh_url': 'git@github.com:rayrapetyan/py-evm.git', 'clone_url': 'https://github.com/rayrapetyan/py-evm.git', 'svn_url': 'https://github.com/rayrapetyan/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6535, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'f6162987c03ae6f6c52724061b2ad80710faf694', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T22:33:48Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1515'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1515/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1515/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/54d587d4377e08b133d69e52a1f3ea44dfd170e2'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:42:26Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751545833', 'type': 'PullRequestEvent', 'actor': {'id': 6540608, 'login': 'kclowes', 'display_login': 'kclowes', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'avatar_url': 'https://avatars.githubusercontent.com/u/6540608?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1162, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162', 'id': 238556522, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU2NTIy', 'html_url': 'https://github.com/ethereum/web3.py/pull/1162', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1162.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1162.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162', 'number': 1162, 'state': 'open', 'locked': False, 'title': 'Add a yaml file for Read the Docs', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'body': \"### What was wrong?\\r\\nRead the Docs build is failing because it's running Python 3.5.2 and we specify that we need Python 3.5.3 or higher.\\r\\n\\r\\n\\r\\n### How was it fixed?\\r\\nAdded a .readthedocs.yml file\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![image7](https://user-images.githubusercontent.com/6540608/49971978-94aefb80-feed-11e8-8951-7be60971eab5.jpg)\\r\\n\", 'created_at': '2018-12-13T22:42:15Z', 'updated_at': '2018-12-13T22:42:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'head': {'label': 'kclowes:add-rtd-yml', 'ref': 'add-rtd-yml', 'sha': '301b3a5e93c08f875adb48f65bd78cd0c13ba081', 'user': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 159694446, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNTk2OTQ0NDY=', 'name': 'web3.py', 'full_name': 'kclowes/web3.py', 'private': False, 'owner': {'login': 'kclowes', 'id': 6540608, 'node_id': 'MDQ6VXNlcjY1NDA2MDg=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6540608?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/kclowes', 'html_url': 'https://github.com/kclowes', 'followers_url': 'https://api.github.com/users/kclowes/followers', 'following_url': 'https://api.github.com/users/kclowes/following{/other_user}', 'gists_url': 'https://api.github.com/users/kclowes/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/kclowes/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/kclowes/subscriptions', 'organizations_url': 'https://api.github.com/users/kclowes/orgs', 'repos_url': 'https://api.github.com/users/kclowes/repos', 'events_url': 'https://api.github.com/users/kclowes/events{/privacy}', 'received_events_url': 'https://api.github.com/users/kclowes/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/kclowes/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/kclowes/web3.py', 'forks_url': 'https://api.github.com/repos/kclowes/web3.py/forks', 'keys_url': 'https://api.github.com/repos/kclowes/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/kclowes/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/kclowes/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/kclowes/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/kclowes/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/kclowes/web3.py/events', 'assignees_url': 'https://api.github.com/repos/kclowes/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/kclowes/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/kclowes/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/kclowes/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/kclowes/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/kclowes/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/kclowes/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/kclowes/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/kclowes/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/kclowes/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/kclowes/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/kclowes/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/kclowes/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/kclowes/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/kclowes/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/kclowes/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/kclowes/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/kclowes/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/kclowes/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/kclowes/web3.py/merges', 'archive_url': 'https://api.github.com/repos/kclowes/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/kclowes/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/kclowes/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/kclowes/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/kclowes/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/kclowes/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/kclowes/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/kclowes/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/kclowes/web3.py/deployments', 'created_at': '2018-11-29T16:18:19Z', 'updated_at': '2018-11-29T16:18:22Z', 'pushed_at': '2018-12-13T22:38:19Z', 'git_url': 'git://github.com/kclowes/web3.py.git', 'ssh_url': 'git@github.com:kclowes/web3.py.git', 'clone_url': 'https://github.com/kclowes/web3.py.git', 'svn_url': 'https://github.com/kclowes/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3069, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T22:07:30Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 110, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 110, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1162'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1162/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1162/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/301b3a5e93c08f875adb48f65bd78cd0c13ba081'}}, 'author_association': 'CONTRIBUTOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 0, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:42:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751544474', 'type': 'PushEvent', 'actor': {'id': 1699173, 'login': 'nivida', 'display_login': 'nivida', 'gravatar_id': '', 'url': 'https://api.github.com/users/nivida', 'avatar_url': 'https://avatars.githubusercontent.com/u/1699173?'}, 'repo': {'id': 24655114, 'name': 'ethereum/web3.js', 'url': 'https://api.github.com/repos/ethereum/web3.js'}, 'payload': {'push_id': 3136119495, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/ethereumProvider', 'head': '348030663754b15eee4a5442fbb7d229fadda489', 'before': 'cf128eeb6f85373e36fe562db7cf0faea7b95f09', 'commits': [{'sha': '348030663754b15eee4a5442fbb7d229fadda489', 'author': {'email': 'sam@tokenate.io', 'name': 'Samuel Furter'}, 'message': 'ProviderAdapters improved', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.js/commits/348030663754b15eee4a5442fbb7d229fadda489'}]}, 'public': True, 'created_at': '2018-12-13T22:41:57Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751543759', 'type': 'IssueCommentEvent', 'actor': {'id': 15605026, 'login': 'halfalicious', 'display_login': 'halfalicious', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'avatar_url': 'https://avatars.githubusercontent.com/u/15605026?'}, 'repo': {'id': 15460666, 'name': 'ethereum/aleth', 'url': 'https://api.github.com/repos/ethereum/aleth'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'repository_url': 'https://api.github.com/repos/ethereum/aleth', 'labels_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/comments', 'events_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380/events', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'id': 387296304, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM1ODE2ODE2', 'number': 5380, 'title': 'Validate PONGs', 'user': {'login': 'gumb0', 'id': 1863135, 'node_id': 'MDQ6VXNlcjE4NjMxMzU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1863135?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/gumb0', 'html_url': 'https://github.com/gumb0', 'followers_url': 'https://api.github.com/users/gumb0/followers', 'following_url': 'https://api.github.com/users/gumb0/following{/other_user}', 'gists_url': 'https://api.github.com/users/gumb0/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/gumb0/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/gumb0/subscriptions', 'organizations_url': 'https://api.github.com/users/gumb0/orgs', 'repos_url': 'https://api.github.com/users/gumb0/repos', 'events_url': 'https://api.github.com/users/gumb0/events{/privacy}', 'received_events_url': 'https://api.github.com/users/gumb0/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2018-12-04T13:53:16Z', 'updated_at': '2018-12-13T22:41:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/aleth/pulls/5380', 'html_url': 'https://github.com/ethereum/aleth/pull/5380', 'diff_url': 'https://github.com/ethereum/aleth/pull/5380.diff', 'patch_url': 'https://github.com/ethereum/aleth/pull/5380.patch'}, 'body': \"Addresses point 1 of https://github.com/ethereum/aleth/issues/4959\\r\\nSaves info about every PING sent into `m_sentPings`; then validates each received PONG against the saved hash.\\r\\n\\r\\nNext steps:\\r\\n- more unit tests for timeouts and for evictions https://github.com/ethereum/aleth/pull/5390;\\r\\n- Save last PONG time into `network.rlp` with each node (currently it trusts `network.rlp` to have valid nodes and doesn't re-PING them after aleth restart)\"}, 'comment': {'url': 'https://api.github.com/repos/ethereum/aleth/issues/comments/447147651', 'html_url': 'https://github.com/ethereum/aleth/pull/5380#issuecomment-447147651', 'issue_url': 'https://api.github.com/repos/ethereum/aleth/issues/5380', 'id': 447147651, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0NzY1MQ==', 'user': {'login': 'halfalicious', 'id': 15605026, 'node_id': 'MDQ6VXNlcjE1NjA1MDI2', 'avatar_url': 'https://avatars1.githubusercontent.com/u/15605026?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/halfalicious', 'html_url': 'https://github.com/halfalicious', 'followers_url': 'https://api.github.com/users/halfalicious/followers', 'following_url': 'https://api.github.com/users/halfalicious/following{/other_user}', 'gists_url': 'https://api.github.com/users/halfalicious/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/halfalicious/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/halfalicious/subscriptions', 'organizations_url': 'https://api.github.com/users/halfalicious/orgs', 'repos_url': 'https://api.github.com/users/halfalicious/repos', 'events_url': 'https://api.github.com/users/halfalicious/events{/privacy}', 'received_events_url': 'https://api.github.com/users/halfalicious/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:41:47Z', 'updated_at': '2018-12-13T22:41:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"> \\r\\n> \\r\\n> For some unknown reason I don't see any log output anymore when running under VS debugger, this sucks...\\r\\n> Running debug build without debugger outputs log as usual.\\r\\n\\r\\nI think that's an issue with your VS, I built master and saw log output in both VS 2015 and WinDBG.\"}}, 'public': True, 'created_at': '2018-12-13T22:41:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751531812', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136112801, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'before': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'commits': [{'sha': 'c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: yaml syntax fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/c0b86666a214dbf3ee58e432aaa5c83a01cb2a5c'}]}, 'public': True, 'created_at': '2018-12-13T22:39:13Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751529594', 'type': 'PullRequestEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'action': 'opened', 'number': 22, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22', 'id': 238555674, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTU1Njc0', 'html_url': 'https://github.com/ethereum/retesteth/pull/22', 'diff_url': 'https://github.com/ethereum/retesteth/pull/22.diff', 'patch_url': 'https://github.com/ethereum/retesteth/pull/22.patch', 'issue_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22', 'number': 22, 'state': 'open', 'locked': False, 'title': 'rpc tests wip', 'user': {'login': 'winsvega', 'id': 4492341, 'node_id': 'MDQ6VXNlcjQ0OTIzNDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/4492341?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'html_url': 'https://github.com/winsvega', 'followers_url': 'https://api.github.com/users/winsvega/followers', 'following_url': 'https://api.github.com/users/winsvega/following{/other_user}', 'gists_url': 'https://api.github.com/users/winsvega/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/winsvega/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/winsvega/subscriptions', 'organizations_url': 'https://api.github.com/users/winsvega/orgs', 'repos_url': 'https://api.github.com/users/winsvega/repos', 'events_url': 'https://api.github.com/users/winsvega/events{/privacy}', 'received_events_url': 'https://api.github.com/users/winsvega/received_events', 'type': 'User', 'site_admin': False}, 'body': 'A basic rpc test suite to check if client support certain rpc methods and handles the interface.\\r\\nCheck the structure of returned RPC response from the client.', 'created_at': '2018-12-13T22:38:44Z', 'updated_at': '2018-12-13T22:38:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'head': {'label': 'ethereum:rpcsuite', 'ref': 'rpcsuite', 'sha': '3cdfa0359400cb32dcd1550207cb67eaf63eb8c4', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': 'dbf47e74a1c03b120a27ddc1dfafde52f3dbf0b1', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 122337656, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjIzMzc2NTY=', 'name': 'retesteth', 'full_name': 'ethereum/retesteth', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/retesteth', 'description': 'testeth via RPC', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/retesteth', 'forks_url': 'https://api.github.com/repos/ethereum/retesteth/forks', 'keys_url': 'https://api.github.com/repos/ethereum/retesteth/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/retesteth/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/retesteth/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/retesteth/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/retesteth/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/retesteth/events', 'assignees_url': 'https://api.github.com/repos/ethereum/retesteth/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/retesteth/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/retesteth/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/retesteth/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/retesteth/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/retesteth/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/retesteth/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/retesteth/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/retesteth/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/retesteth/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/retesteth/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/retesteth/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/retesteth/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/retesteth/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/retesteth/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/retesteth/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/retesteth/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/retesteth/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/retesteth/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/retesteth/merges', 'archive_url': 'https://api.github.com/repos/ethereum/retesteth/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/retesteth/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/retesteth/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/retesteth/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/retesteth/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/retesteth/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/retesteth/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/retesteth/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/retesteth/deployments', 'created_at': '2018-02-21T13:07:55Z', 'updated_at': '2018-12-13T20:16:26Z', 'pushed_at': '2018-12-13T22:37:33Z', 'git_url': 'git://github.com/ethereum/retesteth.git', 'ssh_url': 'git@github.com:ethereum/retesteth.git', 'clone_url': 'https://github.com/ethereum/retesteth.git', 'svn_url': 'https://github.com/ethereum/retesteth', 'homepage': None, 'size': 281, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'open_issues_count': 14, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1, 'open_issues': 14, 'watchers': 5, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22'}, 'html': {'href': 'https://github.com/ethereum/retesteth/pull/22'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/issues/22/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/retesteth/pulls/22/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/retesteth/statuses/3cdfa0359400cb32dcd1550207cb67eaf63eb8c4'}}, 'author_association': 'COLLABORATOR', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 479, 'deletions': 302, 'changed_files': 9}}, 'public': True, 'created_at': '2018-12-13T22:38:44Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751524322', 'type': 'CreateEvent', 'actor': {'id': 4492341, 'login': 'winsvega', 'display_login': 'winsvega', 'gravatar_id': '', 'url': 'https://api.github.com/users/winsvega', 'avatar_url': 'https://avatars.githubusercontent.com/u/4492341?'}, 'repo': {'id': 122337656, 'name': 'ethereum/retesteth', 'url': 'https://api.github.com/repos/ethereum/retesteth'}, 'payload': {'ref': 'rpcsuite', 'ref_type': 'branch', 'master_branch': 'master', 'description': 'testeth via RPC', 'pusher_type': 'user'}, 'public': True, 'created_at': '2018-12-13T22:37:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751495938', 'type': 'PushEvent', 'actor': {'id': 47108, 'login': 'evertonfraga', 'display_login': 'evertonfraga', 'gravatar_id': '', 'url': 'https://api.github.com/users/evertonfraga', 'avatar_url': 'https://avatars.githubusercontent.com/u/47108?'}, 'repo': {'id': 152745337, 'name': 'ethereum/mist-shell', 'url': 'https://api.github.com/repos/ethereum/mist-shell'}, 'payload': {'push_id': 3136094228, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/circleci-mac', 'head': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'before': '877d777ec16cf0d26dc3231018f0c92f2a5a6871', 'commits': [{'sha': '0dfc465235f24a07550e70afc620aafd1cdf3650', 'author': {'email': 'ev@ethereum.org', 'name': 'Everton Fraga'}, 'message': 'CI: add workflow config', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/mist-shell/commits/0dfc465235f24a07550e70afc620aafd1cdf3650'}]}, 'public': True, 'created_at': '2018-12-13T22:31:24Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479824', 'type': 'IssuesEvent', 'actor': {'id': 8933231, 'login': 'dylanjw', 'display_login': 'dylanjw', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'avatar_url': 'https://avatars.githubusercontent.com/u/8933231?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1161/events', 'html_url': 'https://github.com/ethereum/web3.py/issues/1161', 'id': 390888070, 'node_id': 'MDU6SXNzdWUzOTA4ODgwNzA=', 'number': 1161, 'title': 'web3 async discussion continued', 'user': {'login': 'dylanjw', 'id': 8933231, 'node_id': 'MDQ6VXNlcjg5MzMyMzE=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/8933231?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dylanjw', 'html_url': 'https://github.com/dylanjw', 'followers_url': 'https://api.github.com/users/dylanjw/followers', 'following_url': 'https://api.github.com/users/dylanjw/following{/other_user}', 'gists_url': 'https://api.github.com/users/dylanjw/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dylanjw/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dylanjw/subscriptions', 'organizations_url': 'https://api.github.com/users/dylanjw/orgs', 'repos_url': 'https://api.github.com/users/dylanjw/repos', 'events_url': 'https://api.github.com/users/dylanjw/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dylanjw/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T22:28:08Z', 'updated_at': '2018-12-13T22:28:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': 'This issue supersedes #1055. \\r\\n\\r\\nIve summarized our discussion re the introduction of an async web3 api below, and expanded it a bit. After learning from experiments in #1088 we discussed pursuing the following design:\\r\\n\\r\\n(1) Replace api methods with instances of a Method class, with a middleware like layer for formatting/normalizing/validating method input/output.\\r\\n This will allow the procedural formatting code to be reused between async and sync api methods.\\r\\n\\r\\n\\r\\n(2) Reduce middlewares to only those that make calls to the web3 api, moving the formatting middlewares to the Method input/output formatters.\\r\\n Having fewer middlewares reduces maintenance overhead of duplicate async variants.\\r\\n\\r\\n\\r\\n(3) Separate async and sync execution pathway through RequestManagers -> middlewares -> providers.\\r\\n Async code needs to be purely async from the top api entry-point, all the way to the request. Sync code similarly needs to be purely sync. Converting async to sync code by running in a event loop incurred to much overhead.\\r\\n\\r\\n\\r\\n\\r\\n### First milestone: Minimum async call stack that gets the node version. No middlewares or other special features.\\r\\n\\r\\nAny comments on this api?\\r\\n\\r\\n```\\r\\nimport asyncio\\r\\nfrom web3.providers import coro\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=False) <-- Raises exception \\r\\n# \"TypeError, cant use async provider in a synchronous Web3 instance.\")\\r\\n\\r\\naw3 = web3.Web3(coro.IPCProvider(), async=True)\\r\\nasyncio.run(aw3.version.node())\\r\\n```\\r\\n\\r\\nIm leaning toward sharing the Web3 and RequestManager classes and having an `async` setting that will set the manager request method to the async execution path, and load the default async web3 modules. The providers (and eventually middlewares) will be set by the user, and will be checked to be async compatible.\\r\\n\\r\\nTODO:\\r\\n- [ ] Add a single async provider (coro.EthereumTesterProvider?).\\r\\n- [ ] add async RequestManager execution pathway: request function -> middleware stack -> provider.\\r\\n- [ ] Design and implement Method classes. \\r\\n\\r\\n I propose extracting the method configuration and method selection into a \"MethodManager\" object that will return either the async or sync callable. A modified \\\\_\\\\_getattr\\\\_\\\\_ will hand over control to the method_manager. Modules will simply compose the right pieces:\\r\\n\\r\\n```\\r\\nclass AsyncVersion(Module, Meta=MetaModule):\\r\\n method_caller = AsyncMethod\\r\\n method_manager = MethodManager(VERSION_METHOD_CONFIG)\\r\\n```\\r\\n\\r\\nI may have to use a meta class to change \\\\_\\\\_getattr\\\\_\\\\_ for the class.\\r\\n\\r\\n```\\r\\nclass MetaModule(type):\\r\\n @property\\r\\n def method_caller():\\r\\n raise NotImplementedError\\r\\n @property\\r\\n def method_manager():\\r\\n raise NotImplementedError\\r\\n def __getattr__(cls, attr):\\r\\n if attr not in cls.method_config:\\r\\n raise AttributeError\\r\\n return method_manager.get_method(attr)\\r\\n```\\r\\n\\r\\n- [ ] Method middleware manager. I think this needs to be more robust than a list. There is complexity with methods that select the json_rpc method string based on the input parameters. Some of these may need a different set of formatters for each selected method. Maybe this can be put off until a more featureful module is worked on.\\r\\n\\r\\n- [ ] Implement async Version module.\\r\\n- [ ] Implement async setting for Web3, to set async request function and default async modules.\\r\\n- [ ] Check provider is async compatible.\\r\\n- [ ] ?Implement sync Version module using Method class.? Implementing the above action items can be done while affecting the existing api as little as possible. However, it might be a good idea to demo how the existing sync modules will change.'}}, 'public': True, 'created_at': '2018-12-13T22:28:08Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751479546', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873', 'pull_request_review_id': 184898188, 'id': 241584873, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU4NDg3Mw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Plus, isn't the litmus test test that if we ever would decide to move the beacon client into its entirely own project (instead of just maintaining a separate entry point / bootstrapping in the same code base) then we would for sure use a different root directory anyway? So, this would make a potential migrating easier long term by treating them as two different programs right from the start.\", 'created_at': '2018-12-13T22:28:05Z', 'updated_at': '2018-12-13T22:28:05Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241584873'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241584873'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:28:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 335, 'mirror_url': None, 'archived': False, 'open_issues_count': 162, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 335, 'open_issues': 162, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:28:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457988', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 4, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:49Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751457971', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152', 'id': 348312576, 'node_id': 'MDU6SXNzdWUzNDgzMTI1NzY=', 'number': 1152, 'title': 'Enable state tests for constantinople', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 631592722, 'node_id': 'MDU6TGFiZWw2MzE1OTI3MjI=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/Good%20First%20Issue', 'name': 'Good First Issue', 'color': '0e8a16', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983616758, 'node_id': 'MDU6TGFiZWw5ODM2MTY3NTg=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20tests', 'name': 'type: tests', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 0, 'closed_issues': 7, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:48Z', 'due_on': None, 'closed_at': None}, 'comments': 3, 'created_at': '2018-08-07T13:05:46Z', 'updated_at': '2018-12-13T22:23:48Z', 'closed_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': '### What is wrong?\\r\\n\\r\\nWe currently do not run state tests against Constantinople. \\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\n- Pin the `fixtures` submodule to a newer version that contains the Constantinople tests (lookup which version geth is pinned against)\\r\\n- Configure tests to run\\r\\n- Make tests green\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142325', 'html_url': 'https://github.com/ethereum/py-evm/issues/1152#issuecomment-447142325', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1152', 'id': 447142325, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjMyNQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:48Z', 'updated_at': '2018-12-13T22:23:48Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455096', 'type': 'IssuesEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 8, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751455085', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105', 'id': 345238734, 'node_id': 'MDU6SXNzdWUzNDUyMzg3MzQ=', 'number': 1105, 'title': 'EIP1283 - Net gas metering', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 983613604, 'node_id': 'MDU6TGFiZWw5ODM2MTM2MDQ=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20eth', 'name': 'comp: eth', 'color': 'bfd4f2', 'default': False}, {'id': 983629919, 'node_id': 'MDU6TGFiZWw5ODM2Mjk5MTk=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/effort:%20E2%20days', 'name': 'effort: E2 days', 'color': 'bfe5bf', 'default': False}, {'id': 983627565, 'node_id': 'MDU6TGFiZWw5ODM2Mjc1NjU=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/prio:%20P2%20required', 'name': 'prio: P2 required', 'color': 'f7c6c7', 'default': False}, {'id': 983614747, 'node_id': 'MDU6TGFiZWw5ODM2MTQ3NDc=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/type:%20feature', 'name': 'type: feature', 'color': 'eeeeee', 'default': False}], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': {'url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2', 'html_url': 'https://github.com/ethereum/py-evm/milestone/2', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/milestones/2/labels', 'id': 3357556, 'node_id': 'MDk6TWlsZXN0b25lMzM1NzU1Ng==', 'number': 2, 'title': 'Constantinople', 'description': 'Constantinople Things', 'creator': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'open_issues': 1, 'closed_issues': 6, 'state': 'open', 'created_at': '2018-05-18T15:20:36Z', 'updated_at': '2018-12-13T22:23:14Z', 'due_on': None, 'closed_at': None}, 'comments': 7, 'created_at': '2018-07-27T14:03:51Z', 'updated_at': '2018-12-13T22:23:14Z', 'closed_at': '2018-12-13T22:23:14Z', 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n~~ttps://eips.ethereum.org/EIPS/eip-1087~~\\r\\nhttps://eips.ethereum.org/EIPS/eip-1283 is coming in Constantinople\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nImplement the changes to how `SSTORE` costs are computed.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447142163', 'html_url': 'https://github.com/ethereum/py-evm/issues/1105#issuecomment-447142163', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1105', 'id': 447142163, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzE0MjE2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:23:14Z', 'updated_at': '2018-12-13T22:23:14Z', 'author_association': 'CONTRIBUTOR', 'body': 'Confirmed finished in #1579 '}}, 'public': True, 'created_at': '2018-12-13T22:23:14Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751404945', 'type': 'WatchEvent', 'actor': {'id': 453776, 'login': 'ur5us', 'display_login': 'ur5us', 'gravatar_id': '', 'url': 'https://api.github.com/users/ur5us', 'avatar_url': 'https://avatars.githubusercontent.com/u/453776?'}, 'repo': {'id': 29512034, 'name': 'ethereum/devp2p', 'url': 'https://api.github.com/repos/ethereum/devp2p'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:13:36Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751388340', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 4, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T22:10:18Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447138564', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447138564', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447138564, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzODU2NA==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T22:10:18Z', 'updated_at': '2018-12-13T22:10:18Z', 'author_association': 'MEMBER', 'body': 'In theory we could offload this validation into a separate worker process and let it run while we \"optimistically\" sync with the peer. Even in the 3-million header case we\\'d waste ~10 minutes after which we\\'d abort syncing with the peer and blacklist them (if we ever get around to implementing #893 )'}}, 'public': True, 'created_at': '2018-12-13T22:10:18Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751375542', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431', 'pull_request_review_id': 184891372, 'id': 241579431, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTQzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">or the network they are part of.\\r\\n\\r\\nCan we really say that the beacon node and the Ethereum are in the same network? All the different shards that a beacon node would download could sure all live under one `trinity-beacon/mainnet/shard-0|shard-1|...` space but since shards do not exist in Ethereum 1 it feels natural to me to just use `//` as a new schema for the beacon node.\\r\\n\\r\\nI think the two primary reasons why I'd be in favor of a different `` rather than changing the existing schema are:\\r\\n\\r\\n1. It currently looks like `trinity-beacon` will be a different executable, a different program that just builds on a shared code base. So in that sense, a different root dir makes most sense to me.\\r\\n\\r\\n2. Changing the existing schema is a hard breaking change (sure we could detect and migrate existing data directories but still)\", 'created_at': '2018-12-13T22:07:48Z', 'updated_at': '2018-12-13T22:07:48Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579431'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579431'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:48Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:48Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373949', 'type': 'PullRequestEvent', 'actor': {'id': 791437, 'login': 'davesque', 'display_login': 'davesque', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'avatar_url': 'https://avatars.githubusercontent.com/u/791437?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'opened', 'number': 1160, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160', 'id': 238548055, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTQ4MDU1', 'html_url': 'https://github.com/ethereum/web3.py/pull/1160', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1160.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1160.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160', 'number': 1160, 'state': 'open', 'locked': False, 'title': 'Remove unreachable code', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Also, remove unnecessary else clause that tends to obscure that code.\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nThere was an `assert False` statement which was unreachable. It was clearly expected that this statement was not supposed to be reached in a \"normal\" situation. However, I don\\'t think it was realized that the statement could never be reach in *any* situation.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nDeleted it.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![Put a link to a cute animal picture inside the parenthesis-->](https://pixfeeds.com/images/2/181315/1200-454090919-panda-eating-bamboo.jpg)\\r\\n', 'created_at': '2018-12-13T22:07:30Z', 'updated_at': '2018-12-13T22:07:30Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'head': {'label': 'davesque:unreachable', 'ref': 'unreachable', 'sha': '2c782a9e64c16a715f0bb5a0c93b799bbfaf961d', 'user': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 125084006, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjUwODQwMDY=', 'name': 'web3.py', 'full_name': 'davesque/web3.py', 'private': False, 'owner': {'login': 'davesque', 'id': 791437, 'node_id': 'MDQ6VXNlcjc5MTQzNw==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/791437?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/davesque', 'html_url': 'https://github.com/davesque', 'followers_url': 'https://api.github.com/users/davesque/followers', 'following_url': 'https://api.github.com/users/davesque/following{/other_user}', 'gists_url': 'https://api.github.com/users/davesque/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/davesque/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/davesque/subscriptions', 'organizations_url': 'https://api.github.com/users/davesque/orgs', 'repos_url': 'https://api.github.com/users/davesque/repos', 'events_url': 'https://api.github.com/users/davesque/events{/privacy}', 'received_events_url': 'https://api.github.com/users/davesque/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/davesque/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/davesque/web3.py', 'forks_url': 'https://api.github.com/repos/davesque/web3.py/forks', 'keys_url': 'https://api.github.com/repos/davesque/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/davesque/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/davesque/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/davesque/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/davesque/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/davesque/web3.py/events', 'assignees_url': 'https://api.github.com/repos/davesque/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/davesque/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/davesque/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/davesque/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/davesque/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/davesque/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/davesque/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/davesque/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/davesque/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/davesque/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/davesque/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/davesque/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/davesque/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/davesque/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/davesque/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/davesque/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/davesque/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/davesque/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/davesque/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/davesque/web3.py/merges', 'archive_url': 'https://api.github.com/repos/davesque/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/davesque/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/davesque/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/davesque/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/davesque/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/davesque/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/davesque/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/davesque/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/davesque/web3.py/deployments', 'created_at': '2018-03-13T16:44:52Z', 'updated_at': '2018-12-13T18:33:38Z', 'pushed_at': '2018-12-13T22:04:01Z', 'git_url': 'git://github.com/davesque/web3.py.git', 'ssh_url': 'git@github.com:davesque/web3.py.git', 'clone_url': 'https://github.com/davesque/web3.py.git', 'svn_url': 'https://github.com/davesque/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2976, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:52:53Z', 'pushed_at': '2018-12-13T21:52:50Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3080, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 108, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 108, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1160'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1160/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1160/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/2c782a9e64c16a715f0bb5a0c93b799bbfaf961d'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, 'deletions': 5, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T22:07:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751373741', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345', 'pull_request_review_id': 184891254, 'id': 241579345, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3OTM0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"> I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway\\r\\n\\r\\nI think this suggests otherwise:\\r\\n\\r\\nhttps://github.com/ethereum/py-evm/blob/751c856953060d68ae7be2c62306d11935e32345/trinity/utils/chains.py#L123-L163\\r\\n\\r\\nIn the case of `__init__(args, trinity_config)` the result is that the `__init__` method must parse and normalize the values from the `argparse.Namespace` object which I would argue is a bad coupling, binding it to the CLI\\r\\n\\r\\nIn the case of `__init__(trinity_config, arg_1, arg_2, ...)` and `Config.from_parser_args(args, trinity_config)` we still have *coupling* but it is looser and keeps the `cli_args -> init_args` conversion from bleeding into the actual configuration objects implementation.\\r\\n\\r\\nA **lot** of my reasoning is centered around how the `Config` classes are tested so admittedly this doesn't have much effect on the end result as far as production code goes.\\r\\n\\r\\nI'm :+1: on whatever you decide.\", 'created_at': '2018-12-13T22:07:27Z', 'updated_at': '2018-12-13T22:07:27Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241579345'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241579345'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T22:07:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T22:07:27Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751344970', 'type': 'WatchEvent', 'actor': {'id': 39542240, 'login': 'Jeongjaegu', 'display_login': 'Jeongjaegu', 'gravatar_id': '', 'url': 'https://api.github.com/users/Jeongjaegu', 'avatar_url': 'https://avatars.githubusercontent.com/u/39542240?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T22:02:02Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751326666', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568', 'id': 389528377, 'node_id': 'MDU6SXNzdWUzODk1MjgzNzc=', 'number': 1568, 'title': 'Deal with malicious clients that lie about high TD, send otherwise valid headers', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'assignees': [{'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}], 'milestone': None, 'comments': 3, 'created_at': '2018-12-10T23:14:45Z', 'updated_at': '2018-12-13T21:58:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '> Our goal was to find a solution for malicious clients which falsely advertise a high TD for a valid chain of headers which is on a fork.\\r\\n\\r\\n## Solution TL;DR\\r\\n\\r\\nThe proposed solution is to validate a peer\\'s TD by calculating the protocol\\'s upper bound on difficulty based on block number, like so:\\r\\n\\r\\n1. Request the tip header from the peer to get the tip\\'s block number (we can calculate a TD bound here, but the exponential nature of difficulty means the bound is probably too high to help)\\r\\n2. Request headers with a large `skip` value, spread across the chain, validate the difficulty has changed by a valid amount across headers and calculate the new maximum TD.\\r\\n3. Continue requesting headers to fill in the largest gaps, until either: we have disproven the peer\\'s claimed TD or the TD seems plausible\\r\\n\\r\\nA nice optimization would be to only run this check if we have peers that disagree about the canonical chain, so we don\\'t slow down sync in the happy path.\\r\\n\\r\\n## Calculating the upper bounds.\\r\\n\\r\\nWe can calculate the maximum TD given a skeleton of headers in a couple different ways:\\r\\n\\r\\n1. We could reuse the existing difficulty methods to generate the maximum growth (feeding in a 0 timestamp difference for every skipped header)\\r\\n - pro: not much new code for TD generation\\r\\n - con: no easy way to calculate the *true* upper bound on TD, which requires dropping the difficulty again at just the right amount to return to the next header\\'s difficulty value. This has a significant impact on TD\\r\\n - con: slow (calculation time ~`O(all headers in chain)`, although the constant factor should be very small)\\r\\n\\r\\n1. We could precalculate the TD growth factor over N blocks, and request predictable skip values:\\r\\n - pro: fast (calculation time improves from `O(all headers in chain)` to `O(number of headers requested from peer)`, which should be about `O(log(all headers in chain))`.\\r\\n - con: predictable means easier to game on the other side\\r\\n - con: the naive way to do this ignores fork differences, the non-naive way looks like solution 3\\r\\n\\r\\n3. We could add a custom fork method to calculate the \"closed form\" solution for maximum TD between two given headers\\r\\n - pro: fast\\r\\n - pro: can choose to request unpredictable headers, to make life hard for naughty peers\\r\\n - con: most new code for TD generation, requires another new method for every new fork\\r\\n\\r\\n_I think I convinced myself that the best solution is the one that requires the most new code, unfortunately, # 3. I\\'ll start hacking at it and see how it looks._\\r\\n\\r\\n## Plausible TD\\r\\n\\r\\nWhen can we consider the Total Difficulty plausible? (This is mostly an optimization game, the most subjective part of the solution.)\\r\\n\\r\\nNote that our *full* skeleton sync will ask for one header every ~192, so if we keep asking the peer down to that skip value, then we don\\'t save ourselves any work to ask for a smaller skip number. If the TD is still in bounds at that point, then we should just try syncing and see what happens.\\r\\n\\r\\nSo how many will we probably be able to get away with? By my back-of-the-envelope numbers, the difficulty can go up by 10x in ~4.7k blocks, or up by 2x in ~1.4k blocks. So, roughly, a fork chain would have to do at least one tenth the PoW as the main chain to fool us at a spread of 4.7k blocks, or half as much total PoW as the main chain to fool us at 1.4k block spreads. (This is pessimistic by quite a bit, because it assumes that \"total difficulty\" ~== difficulty of the final block, so we can probably do at least 2x better)\\r\\n\\r\\n## The Ropsten-specific case\\r\\n\\r\\nBefore fully implementing, it would be cool to get more information from this [\"TD lying\" peer on Ropsten](https://github.com/ethereum/py-evm/issues/1324#issuecomment-425192348), like:\\r\\n- announced TD\\r\\n- the tip header info (especially block number)\\r\\n\\r\\nIt would be nice to see how well this would work, in a real example.\\r\\n\\r\\n_Originally posted by @carver in https://github.com/ethereum/py-evm/pull/1392#issuecomment-442253267_'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447135463', 'html_url': 'https://github.com/ethereum/py-evm/issues/1568#issuecomment-447135463', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1568', 'id': 447135463, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzNTQ2Mw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:58:28Z', 'updated_at': '2018-12-13T21:58:28Z', 'author_association': 'CONTRIBUTOR', 'body': \"Interesting, so the Ropsten fork starts around 2.9M and goes to at least 3M+ (but I don't know how far). The 100k headers would be short-ish to calculate, but the 3M would be rough.\"}}, 'public': True, 'created_at': '2018-12-13T21:58:28Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751322151', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 521109, 'login': 'cburgdorf', 'display_login': 'cburgdorf', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'avatar_url': 'https://avatars.githubusercontent.com/u/521109?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531', 'pull_request_review_id': 184887699, 'id': 241576531, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NjUzMQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': \">I don't see a clear benefit\\r\\n\\r\\nThe benefit would be not having to implement `from_parser_args` and `__init__` in every `AppConfig`\\r\\n\\r\\n>it's an attempt at establishing an abstraction when I don't think we really know what the abstraction looks like...\\r\\n\\r\\nMmmh...I think most `AppConfig` implementations will just take the `args` and the `trinity_config` in their `__init__` anyway or what are the cases where you see them taking other things (especially considering, that they all origin in a top level `from_parser_args` call from the `TrinityConfig`\\r\\n\\r\\n>t results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nWell, without this abstraction, we will just have the exact same `__init__` with ` argsparse.Namespace` on every implementation of `AppConfig`\\r\\n\", 'created_at': '2018-12-13T21:57:31Z', 'updated_at': '2018-12-13T21:57:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241576531'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241576531'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:57:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e9a2564b2f765380816ccc3f115077e25d54742c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:57:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751308376', 'type': 'WatchEvent', 'actor': {'id': 150418, 'login': 'alexwanng', 'display_login': 'alexwanng', 'gravatar_id': '', 'url': 'https://api.github.com/users/alexwanng', 'avatar_url': 'https://avatars.githubusercontent.com/u/150418?'}, 'repo': {'id': 15409820, 'name': 'ethereum/pyethereum', 'url': 'https://api.github.com/repos/ethereum/pyethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:54:43Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751302449', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295', 'pull_request_review_id': 184886166, 'id': 241575295, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NTI5NQ==', 'diff_hunk': \"@@ -32,6 +32,8 @@ commands=\\n beacon: pytest {posargs:tests/beacon/}\\n # The following test seems to consume a lot of memory. Restricting to 3 processes reduces crashes\\n rpc-state-byzantium: pytest -n3 {posargs:tests/trinity/json-fixtures-over-rpc/test_rpc_fixtures.py -k 'GeneralStateTests and not stQuadraticComplexityTest and Byzantium'}\\n+ # Uncomment the next line + modify test_rpc_fixtures.py when Constantinople is included in the mainnet config\", 'path': 'tox.ini', 'position': 13, 'original_position': 13, 'commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'original_commit_id': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Kinda figured, but also didn't want to hold up the release over it.\", 'created_at': '2018-12-13T21:53:31Z', 'updated_at': '2018-12-13T21:53:31Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241575295'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579#discussion_r241575295'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}}, 'in_reply_to_id': 241491695}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579', 'id': 237874474, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3ODc0NDc0', 'html_url': 'https://github.com/ethereum/py-evm/pull/1579', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1579.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1579.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579', 'number': 1579, 'state': 'closed', 'locked': False, 'title': 'Update ethereum/tests fixtures to v6.0.0-beta.2 + fix revealed consensus failures', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\n`py-evm` doesn\\'t yet pass the full Constantinople test suite.\\r\\n\\r\\nThis started as a copy of PR #1181, so that Christoph doesn\\'t have to act as a gatekeeper for every tiny fix I propose.\\r\\n\\r\\nCloses #1181 as superseded/conflicting.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nThe PR updates the upstream `ethereum/tests` (git sub-module in dir `fixtures`), enables tests for Constantinople, and fixes the breaks introduced by that.\\r\\n\\r\\nNOTE: some test are very slow or consume a lot of memory, making it impossible to pass CI on CircleCI\\'s \"open source contributor\" tier (the process gets OOM-killed). All of these are in `SLOW_TESTS`. All tests pass locally for me.\\r\\n\\r\\n### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://www.efoto.lt/files/images/7680/stir_3.preview.jpg)\\r\\n\\r\\nSource: [Valdas Augustinas @ efoto.lt](https://www.efoto.lt/node/404410)', 'created_at': '2018-12-12T00:31:01Z', 'updated_at': '2018-12-13T21:53:31Z', 'closed_at': '2018-12-13T19:15:14Z', 'merged_at': '2018-12-13T19:15:13Z', 'merge_commit_sha': '55845dd318b1198a2889df0fb80b2195d5348d93', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517', 'head': {'label': 'veox:update-fixtures-to-v6.0.0-beta.2', 'ref': 'update-fixtures-to-v6.0.0-beta.2', 'sha': 'fd537be45bafb2041c45a92f3d5240db2bc7f517', 'user': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 87534221, 'node_id': 'MDEwOlJlcG9zaXRvcnk4NzUzNDIyMQ==', 'name': 'py-evm', 'full_name': 'veox/py-evm', 'private': False, 'owner': {'login': 'veox', 'id': 3036030, 'node_id': 'MDQ6VXNlcjMwMzYwMzA=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3036030?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/veox', 'html_url': 'https://github.com/veox', 'followers_url': 'https://api.github.com/users/veox/followers', 'following_url': 'https://api.github.com/users/veox/following{/other_user}', 'gists_url': 'https://api.github.com/users/veox/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/veox/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/veox/subscriptions', 'organizations_url': 'https://api.github.com/users/veox/orgs', 'repos_url': 'https://api.github.com/users/veox/repos', 'events_url': 'https://api.github.com/users/veox/events{/privacy}', 'received_events_url': 'https://api.github.com/users/veox/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/veox/py-evm', 'description': 'An Ethereum Virtual Machine implementation separate from but inspired by PyEthereum', 'fork': True, 'url': 'https://api.github.com/repos/veox/py-evm', 'forks_url': 'https://api.github.com/repos/veox/py-evm/forks', 'keys_url': 'https://api.github.com/repos/veox/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/veox/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/veox/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/veox/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/veox/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/veox/py-evm/events', 'assignees_url': 'https://api.github.com/repos/veox/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/veox/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/veox/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/veox/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/veox/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/veox/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/veox/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/veox/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/veox/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/veox/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/veox/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/veox/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/veox/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/veox/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/veox/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/veox/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/veox/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/veox/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/veox/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/veox/py-evm/merges', 'archive_url': 'https://api.github.com/repos/veox/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/veox/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/veox/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/veox/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/veox/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/veox/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/veox/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/veox/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/veox/py-evm/deployments', 'created_at': '2017-04-07T10:22:56Z', 'updated_at': '2018-11-12T20:34:25Z', 'pushed_at': '2018-12-13T14:56:53Z', 'git_url': 'git://github.com/veox/py-evm.git', 'ssh_url': 'git@github.com:veox/py-evm.git', 'clone_url': 'https://github.com/veox/py-evm.git', 'svn_url': 'https://github.com/veox/py-evm', 'homepage': None, 'size': 6348, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:52:20Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1579'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1579/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1579/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fd537be45bafb2041c45a92f3d5240db2bc7f517'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:53:31Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299140', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'repository_url': 'https://api.github.com/repos/ethereum/web3.py', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/events', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'id': 388488502, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'number': 1156, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'closed_at': '2018-12-13T21:52:49Z', 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch'}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments/447133987', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156#issuecomment-447133987', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'id': 447133987, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzk4Nw==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:52:53Z', 'updated_at': '2018-12-13T21:52:53Z', 'author_association': 'COLLABORATOR', 'body': 'Thanks!'}}, 'public': True, 'created_at': '2018-12-13T21:52:53Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751299053', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'push_id': 3135997741, 'size': 3, 'distinct_size': 3, 'ref': 'refs/heads/master', 'head': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'before': '7266346034139e946bb07191bae6ef5542b8d4bd', 'commits': [{'sha': '3b20479ea5245a704ae0d34a20023227109f16f4', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'fix unicorn token example flakyness', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/3b20479ea5245a704ae0d34a20023227109f16f4'}, {'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'author': {'email': 'robert@adplatform.io', 'name': 'robert'}, 'message': '- improved readme file for FreeBSD support\\n\\n(cherry picked from commit 73a869b0775938a24ef61d8f8198c6a9fc7baec1)', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/53f7b44b840049824d96e1fa7be517d75deca54c'}, {'sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Merge pull request #1156 from rayrapetyan/freebsd_support\\n\\nFreebsd support: cleanup and tox fix', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/web3.py/commits/4601445d9d8ba272f2558d855c33fad11af61f9c'}]}, 'public': True, 'created_at': '2018-12-13T21:52:52Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751298815', 'type': 'PullRequestEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 56251096, 'name': 'ethereum/web3.py', 'url': 'https://api.github.com/repos/ethereum/web3.py'}, 'payload': {'action': 'closed', 'number': 1156, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156', 'id': 236742164, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2NzQyMTY0', 'html_url': 'https://github.com/ethereum/web3.py/pull/1156', 'diff_url': 'https://github.com/ethereum/web3.py/pull/1156.diff', 'patch_url': 'https://github.com/ethereum/web3.py/pull/1156.patch', 'issue_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156', 'number': 1156, 'state': 'closed', 'locked': False, 'title': 'Freebsd support: cleanup and tox fix', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n- tox fails to run because of additional include directories dependency\\r\\n- unnecessary file manipulations and downloads\\r\\n\\r\\n### How was it fixed?\\r\\n- put paths into .pydistutils.cfg\\r\\n- removed extra steps\\r\\n\\r\\n', 'created_at': '2018-12-07T03:12:53Z', 'updated_at': '2018-12-13T21:52:49Z', 'closed_at': '2018-12-13T21:52:49Z', 'merged_at': '2018-12-13T21:52:49Z', 'merge_commit_sha': '4601445d9d8ba272f2558d855c33fad11af61f9c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c', 'head': {'label': 'rayrapetyan:freebsd_support', 'ref': 'freebsd_support', 'sha': '53f7b44b840049824d96e1fa7be517d75deca54c', 'user': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 145177334, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDUxNzczMzQ=', 'name': 'web3.py', 'full_name': 'rayrapetyan/web3.py', 'private': False, 'owner': {'login': 'rayrapetyan', 'id': 4700523, 'node_id': 'MDQ6VXNlcjQ3MDA1MjM=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/4700523?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/rayrapetyan', 'html_url': 'https://github.com/rayrapetyan', 'followers_url': 'https://api.github.com/users/rayrapetyan/followers', 'following_url': 'https://api.github.com/users/rayrapetyan/following{/other_user}', 'gists_url': 'https://api.github.com/users/rayrapetyan/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/rayrapetyan/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/rayrapetyan/subscriptions', 'organizations_url': 'https://api.github.com/users/rayrapetyan/orgs', 'repos_url': 'https://api.github.com/users/rayrapetyan/repos', 'events_url': 'https://api.github.com/users/rayrapetyan/events{/privacy}', 'received_events_url': 'https://api.github.com/users/rayrapetyan/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/rayrapetyan/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': True, 'url': 'https://api.github.com/repos/rayrapetyan/web3.py', 'forks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/forks', 'keys_url': 'https://api.github.com/repos/rayrapetyan/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/rayrapetyan/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/rayrapetyan/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/rayrapetyan/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/rayrapetyan/web3.py/events', 'assignees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/rayrapetyan/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/rayrapetyan/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/rayrapetyan/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/rayrapetyan/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/rayrapetyan/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/rayrapetyan/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/rayrapetyan/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/rayrapetyan/web3.py/merges', 'archive_url': 'https://api.github.com/repos/rayrapetyan/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/rayrapetyan/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/rayrapetyan/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/rayrapetyan/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/rayrapetyan/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/rayrapetyan/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/rayrapetyan/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/rayrapetyan/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/rayrapetyan/web3.py/deployments', 'created_at': '2018-08-18T00:23:56Z', 'updated_at': '2018-12-07T02:52:43Z', 'pushed_at': '2018-12-13T03:30:58Z', 'git_url': 'git://github.com/rayrapetyan/web3.py.git', 'ssh_url': 'git@github.com:rayrapetyan/web3.py.git', 'clone_url': 'https://github.com/rayrapetyan/web3.py.git', 'svn_url': 'https://github.com/rayrapetyan/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 2985, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '24da03a535ed34767285e1f37f94c122e1c501ea', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 56251096, 'node_id': 'MDEwOlJlcG9zaXRvcnk1NjI1MTA5Ng==', 'name': 'web3.py', 'full_name': 'ethereum/web3.py', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/web3.py', 'description': 'A python interface for interacting with the Ethereum blockchain and ecosystem.', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/web3.py', 'forks_url': 'https://api.github.com/repos/ethereum/web3.py/forks', 'keys_url': 'https://api.github.com/repos/ethereum/web3.py/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/web3.py/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/web3.py/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/web3.py/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/web3.py/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/web3.py/events', 'assignees_url': 'https://api.github.com/repos/ethereum/web3.py/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/web3.py/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/web3.py/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/web3.py/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/web3.py/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/web3.py/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/web3.py/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/web3.py/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/web3.py/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/web3.py/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/web3.py/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/web3.py/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/web3.py/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/web3.py/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/web3.py/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/web3.py/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/web3.py/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/web3.py/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/web3.py/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/web3.py/merges', 'archive_url': 'https://api.github.com/repos/ethereum/web3.py/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/web3.py/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/web3.py/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/web3.py/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/web3.py/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/web3.py/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/web3.py/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/web3.py/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/web3.py/deployments', 'created_at': '2016-04-14T15:59:35Z', 'updated_at': '2018-12-13T21:02:18Z', 'pushed_at': '2018-12-13T21:52:49Z', 'git_url': 'git://github.com/ethereum/web3.py.git', 'ssh_url': 'git@github.com:ethereum/web3.py.git', 'clone_url': 'https://github.com/ethereum/web3.py.git', 'svn_url': 'https://github.com/ethereum/web3.py', 'homepage': 'http://web3py.readthedocs.io', 'size': 3073, 'stargazers_count': 1215, 'watchers_count': 1215, 'language': 'Python', 'has_issues': True, 'has_projects': False, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 433, 'mirror_url': None, 'archived': False, 'open_issues_count': 107, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 433, 'open_issues': 107, 'watchers': 1215, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156'}, 'html': {'href': 'https://github.com/ethereum/web3.py/pull/1156'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/issues/1156/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/web3.py/pulls/1156/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/web3.py/statuses/53f7b44b840049824d96e1fa7be517d75deca54c'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'comments': 3, 'review_comments': 11, 'maintainer_can_modify': False, 'commits': 2, 'additions': 39, 'deletions': 11, 'changed_files': 2}}, 'public': True, 'created_at': '2018-12-13T21:52:50Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751296252', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135996289, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '751c856953060d68ae7be2c62306d11935e32345', 'before': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'commits': [{'sha': '751c856953060d68ae7be2c62306d11935e32345', 'author': {'email': 'pipermerriam@gmail.com', 'name': 'Piper Merriam'}, 'message': 'Remove incorrect staticmethod wrapper', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/751c856953060d68ae7be2c62306d11935e32345'}]}, 'public': True, 'created_at': '2018-12-13T21:52:19Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751295980', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1596, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596', 'id': 238534627, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM0NjI3', 'html_url': 'https://github.com/ethereum/py-evm/pull/1596', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1596.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1596.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596', 'number': 1596, 'state': 'closed', 'locked': False, 'title': 'Remove incorrect staticmethod wrapper', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nThe `mainnet_fork_fns` iterable on the `eth.tools.builder.api` object was incorrectly being wrapped with `staticmethod`.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRemoved the wrapper.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![slice-of-bread-cat-costume](https://user-images.githubusercontent.com/824194/49967980-996db280-fee1-11e8-969f-9dd13f2f1dbc.jpg)\\r\\n\\r\\n', 'created_at': '2018-12-13T21:15:56Z', 'updated_at': '2018-12-13T21:52:15Z', 'closed_at': '2018-12-13T21:52:15Z', 'merged_at': '2018-12-13T21:52:15Z', 'merge_commit_sha': '751c856953060d68ae7be2c62306d11935e32345', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4', 'head': {'label': 'pipermerriam:piper/fix-build-all_mainnet_fork_fns', 'ref': 'piper/fix-build-all_mainnet_fork_fns', 'sha': 'fb61b051fd9c5007bed68c4b2df234820db489e4', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 112370752, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTIzNzA3NTI=', 'name': 'py-evm', 'full_name': 'pipermerriam/py-evm', 'private': False, 'owner': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/pipermerriam/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/pipermerriam/py-evm', 'forks_url': 'https://api.github.com/repos/pipermerriam/py-evm/forks', 'keys_url': 'https://api.github.com/repos/pipermerriam/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/pipermerriam/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/pipermerriam/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/pipermerriam/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/pipermerriam/py-evm/events', 'assignees_url': 'https://api.github.com/repos/pipermerriam/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/pipermerriam/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/pipermerriam/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/pipermerriam/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/pipermerriam/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/pipermerriam/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/pipermerriam/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/pipermerriam/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/pipermerriam/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/pipermerriam/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/pipermerriam/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/pipermerriam/py-evm/merges', 'archive_url': 'https://api.github.com/repos/pipermerriam/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/pipermerriam/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/pipermerriam/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/pipermerriam/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/pipermerriam/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/pipermerriam/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/pipermerriam/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/pipermerriam/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/pipermerriam/py-evm/deployments', 'created_at': '2017-11-28T18:07:13Z', 'updated_at': '2018-12-12T02:39:16Z', 'pushed_at': '2018-12-13T21:14:47Z', 'git_url': 'git://github.com/pipermerriam/py-evm.git', 'ssh_url': 'git@github.com:pipermerriam/py-evm.git', 'clone_url': 'https://github.com/pipermerriam/py-evm.git', 'svn_url': 'https://github.com/pipermerriam/py-evm', 'homepage': '', 'size': 6499, 'stargazers_count': 30, 'watchers_count': 30, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 6, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 6, 'open_issues': 0, 'watchers': 30, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:52:15Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 164, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 164, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1596'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1596/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1596/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/fb61b051fd9c5007bed68c4b2df234820db489e4'}}, 'author_association': 'MEMBER', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 1, 'deletions': 1, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:52:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751293572', 'type': 'IssueCommentEvent', 'actor': {'id': 8602661, 'login': 'jakerockland', 'display_login': 'jakerockland', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'avatar_url': 'https://avatars.githubusercontent.com/u/8602661?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:51:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447133690', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447133690', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447133690, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzY5MA==', 'user': {'login': 'jakerockland', 'id': 8602661, 'node_id': 'MDQ6VXNlcjg2MDI2NjE=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/8602661?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jakerockland', 'html_url': 'https://github.com/jakerockland', 'followers_url': 'https://api.github.com/users/jakerockland/followers', 'following_url': 'https://api.github.com/users/jakerockland/following{/other_user}', 'gists_url': 'https://api.github.com/users/jakerockland/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jakerockland/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jakerockland/subscriptions', 'organizations_url': 'https://api.github.com/users/jakerockland/orgs', 'repos_url': 'https://api.github.com/users/jakerockland/repos', 'events_url': 'https://api.github.com/users/jakerockland/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jakerockland/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:51:47Z', 'updated_at': '2018-12-13T21:51:47Z', 'author_association': 'CONTRIBUTOR', 'body': \"Oh yeah that is definitely problematic, that’s actually a good example of why I’m thinking an extend function might be helpful. 😅\\nOn Dec 13, 2018, 2:45 PM -0700, Bryant Eisenbach , wrote:\\n> I think a way to show you what may be problematic is an example like this:\\n> def foo(bar: uint256[4]) -> uint256:\\n> m: uint256 = 0\\n> for i in range(bar):\\n> if i > m:\\n> m = i\\n> return m\\n> How do I pass something of size two to that that doesn't over-iterate on bar?\\n> —\\n> You are receiving this because you were mentioned.\\n> Reply to this email directly, view it on GitHub, or mute the thread.\\n\"}}, 'public': True, 'created_at': '2018-12-13T21:51:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751289929', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357', 'pull_request_review_id': 184885154, 'id': 241574357, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDM1Nw==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Regarding `database_dir`.\\r\\n\\r\\nI think this is actually an `eth1` specific thing and **should-not** be shared by any of the other applications (beacon/shard), as each of them should have their own databases.', 'created_at': '2018-12-13T21:51:03Z', 'updated_at': '2018-12-13T21:51:04Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574357'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574357'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:51:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:51:03Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285736', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022', 'pull_request_review_id': 184882406, 'id': 241574022, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3NDAyMg==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):\\n+\\n+ def __init__(self, args: argparse.Namespace, base_config: TrinityConfig):\\n+ self.args = args\\n+ self.base_config = base_config\\n+\\n+ @classmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ return cls(args, base_config)\\n+\\n+\\n+class Eth1AppConfig(DefaultBaseAppConfig):\\n+\\n+ @property\\n+ def is_light_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_LIGHT\\n+\\n+ @property\\n+ def is_full_mode(self) -> bool:\\n+ return self.base_config.sync_mode == SYNC_FULL', 'path': 'trinity/config.py', 'position': 174, 'original_position': 138, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"What about:\\r\\n\\r\\n- `trinity/mainnet/eth1/`\\r\\n- `trinity/mainnet/beacon/...'\\r\\n- 'trinity/mainnet/shard-01/...'\\r\\n\\r\\nIt seems beneficial to co-locate all of the various *chains* under a single root directory for the network they are part of.\\r\\n\\r\\n\", 'created_at': '2018-12-13T21:50:05Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241574022'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241574022'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241366836}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:50:05Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285733', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145', 'pull_request_review_id': 184882406, 'id': 241573145, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MzE0NQ==', 'diff_hunk': '@@ -440,14 +444,77 @@ def nodekey(self, value: Union[bytes, PrivateKey]) -> None:\\n f\"`PrivateKey` instance: got {type(self._nodekey)}\"\\n )\\n \\n+ @contextmanager\\n+ def process_id_file(self, process_name: str): # type: ignore\\n+ with PidFile(process_name, self.data_dir):\\n+ yield\\n+\\n @classmethod\\n- def from_parser_args(cls, parser_args: argparse.Namespace) -> \\'TrinityConfig\\':\\n+ def from_parser_args(cls,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> \\'TrinityConfig\\':\\n \"\"\"\\n Helper function for initializing from the namespace object produced by\\n an ``argparse.ArgumentParser``\\n \"\"\"\\n constructor_kwargs = construct_trinity_config_params(parser_args)\\n- return cls(**constructor_kwargs)\\n+ trinity_config = cls(**constructor_kwargs)\\n+\\n+ trinity_config.initialize_app_configs(parser_args, app_config_types)\\n+\\n+ return trinity_config\\n+\\n+ def initialize_app_configs(self,\\n+ parser_args: argparse.Namespace,\\n+ app_config_types: Iterable[Type[\\'BaseAppConfig\\']]) -> None:\\n+\\n+ for app_config_type in app_config_types:\\n+ self.add_app_config(app_config_type.from_parser_args(parser_args, self))\\n+\\n+ def add_app_config(self, app_config: \\'BaseAppConfig\\') -> None:\\n+ self._app_configs[type(app_config)] = app_config\\n+\\n+ def has_app_config(self, app_config_type: Type[\\'BaseAppConfig\\']) -> bool:\\n+ return app_config_type in self._app_configs.keys()\\n+\\n+ def get_app_config(self, app_config_type: Type[TAppConfig]) -> TAppConfig:\\n+ # We want this API to return the specific type of the app config that is requested.\\n+ # Our backing field only knows that it is holding `BaseAppConfig`\\'s but not concrete types\\n+ return cast(TAppConfig, self._app_configs[app_config_type])\\n+\\n+\\n+class BaseAppConfig(ABC):\\n+\\n+ @classmethod\\n+ @abstractmethod\\n+ def from_parser_args(cls,\\n+ args: argparse.Namespace,\\n+ base_config: TrinityConfig) -> \\'BaseAppConfig\\':\\n+ pass\\n+\\n+\\n+class DefaultBaseAppConfig(BaseAppConfig):', 'path': 'trinity/config.py', 'position': 153, 'original_position': 117, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '4d9c4b66cfe369977507ff2b72b318d731184cbf', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': \"I'm leaning towards :-1: \\r\\n\\r\\n- I don't see a clear benefit (if it isn't truly standardized then it's not standard)\\r\\n- it's an attempt at establishing an abstraction when I don't think we really *know* what the abstraction looks like...\\r\\n- it results in the `__init__` being tied to an `argparse.Namespace` shaped object which likely makes testing harder.\\r\\n\\r\\nThoughts?\", 'created_at': '2018-12-13T21:47:07Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241573145'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241573145'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}, 'in_reply_to_id': 241359338}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:47:07Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751285726', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110', 'pull_request_review_id': 184882406, 'id': 241572110, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MjExMA==', 'diff_hunk': '@@ -90,3 +91,12 @@ def test_trinity_config_explictely_provided_nodekey(nodekey_bytes, as_bytes):\\n )\\n \\n assert trinity_config.nodekey.to_bytes() == nodekey_bytes\\n+\\n+\\n+def test_trinity_config_sub_configs():\\n+ trinity_config = TrinityConfig(network_id=1)\\n+ trinity_config.initialize_app_configs(None, (BeaconAppConfig,))\\n+\\n+ assert trinity_config.has_app_config(BeaconAppConfig)', 'path': 'tests/trinity/core/configuration/test_trinity_config_object.py', 'position': 18, 'original_position': 18, 'commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'original_commit_id': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Curious what others think about this. I\\'ve often done `assert thing is True` when I am actually testing a boolean value to ensure that some other \"truthy\" value cannot slip through.', 'created_at': '2018-12-13T21:43:45Z', 'updated_at': '2018-12-13T21:50:14Z', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110', 'pull_request_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments/241572110'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566#discussion_r241572110'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}}}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566', 'id': 237350141, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM3MzUwMTQx', 'html_url': 'https://github.com/ethereum/py-evm/pull/1566', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1566.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1566.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566', 'number': 1566, 'state': 'open', 'locked': False, 'title': 'Teach TrinityConfig to handle sub configs', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'body': '### What was wrong?\\r\\n\\r\\nAs we aim to support more and more node types using one common `TrinityConfig` becomes seems to become less sustainable as it would mean that e.g. we need to add things for the beacon node into the `TrinityConfig` that will just be noise for other node types. In language theory speak, that would lower the cohesion of the `TrinityConfig`which is a bad thing.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\nRelated discussion: https://github.com/ethereum/py-evm/pull/1556#discussion_r240014047\\r\\n\\r\\n1.This introduces a concept of sub configurations which need to be derived from `BaseSubConfig`. \\r\\n\\r\\n```python\\r\\nclass BaseSubConfig:\\r\\n\\r\\n def __init__(self, args: argparse.Namespace, base_config: TrinityConfig) -> None:\\r\\n self.args = args\\r\\n self.base_config = base_config\\r\\n```\\r\\n\\r\\n2. `TrinityConfig.from_parser_args` now accepts an additional `Iterable[BaseSubConfig` to bootstrap any number of given sub configs.\\r\\n\\r\\n3. `TrinityConfig` now has APIs `has_sub_config()` and `get_sub_config` to work with sub configs \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![put a cute animal picture link inside the parentheses](https://i.dailymail.co.uk/i/pix/2011/04/04/article-0-0B78E26500000578-768_964x660.jpg)\\r\\n', 'created_at': '2018-12-10T14:58:44Z', 'updated_at': '2018-12-13T21:50:14Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfc75cbef64e54afe2e9c10e2059346f2c3cf223', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'head': {'label': 'cburgdorf:christoph/feat/sub-configs', 'ref': 'christoph/feat/sub-configs', 'sha': '2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c', 'user': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 122467896, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMjI0Njc4OTY=', 'name': 'py-evm', 'full_name': 'cburgdorf/py-evm', 'private': False, 'owner': {'login': 'cburgdorf', 'id': 521109, 'node_id': 'MDQ6VXNlcjUyMTEwOQ==', 'avatar_url': 'https://avatars2.githubusercontent.com/u/521109?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cburgdorf', 'html_url': 'https://github.com/cburgdorf', 'followers_url': 'https://api.github.com/users/cburgdorf/followers', 'following_url': 'https://api.github.com/users/cburgdorf/following{/other_user}', 'gists_url': 'https://api.github.com/users/cburgdorf/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cburgdorf/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cburgdorf/subscriptions', 'organizations_url': 'https://api.github.com/users/cburgdorf/orgs', 'repos_url': 'https://api.github.com/users/cburgdorf/repos', 'events_url': 'https://api.github.com/users/cburgdorf/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cburgdorf/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/cburgdorf/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/cburgdorf/py-evm', 'forks_url': 'https://api.github.com/repos/cburgdorf/py-evm/forks', 'keys_url': 'https://api.github.com/repos/cburgdorf/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/cburgdorf/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/cburgdorf/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/cburgdorf/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/cburgdorf/py-evm/events', 'assignees_url': 'https://api.github.com/repos/cburgdorf/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/cburgdorf/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/cburgdorf/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/cburgdorf/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/cburgdorf/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/cburgdorf/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/cburgdorf/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/cburgdorf/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/cburgdorf/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/cburgdorf/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/cburgdorf/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/cburgdorf/py-evm/merges', 'archive_url': 'https://api.github.com/repos/cburgdorf/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/cburgdorf/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/cburgdorf/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/cburgdorf/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/cburgdorf/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/cburgdorf/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/cburgdorf/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/cburgdorf/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/cburgdorf/py-evm/deployments', 'created_at': '2018-02-22T11:07:50Z', 'updated_at': '2018-03-28T15:01:32Z', 'pushed_at': '2018-12-13T12:28:00Z', 'git_url': 'git://github.com/cburgdorf/py-evm.git', 'ssh_url': 'git@github.com:cburgdorf/py-evm.git', 'clone_url': 'https://github.com/cburgdorf/py-evm.git', 'svn_url': 'https://github.com/cburgdorf/py-evm', 'homepage': 'http://py-evm.readthedocs.io/en/latest/', 'size': 8252, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 1, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 1, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '7e3b313dbb485fe16729cc40b442310afd750dc2', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:38:59Z', 'pushed_at': '2018-12-13T21:38:55Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6616, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1566'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1566/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1566/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/2df39dbfd6eddcb74b8d330c9651d57fb6f0e63c'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:45Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751282754', 'type': 'IssueCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'repository_url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310/events', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'id': 390729029, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NDI5MjY0', 'number': 310, 'title': 'Deposits: define `DepositData` and rename `DepositParameters` to `DepositInput`', 'user': {'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2018-12-13T15:25:59Z', 'updated_at': '2018-12-13T21:49:38Z', 'closed_at': '2018-12-13T15:36:58Z', 'author_association': 'CONTRIBUTOR', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/310', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/310.patch'}, 'body': '1. Add `DepositData`.\\r\\n2. Fix `get_initial_beacon_state` a tiny bug by adding a comma.\\r\\n3. **Rename** `DepositParameters` to `DepositInput`.'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments/447133137', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/310#issuecomment-447133137', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/310', 'id': 447133137, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMzEzNw==', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:49:38Z', 'updated_at': '2018-12-13T21:49:38Z', 'author_association': 'COLLABORATOR', 'body': \"> With the separate objects, it is clearer how to construct the deposit input data\\r\\n\\r\\nMakes sense. Next question: Can `Deposit` and `DepositData` be flattened? That is, we define `Deposit` to be\\r\\n\\r\\n```\\r\\n{\\r\\n 'merkle_branch': '[hash32]',\\r\\n 'merkle_tree_index': 'uint64',\\r\\n 'value': 'uint64',\\r\\n 'timestamp': 'uint64',\\r\\n 'deposit_input': DepositInput,\\r\\n}\\r\\n```\"}}, 'public': True, 'created_at': '2018-12-13T21:49:38Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751267178', 'type': 'WatchEvent', 'actor': {'id': 9257286, 'login': 'kswizzlek', 'display_login': 'kswizzlek', 'gravatar_id': '', 'url': 'https://api.github.com/users/kswizzlek', 'avatar_url': 'https://avatars.githubusercontent.com/u/9257286?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:46:37Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751261766', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710/events', 'html_url': 'https://github.com/ethereum/py-evm/issues/710', 'id': 323728059, 'node_id': 'MDU6SXNzdWUzMjM3MjgwNTk=', 'number': 710, 'title': 'Release naming scheme', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 815420353, 'node_id': 'MDU6TGFiZWw4MTU0MjAzNTM=', 'url': 'https://api.github.com/repos/ethereum/py-evm/labels/comp:%20trinity', 'name': 'comp: trinity', 'color': 'bfd4f2', 'default': False}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2018-05-16T18:05:26Z', 'updated_at': '2018-12-13T21:45:30Z', 'closed_at': None, 'author_association': 'MEMBER', 'body': '### What is wrong?\\r\\n\\r\\n- I love names!\\r\\n- I especially love named software releases!\\r\\n\\r\\nBut names are hard!\\r\\n\\r\\n### How can it be fixed\\r\\n\\r\\nI suggest we continue from the origins of the name \"Trinity\" and name our releases after badass women. Maybe we can use this tread to collect some names?'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447131980', 'html_url': 'https://github.com/ethereum/py-evm/issues/710#issuecomment-447131980', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/710', 'id': 447131980, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTk4MA==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:45:30Z', 'updated_at': '2018-12-13T21:45:30Z', 'author_association': 'CONTRIBUTOR', 'body': 'Turns out I had to pick a name before I saw ET, but, we may have to keep Empress Theodora in our pocket for next time. :)\\r\\n\\r\\nMany (all?) rulers from the time will have to people put to death, but hopefully not all of them have burned/buried their enemies alive.\\r\\n\\r\\n\\r\\n\\r\\n> [the Nika riots](https://en.wikipedia.org/wiki/Theodora_(6th_century)#The_Nika_riots), with a speech that can be TL;DR\\'ed as \"HODL\".\\r\\n\\r\\n:laughing: '}}, 'public': True, 'created_at': '2018-12-13T21:45:30Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751258080', 'type': 'IssueCommentEvent', 'actor': {'id': 3859395, 'login': 'fubuloubu', 'display_login': 'fubuloubu', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'avatar_url': 'https://avatars.githubusercontent.com/u/3859395?'}, 'repo': {'id': 73461676, 'name': 'ethereum/vyper', 'url': 'https://api.github.com/repos/ethereum/vyper'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'repository_url': 'https://api.github.com/repos/ethereum/vyper', 'labels_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/comments', 'events_url': 'https://api.github.com/repos/ethereum/vyper/issues/969/events', 'html_url': 'https://github.com/ethereum/vyper/issues/969', 'id': 345441565, 'node_id': 'MDU6SXNzdWUzNDU0NDE1NjU=', 'number': 969, 'title': 'Allow lesser length array to be passed to external calls.', 'user': {'login': 'jacqueswww', 'id': 6917456, 'node_id': 'MDQ6VXNlcjY5MTc0NTY=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/6917456?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jacqueswww', 'html_url': 'https://github.com/jacqueswww', 'followers_url': 'https://api.github.com/users/jacqueswww/followers', 'following_url': 'https://api.github.com/users/jacqueswww/following{/other_user}', 'gists_url': 'https://api.github.com/users/jacqueswww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jacqueswww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jacqueswww/subscriptions', 'organizations_url': 'https://api.github.com/users/jacqueswww/orgs', 'repos_url': 'https://api.github.com/users/jacqueswww/repos', 'events_url': 'https://api.github.com/users/jacqueswww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jacqueswww/received_events', 'type': 'User', 'site_admin': False}, 'labels': [{'id': 479554962, 'node_id': 'MDU6TGFiZWw0Nzk1NTQ5NjI=', 'url': 'https://api.github.com/repos/ethereum/vyper/labels/bug', 'name': 'bug', 'color': 'ee0701', 'default': True}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2018-07-28T11:30:52Z', 'updated_at': '2018-12-13T21:44:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'body': '### Version Information\\r\\n\\r\\nAllow an array of lesser length to be passed to functions.\\r\\n\\r\\n```python\\r\\ncontract A:\\r\\n def test(b: address[4]): modifying\\r\\n...\\r\\na: address[2]\\r\\nA(x).test(a) \\r\\n```\\r\\n\\r\\nShould work.\\r\\n\\r\\n#### Cute Animal Picture\\r\\n![](https://static.boredpanda.com/blog/wp-content/uuuploads/cute-baby-animals/cute-baby-animals-31.jpg)'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/vyper/issues/comments/447131774', 'html_url': 'https://github.com/ethereum/vyper/issues/969#issuecomment-447131774', 'issue_url': 'https://api.github.com/repos/ethereum/vyper/issues/969', 'id': 447131774, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTc3NA==', 'user': {'login': 'fubuloubu', 'id': 3859395, 'node_id': 'MDQ6VXNlcjM4NTkzOTU=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/3859395?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/fubuloubu', 'html_url': 'https://github.com/fubuloubu', 'followers_url': 'https://api.github.com/users/fubuloubu/followers', 'following_url': 'https://api.github.com/users/fubuloubu/following{/other_user}', 'gists_url': 'https://api.github.com/users/fubuloubu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/fubuloubu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/fubuloubu/subscriptions', 'organizations_url': 'https://api.github.com/users/fubuloubu/orgs', 'repos_url': 'https://api.github.com/users/fubuloubu/repos', 'events_url': 'https://api.github.com/users/fubuloubu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/fubuloubu/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:47Z', 'updated_at': '2018-12-13T21:44:47Z', 'author_association': 'MEMBER', 'body': \"I think a way to show you what may be problematic is an example like this:\\r\\n```python\\r\\ndef foo(bar: uint256[4]) -> uint256:\\r\\n m: uint256 = 0\\r\\n for i in range(bar):\\r\\n if i > m:\\r\\n m = i\\r\\n return m\\r\\n```\\r\\n\\r\\nHow do I pass something of size two to that that doesn't over-iterate on `bar`?\"}}, 'public': True, 'created_at': '2018-12-13T21:44:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751255701', 'type': 'IssueCommentEvent', 'actor': {'id': 31577879, 'login': 'pryce-turner', 'display_login': 'pryce-turner', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'avatar_url': 'https://avatars.githubusercontent.com/u/31577879?'}, 'repo': {'id': 63730598, 'name': 'ethereum/py-solc', 'url': 'https://api.github.com/repos/ethereum/py-solc'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'repository_url': 'https://api.github.com/repos/ethereum/py-solc', 'labels_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65/events', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'id': 387887113, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM2Mjc3NDEw', 'number': 65, 'title': 'solc 0.5.x compatibility, ability to change compilers as needed', 'user': {'login': 'iamdefinitelyahuman', 'id': 35276322, 'node_id': 'MDQ6VXNlcjM1Mjc2MzIy', 'avatar_url': 'https://avatars3.githubusercontent.com/u/35276322?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iamdefinitelyahuman', 'html_url': 'https://github.com/iamdefinitelyahuman', 'followers_url': 'https://api.github.com/users/iamdefinitelyahuman/followers', 'following_url': 'https://api.github.com/users/iamdefinitelyahuman/following{/other_user}', 'gists_url': 'https://api.github.com/users/iamdefinitelyahuman/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iamdefinitelyahuman/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iamdefinitelyahuman/subscriptions', 'organizations_url': 'https://api.github.com/users/iamdefinitelyahuman/orgs', 'repos_url': 'https://api.github.com/users/iamdefinitelyahuman/repos', 'events_url': 'https://api.github.com/users/iamdefinitelyahuman/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iamdefinitelyahuman/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2018-12-05T18:28:08Z', 'updated_at': '2018-12-13T21:44:21Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-solc/pulls/65', 'html_url': 'https://github.com/ethereum/py-solc/pull/65', 'diff_url': 'https://github.com/ethereum/py-solc/pull/65.diff', 'patch_url': 'https://github.com/ethereum/py-solc/pull/65.patch'}, 'body': '### What was wrong?\\r\\n\\r\\n* py-solc is incompatible with solc v0.5.0 due to depeciation of \"--combined-json clone-bin\"\\r\\n* solc v0.5.0 introduces many breaking changes and cannot compile v0.4.x contracts\\r\\n\\r\\nOver the next few months, I\\'d imagine may of us will be working with contracts on both 0.4.x and 0.5.x simultaneously. To that end, it would be useful to be able to easily switch compiler versions.\\r\\n\\r\\n### How was it fixed?\\r\\n\\r\\n* Modified `wrapper.py` - line 87, added a check for version 0.5.x to remove the clone-bin argument if needed\\r\\n* Modified `install.py` - can now install versions 0.5.0 and 0.5.1, and each version of solc is installed into `py-solc/bin/solc/`\\r\\n* Added `main.set_solc_version` - modifies which compiler py-solc is actively using, and installs if necessary\\r\\n* Added `main.get_installed_solc_versions` - to see which versions of solc have been installed\\r\\n* Modified `__init__.py` so that on the first import it installs solc v0.5.1\\r\\n\\r\\nfixes #63 \\r\\nfixes #64 \\r\\n\\r\\n#### Cute Animal Picture\\r\\n\\r\\n![baby llama approves](https://i.pinimg.com/736x/5c/0f/fd/5c0ffd9dc523dc5ebc2c25b8635fd0ba.jpg \"baby llama approves\") '}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-solc/issues/comments/447131636', 'html_url': 'https://github.com/ethereum/py-solc/pull/65#issuecomment-447131636', 'issue_url': 'https://api.github.com/repos/ethereum/py-solc/issues/65', 'id': 447131636, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMTYzNg==', 'user': {'login': 'pryce-turner', 'id': 31577879, 'node_id': 'MDQ6VXNlcjMxNTc3ODc5', 'avatar_url': 'https://avatars2.githubusercontent.com/u/31577879?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pryce-turner', 'html_url': 'https://github.com/pryce-turner', 'followers_url': 'https://api.github.com/users/pryce-turner/followers', 'following_url': 'https://api.github.com/users/pryce-turner/following{/other_user}', 'gists_url': 'https://api.github.com/users/pryce-turner/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pryce-turner/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pryce-turner/subscriptions', 'organizations_url': 'https://api.github.com/users/pryce-turner/orgs', 'repos_url': 'https://api.github.com/users/pryce-turner/repos', 'events_url': 'https://api.github.com/users/pryce-turner/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pryce-turner/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:44:21Z', 'updated_at': '2018-12-13T21:44:21Z', 'author_association': 'NONE', 'body': 'Yeah it looks like @pipermerriam and co are pretty busy over at web3.py getting it up to speed with Sol 0.5.x, hopefully the wrapper fixes are fairly easy and we can bring this up to spec soon as well. As far as I know, the clone-bin issue was the only _breaking_ change for the wrapper.'}}, 'public': True, 'created_at': '2018-12-13T21:44:21Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751249806', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 731743, 'login': 'JustinDrake', 'display_login': 'JustinDrake', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'avatar_url': 'https://avatars.githubusercontent.com/u/731743?'}, 'repo': {'id': 149554797, 'name': 'ethereum/eth2.0-specs', 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974', 'pull_request_review_id': 184882229, 'id': 241571974, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTU3MTk3NA==', 'diff_hunk': '@@ -377,6 +379,16 @@ Unless otherwise indicated, code appearing in `this style` is to be interpreted\\n }\\n ```\\n \\n+#### `ProofOfPossessionData`', 'path': 'specs/core/0_beacon-chain.md', 'position': 20, 'original_position': 20, 'commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'original_commit_id': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'JustinDrake', 'id': 731743, 'node_id': 'MDQ6VXNlcjczMTc0Mw==', 'avatar_url': 'https://avatars1.githubusercontent.com/u/731743?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JustinDrake', 'html_url': 'https://github.com/JustinDrake', 'followers_url': 'https://api.github.com/users/JustinDrake/followers', 'following_url': 'https://api.github.com/users/JustinDrake/following{/other_user}', 'gists_url': 'https://api.github.com/users/JustinDrake/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JustinDrake/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JustinDrake/subscriptions', 'organizations_url': 'https://api.github.com/users/JustinDrake/orgs', 'repos_url': 'https://api.github.com/users/JustinDrake/repos', 'events_url': 'https://api.github.com/users/JustinDrake/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JustinDrake/received_events', 'type': 'User', 'site_admin': False}, 'body': \"While we're at it, maybe define the constant `EMPTY_SIGNATURE` to be `[0, 0]`. It's used three times.\", 'created_at': '2018-12-13T21:43:15Z', 'updated_at': '2018-12-13T21:43:15Z', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974', 'pull_request_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'author_association': 'COLLABORATOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments/241571974'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315#discussion_r241571974'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}}, 'in_reply_to_id': 241563597}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315', 'id': 238515548, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTE1NTQ4', 'html_url': 'https://github.com/ethereum/eth2.0-specs/pull/315', 'diff_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.diff', 'patch_url': 'https://github.com/ethereum/eth2.0-specs/pull/315.patch', 'issue_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315', 'number': 315, 'state': 'open', 'locked': False, 'title': 'More ssz objects pt 1', 'user': {'login': 'djrtwo', 'id': 1433595, 'node_id': 'MDQ6VXNlcjE0MzM1OTU=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/1433595?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/djrtwo', 'html_url': 'https://github.com/djrtwo', 'followers_url': 'https://api.github.com/users/djrtwo/followers', 'following_url': 'https://api.github.com/users/djrtwo/following{/other_user}', 'gists_url': 'https://api.github.com/users/djrtwo/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/djrtwo/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/djrtwo/subscriptions', 'organizations_url': 'https://api.github.com/users/djrtwo/orgs', 'repos_url': 'https://api.github.com/users/djrtwo/repos', 'events_url': 'https://api.github.com/users/djrtwo/events{/privacy}', 'received_events_url': 'https://api.github.com/users/djrtwo/received_events', 'type': 'User', 'site_admin': False}, 'body': \"addresses most of #286 \\r\\n\\r\\n* proof of custody data ssz object\\r\\n* validator delta block ssz object\\r\\n* _note_: didn't address the custody bit \", 'created_at': '2018-12-13T20:06:35Z', 'updated_at': '2018-12-13T21:43:15Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a8bf438929da4cf85c95cde20bb6bc5383194a', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'hwwhww', 'id': 9263930, 'node_id': 'MDQ6VXNlcjkyNjM5MzA=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/9263930?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/hwwhww', 'html_url': 'https://github.com/hwwhww', 'followers_url': 'https://api.github.com/users/hwwhww/followers', 'following_url': 'https://api.github.com/users/hwwhww/following{/other_user}', 'gists_url': 'https://api.github.com/users/hwwhww/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/hwwhww/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/hwwhww/subscriptions', 'organizations_url': 'https://api.github.com/users/hwwhww/orgs', 'repos_url': 'https://api.github.com/users/hwwhww/repos', 'events_url': 'https://api.github.com/users/hwwhww/events{/privacy}', 'received_events_url': 'https://api.github.com/users/hwwhww/received_events', 'type': 'User', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'head': {'label': 'ethereum:more-ssz-objects', 'ref': 'more-ssz-objects', 'sha': '96aade9a2c4d30e579c301baeb216a9f6c6df8ec', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '9e74043a1737b1a792e259ef93c995e0634df086', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 149554797, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNDk1NTQ3OTc=', 'name': 'eth2.0-specs', 'full_name': 'ethereum/eth2.0-specs', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/eth2.0-specs', 'description': 'Ethereum 2.0 Specifications', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/eth2.0-specs', 'forks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/forks', 'keys_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/events', 'assignees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/merges', 'archive_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/eth2.0-specs/deployments', 'created_at': '2018-09-20T05:12:54Z', 'updated_at': '2018-12-13T19:45:11Z', 'pushed_at': '2018-12-13T20:06:36Z', 'git_url': 'git://github.com/ethereum/eth2.0-specs.git', 'ssh_url': 'git@github.com:ethereum/eth2.0-specs.git', 'clone_url': 'https://github.com/ethereum/eth2.0-specs.git', 'svn_url': 'https://github.com/ethereum/eth2.0-specs', 'homepage': None, 'size': 1015, 'stargazers_count': 271, 'watchers_count': 271, 'language': None, 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'forks_count': 66, 'mirror_url': None, 'archived': False, 'open_issues_count': 36, 'license': None, 'forks': 66, 'open_issues': 36, 'watchers': 271, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315'}, 'html': {'href': 'https://github.com/ethereum/eth2.0-specs/pull/315'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/issues/315/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/pulls/315/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/eth2.0-specs/statuses/96aade9a2c4d30e579c301baeb216a9f6c6df8ec'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-13T21:43:15Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751242810', 'type': 'WatchEvent', 'actor': {'id': 24497886, 'login': 'humboo', 'display_login': 'humboo', 'gravatar_id': '', 'url': 'https://api.github.com/users/humboo', 'avatar_url': 'https://avatars.githubusercontent.com/u/24497886?'}, 'repo': {'id': 15452919, 'name': 'ethereum/go-ethereum', 'url': 'https://api.github.com/repos/ethereum/go-ethereum'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:41:56Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751235806', 'type': 'WatchEvent', 'actor': {'id': 26033343, 'login': 'voermx', 'display_login': 'voermx', 'gravatar_id': '', 'url': 'https://api.github.com/users/voermx', 'avatar_url': 'https://avatars.githubusercontent.com/u/26033343?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'started'}, 'public': True, 'created_at': '2018-12-13T21:40:34Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227766', 'type': 'PushEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135960614, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'before': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'commits': [{'sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'author': {'email': 'sandakersmann@users.noreply.github.com', 'name': 'Marius Kjærstad'}, 'message': 'Changed http:// to https:// on some links\\n\\nChanged http:// to https:// on some links in README.md', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/66f4f8cbd1afa04ed274d69083335830aa68bcd1'}]}, 'public': True, 'created_at': '2018-12-13T21:38:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751227484', 'type': 'PullRequestEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'closed', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'closed', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:54Z', 'closed_at': '2018-12-13T21:38:54Z', 'merged_at': '2018-12-13T21:38:54Z', 'merge_commit_sha': '66f4f8cbd1afa04ed274d69083335830aa68bcd1', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T21:30:42Z', 'pushed_at': '2018-12-13T21:38:54Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 165, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 165, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'comments': 1, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:38:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226793', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'repository_url': 'https://api.github.com/repos/ethereum/py-evm', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/events', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'id': 390867534, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'number': 1597, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:38:46Z', 'closed_at': None, 'author_association': 'NONE', 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch'}, 'body': 'Changed http:// to https:// on some links in README.md'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments/447130006', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597#issuecomment-447130006', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'id': 447130006, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEzMDAwNg==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:46Z', 'updated_at': '2018-12-13T21:38:46Z', 'author_association': 'MEMBER', 'body': 'It appears that the doctest failure has already been fixed on master and is a non-issue.'}}, 'public': True, 'created_at': '2018-12-13T21:38:47Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751226350', 'type': 'IssueCommentEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:38:41Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447129981', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447129981', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447129981, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyOTk4MQ==', 'user': {'login': 'carver', 'id': 205327, 'node_id': 'MDQ6VXNlcjIwNTMyNw==', 'avatar_url': 'https://avatars0.githubusercontent.com/u/205327?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'html_url': 'https://github.com/carver', 'followers_url': 'https://api.github.com/users/carver/followers', 'following_url': 'https://api.github.com/users/carver/following{/other_user}', 'gists_url': 'https://api.github.com/users/carver/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/carver/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/carver/subscriptions', 'organizations_url': 'https://api.github.com/users/carver/orgs', 'repos_url': 'https://api.github.com/users/carver/repos', 'events_url': 'https://api.github.com/users/carver/events{/privacy}', 'received_events_url': 'https://api.github.com/users/carver/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:38:41Z', 'updated_at': '2018-12-13T21:38:41Z', 'author_association': 'CONTRIBUTOR', 'body': '> Where `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.\\r\\n\\r\\nOne option is something we\\'ve been talking about for web3: `chain.transact(to=..., gas=...)`.'}}, 'public': True, 'created_at': '2018-12-13T21:38:41Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751197343', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 147572521, 'name': 'ethereum/pytest-ethereum', 'url': 'https://api.github.com/repos/ethereum/pytest-ethereum'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'repository_url': 'https://api.github.com/repos/ethereum/pytest-ethereum', 'labels_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/comments', 'events_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32/events', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32', 'id': 390659988, 'node_id': 'MDU6SXNzdWUzOTA2NTk5ODg=', 'number': 32, 'title': 'Simplified \"happy path\" API', 'user': {'login': 'njgheorghita', 'id': 9753150, 'node_id': 'MDQ6VXNlcjk3NTMxNTA=', 'avatar_url': 'https://avatars0.githubusercontent.com/u/9753150?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/njgheorghita', 'html_url': 'https://github.com/njgheorghita', 'followers_url': 'https://api.github.com/users/njgheorghita/followers', 'following_url': 'https://api.github.com/users/njgheorghita/following{/other_user}', 'gists_url': 'https://api.github.com/users/njgheorghita/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/njgheorghita/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/njgheorghita/subscriptions', 'organizations_url': 'https://api.github.com/users/njgheorghita/orgs', 'repos_url': 'https://api.github.com/users/njgheorghita/repos', 'events_url': 'https://api.github.com/users/njgheorghita/events{/privacy}', 'received_events_url': 'https://api.github.com/users/njgheorghita/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T12:37:12Z', 'updated_at': '2018-12-13T21:32:55Z', 'closed_at': None, 'author_association': 'COLLABORATOR', 'body': '# Feature Request\\r\\n\\r\\n## What was wrong?\\r\\nFrom #25 . . . \\r\\n@carver @pipermerriam \\r\\n\\r\\n> A simplified \"happy path\" API that simply assumes that everything will go well, and raises an exception when it doesn\\'t. eg~ prefer something like receipt = ethtest.mine_txn(txn) over txn_hash = w3.eth.sendTransaction(txn); receipt = w3.eth.waitForTransactionReceipt(txn_hash).\\r\\n\\r\\n## How can it be fixed?\\r\\nSuggestion - A simple wrapper function that takes a built transaction, sends it on a given `w3` instance, and returns the transaction receipt. Raises a `TransactionError` if tx fails.\\r\\n```python\\r\\nimport pytest_ethereum as pte\\r\\nreceipt = pte.mine_txn(built_transaction, w3)\\r\\n```\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/comments/447128265', 'html_url': 'https://github.com/ethereum/pytest-ethereum/issues/32#issuecomment-447128265', 'issue_url': 'https://api.github.com/repos/ethereum/pytest-ethereum/issues/32', 'id': 447128265, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyODI2NQ==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:32:55Z', 'updated_at': '2018-12-13T21:32:55Z', 'author_association': 'MEMBER', 'body': 'Maybe something like:\\r\\n\\r\\n```python\\r\\nfrom pytest_ethereum import pte\\r\\nchain = pte.Chain(w3)\\r\\nreceipt = chain.transact(...)\\r\\n```\\r\\n\\r\\nWhere `transact` has some API accepting transactions in a format that\\'s \"easy\" for users.'}}, 'public': True, 'created_at': '2018-12-13T21:32:55Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751195664', 'type': 'IssuesEvent', 'actor': {'id': 3867501, 'login': 'charles-cooper', 'display_login': 'charles-cooper', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'avatar_url': 'https://avatars.githubusercontent.com/u/3867501?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'opened', 'issue': {'url': 'https://api.github.com/repos/ethereum/solidity/issues/5656', 'repository_url': 'https://api.github.com/repos/ethereum/solidity', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/comments', 'events_url': 'https://api.github.com/repos/ethereum/solidity/issues/5656/events', 'html_url': 'https://github.com/ethereum/solidity/issues/5656', 'id': 390868647, 'node_id': 'MDU6SXNzdWUzOTA4Njg2NDc=', 'number': 5656, 'title': 'Feature Request: Yul output', 'user': {'login': 'charles-cooper', 'id': 3867501, 'node_id': 'MDQ6VXNlcjM4Njc1MDE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/3867501?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/charles-cooper', 'html_url': 'https://github.com/charles-cooper', 'followers_url': 'https://api.github.com/users/charles-cooper/followers', 'following_url': 'https://api.github.com/users/charles-cooper/following{/other_user}', 'gists_url': 'https://api.github.com/users/charles-cooper/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/charles-cooper/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/charles-cooper/subscriptions', 'organizations_url': 'https://api.github.com/users/charles-cooper/orgs', 'repos_url': 'https://api.github.com/users/charles-cooper/repos', 'events_url': 'https://api.github.com/users/charles-cooper/events{/privacy}', 'received_events_url': 'https://api.github.com/users/charles-cooper/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T21:32:35Z', 'updated_at': '2018-12-13T21:32:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '## Motivation\\r\\nIt would be nice to be able to inspect the IR of a program to see exactly what it does with memory(/calldata/storage) instead of digging through the asm and additionally needing to reason about the stack, jumps, etc.\\r\\n\\r\\n## Specification\\r\\nAdd a command-line option to `solc` analogous to `--bin` or `--asm`, but which outputs Yul IR (one output file per input file) instead of asm or bytecode.'}}, 'public': True, 'created_at': '2018-12-13T21:32:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185727', 'type': 'PushEvent', 'actor': {'id': 205327, 'login': 'carver', 'display_login': 'carver', 'gravatar_id': '', 'url': 'https://api.github.com/users/carver', 'avatar_url': 'https://avatars.githubusercontent.com/u/205327?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'push_id': 3135938748, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'before': '0af9c7458d13a08c887546137bf7ab5773675020', 'commits': [{'sha': 'ac7d86537b791540ce4c5bc27398eab06fb2f63e', 'author': {'email': 'ut96caarrs@snkmail.com', 'name': 'Jason Carver'}, 'message': 'Squash warning from release notes build', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/py-evm/commits/ac7d86537b791540ce4c5bc27398eab06fb2f63e'}]}, 'public': True, 'created_at': '2018-12-13T21:30:42Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751185184', 'type': 'IssueCommentEvent', 'actor': {'id': 824194, 'login': 'pipermerriam', 'display_login': 'pipermerriam', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'avatar_url': 'https://avatars.githubusercontent.com/u/824194?'}, 'repo': {'id': 104133488, 'name': 'ethereum/eth-keys', 'url': 'https://api.github.com/repos/ethereum/eth-keys'}, 'payload': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'repository_url': 'https://api.github.com/repos/ethereum/eth-keys', 'labels_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/labels{/name}', 'comments_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/comments', 'events_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49/events', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49', 'id': 390721407, 'node_id': 'MDU6SXNzdWUzOTA3MjE0MDc=', 'number': 49, 'title': 'Suspected infinite recursion in jacobian', 'user': {'login': 'mderka', 'id': 1192586, 'node_id': 'MDQ6VXNlcjExOTI1ODY=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/1192586?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mderka', 'html_url': 'https://github.com/mderka', 'followers_url': 'https://api.github.com/users/mderka/followers', 'following_url': 'https://api.github.com/users/mderka/following{/other_user}', 'gists_url': 'https://api.github.com/users/mderka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mderka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mderka/subscriptions', 'organizations_url': 'https://api.github.com/users/mderka/orgs', 'repos_url': 'https://api.github.com/users/mderka/repos', 'events_url': 'https://api.github.com/users/mderka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mderka/received_events', 'type': 'User', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 0, 'created_at': '2018-12-13T15:09:10Z', 'updated_at': '2018-12-13T21:30:35Z', 'closed_at': None, 'author_association': 'NONE', 'body': '(Submitting as instructed on Gitter by @carver .)\\r\\n\\r\\n* Version: eth-keys==0.2.0b3, eth-tester[py-evm]==0.1.0b33, py-evm=0.2.0a33\\r\\n* Python: 3.6.6\\r\\n* OS: linux (inside docker on osx)\\r\\n\\r\\n\\r\\n### What was wrong?\\r\\n\\r\\nWhen running a transaction in our test suited, the following error showed up. The error appears like an infinite loop/recursion. It appears intermittently and I do not have solid way of reproducing it.\\r\\n\\r\\nPlease include any of the following that are applicable:\\r\\n\\r\\n* The code which produced the error\\r\\n* The full output of the error\\r\\n```\\r\\ntests/audit/test_audit.py:1255: in __send_done_message\\r\\n {\"from\": self.__config.account}\\r\\ntests/audit/test_audit.py:115: in __safe_transact\\r\\n raise e\\r\\ntests/audit/test_audit.py:111: in __safe_transact\\r\\n return contract_entity.transact(tx_args)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1034: in transact\\r\\n **self.kwargs)\\r\\n/usr/lib/python3.6/site-packages/web3/contract.py:1311: in transact_with_contract_function\\r\\n txn_hash = web3.eth.sendTransaction(transact_transaction)\\r\\n/usr/lib/python3.6/site-packages/web3/eth.py:244: in sendTransaction\\r\\n [transaction],\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:103: in request_blocking\\r\\n response = self._make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/manager.py:86: in _make_request\\r\\n return request_func(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/gas_price_strategy.py:18: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/attrdict.py:18: in middleware\\r\\n response = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/normalize_errors.py:9: in middleware\\r\\n result = make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/validation.py:43: in middleware\\r\\n return make_request(method, post_validated_params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/middleware.py:320: in middleware\\r\\n return make_request(method, [filled_transaction] + params[1:])\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/fixture.py:12: in middleware\\r\\n return make_request(method, params)\\r\\n/usr/lib/python3.6/site-packages/web3/middleware/formatting.py:21: in middleware\\r\\n response = make_request(method, formatted_params)\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/main.py:46: in make_request\\r\\n response = delegator(self.ethereum_tester, params)\\r\\ncytoolz/functoolz.pyx:232: in cytoolz.functoolz.curry.__call__\\r\\n ???\\r\\n/usr/lib/python3.6/site-packages/web3/providers/eth_tester/defaults.py:36: in call_eth_tester\\r\\n return getattr(eth_tester, fn_name)(*fn_args, **fn_kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:78: in func_wrapper\\r\\n transaction_hash = func(self, *args, **kwargs)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:430: in send_transaction\\r\\n return self._add_transaction_to_pending_block(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/main.py:473: in _add_transaction_to_pending_block\\r\\n raw_transaction_hash = self.backend.send_transaction(raw_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth_tester/backends/pyevm/main.py:496: in send_transaction\\r\\n self.chain.apply_transaction(signed_evm_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/chains/base.py:841: in apply_transaction\\r\\n new_header, receipt, computation = vm.apply_transaction(base_block.header, transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/base.py:356: in apply_transaction\\r\\n state_root, computation = self.state.apply_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:220: in apply_transaction\\r\\n computation = self.execute_transaction(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:189: in execute_transaction\\r\\n return executor(transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/state.py:268: in __call__\\r\\n message = self.build_evm_message(valid_transaction)\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/state.py:52: in build_evm_message\\r\\n self.vm_state.account_db.delta_balance(transaction.sender, -1 * gas_fee)\\r\\n/usr/lib/python3.6/site-packages/eth/rlp/transactions.py:97: in sender\\r\\n return self.get_sender()\\r\\n/usr/lib/python3.6/site-packages/eth/vm/forks/frontier/transactions.py:63: in get_sender\\r\\n return extract_transaction_sender(self)\\r\\n/usr/lib/python3.6/site-packages/eth/utils/transactions.py:103: in extract_transaction_sender\\r\\n public_key = signature.recover_public_key_from_msg(message)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:376: in recover_public_key_from_msg\\r\\n return self.recover_public_key_from_msg_hash(message_hash)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/datatypes.py:379: in recover_public_key_from_msg_hash\\r\\n return self.backend.ecdsa_recover(message_hash, self)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/ecdsa.py:135: in ecdsa_raw_recover\\r\\n Q = jacobian_multiply(Qr, inv(r, N))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:78: in jacobian_multiply\\r\\n return jacobian_double(jacobian_multiply(a, n // 2))\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:80: in jacobian_multiply\\r\\n return jacobian_add(jacobian_double(jacobian_multiply(a, n // 2)), a)\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/jacobian.py:59: in jacobian_add\\r\\n ny = (R * (U1H2 - nx) - S1 * H3) % P\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:72: in handler\\r\\n _raise_exception(timeout_exception, exception_message)\\r\\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\\r\\n\\r\\nexception = , exception_message = None\\r\\n\\r\\n def _raise_exception(exception, exception_message):\\r\\n \"\"\" This function checks if a exception message is given.\\r\\n \\r\\n If there is no exception message, the default behaviour is maintained.\\r\\n If there is an exception message, the message is passed to the exception with the \\'value\\' keyword.\\r\\n \"\"\"\\r\\n if exception_message is None:\\r\\n> raise exception()\\r\\nE StopIteration\\r\\n\\r\\n/usr/lib/python3.6/site-packages/timeout_decorator/timeout_decorator.py:45: StopIteration\\r\\n```\\r\\n\\r\\n\\r\\n### How can it be fixed?\\r\\n\\r\\nI do not have an insight.\\r\\n'}, 'comment': {'url': 'https://api.github.com/repos/ethereum/eth-keys/issues/comments/447127607', 'html_url': 'https://github.com/ethereum/eth-keys/issues/49#issuecomment-447127607', 'issue_url': 'https://api.github.com/repos/ethereum/eth-keys/issues/49', 'id': 447127607, 'node_id': 'MDEyOklzc3VlQ29tbWVudDQ0NzEyNzYwNw==', 'user': {'login': 'pipermerriam', 'id': 824194, 'node_id': 'MDQ6VXNlcjgyNDE5NA==', 'avatar_url': 'https://avatars3.githubusercontent.com/u/824194?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/pipermerriam', 'html_url': 'https://github.com/pipermerriam', 'followers_url': 'https://api.github.com/users/pipermerriam/followers', 'following_url': 'https://api.github.com/users/pipermerriam/following{/other_user}', 'gists_url': 'https://api.github.com/users/pipermerriam/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/pipermerriam/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/pipermerriam/subscriptions', 'organizations_url': 'https://api.github.com/users/pipermerriam/orgs', 'repos_url': 'https://api.github.com/users/pipermerriam/repos', 'events_url': 'https://api.github.com/users/pipermerriam/events{/privacy}', 'received_events_url': 'https://api.github.com/users/pipermerriam/received_events', 'type': 'User', 'site_admin': False}, 'created_at': '2018-12-13T21:30:35Z', 'updated_at': '2018-12-13T21:30:35Z', 'author_association': 'MEMBER', 'body': 'It would be really helpful if we could get the values from this section.\\r\\n\\r\\n```\\r\\n/usr/lib/python3.6/site-packages/eth_keys/backends/native/main.py:30: in ecdsa_recover\\r\\n public_key_bytes = ecdsa_raw_recover(msg_hash, signature.vrs)\\r\\n```\\r\\n\\r\\nSpecifically the `msg_hash` and `signature.vrs` values. This will let us confirm this bug in isolation.'}}, 'public': True, 'created_at': '2018-12-13T21:30:35Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}, {'id': '8751178030', 'type': 'PullRequestEvent', 'actor': {'id': 6118832, 'login': 'sandakersmann', 'display_login': 'sandakersmann', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'avatar_url': 'https://avatars.githubusercontent.com/u/6118832?'}, 'repo': {'id': 77478378, 'name': 'ethereum/py-evm', 'url': 'https://api.github.com/repos/ethereum/py-evm'}, 'payload': {'action': 'opened', 'number': 1597, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597', 'id': 238538239, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4NTM4MjM5', 'html_url': 'https://github.com/ethereum/py-evm/pull/1597', 'diff_url': 'https://github.com/ethereum/py-evm/pull/1597.diff', 'patch_url': 'https://github.com/ethereum/py-evm/pull/1597.patch', 'issue_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597', 'number': 1597, 'state': 'open', 'locked': False, 'title': 'Changed http:// to https:// on some links', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'body': 'Changed http:// to https:// on some links in README.md', 'created_at': '2018-12-13T21:29:11Z', 'updated_at': '2018-12-13T21:29:11Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152', 'head': {'label': 'sandakersmann:patch-1', 'ref': 'patch-1', 'sha': '81be4eeba172a0379606402fb99a9d680740d152', 'user': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'repo': {'id': 161696773, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjE2OTY3NzM=', 'name': 'py-evm', 'full_name': 'sandakersmann/py-evm', 'private': False, 'owner': {'login': 'sandakersmann', 'id': 6118832, 'node_id': 'MDQ6VXNlcjYxMTg4MzI=', 'avatar_url': 'https://avatars1.githubusercontent.com/u/6118832?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sandakersmann', 'html_url': 'https://github.com/sandakersmann', 'followers_url': 'https://api.github.com/users/sandakersmann/followers', 'following_url': 'https://api.github.com/users/sandakersmann/following{/other_user}', 'gists_url': 'https://api.github.com/users/sandakersmann/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sandakersmann/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sandakersmann/subscriptions', 'organizations_url': 'https://api.github.com/users/sandakersmann/orgs', 'repos_url': 'https://api.github.com/users/sandakersmann/repos', 'events_url': 'https://api.github.com/users/sandakersmann/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sandakersmann/received_events', 'type': 'User', 'site_admin': False}, 'html_url': 'https://github.com/sandakersmann/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': True, 'url': 'https://api.github.com/repos/sandakersmann/py-evm', 'forks_url': 'https://api.github.com/repos/sandakersmann/py-evm/forks', 'keys_url': 'https://api.github.com/repos/sandakersmann/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sandakersmann/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sandakersmann/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/sandakersmann/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sandakersmann/py-evm/events', 'assignees_url': 'https://api.github.com/repos/sandakersmann/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sandakersmann/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sandakersmann/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sandakersmann/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/sandakersmann/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/sandakersmann/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/sandakersmann/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sandakersmann/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sandakersmann/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sandakersmann/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sandakersmann/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sandakersmann/py-evm/merges', 'archive_url': 'https://api.github.com/repos/sandakersmann/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sandakersmann/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/sandakersmann/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sandakersmann/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sandakersmann/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sandakersmann/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sandakersmann/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/sandakersmann/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sandakersmann/py-evm/deployments', 'created_at': '2018-12-13T21:27:46Z', 'updated_at': '2018-12-13T21:27:50Z', 'pushed_at': '2018-12-13T21:28:56Z', 'git_url': 'git://github.com/sandakersmann/py-evm.git', 'ssh_url': 'git@github.com:sandakersmann/py-evm.git', 'clone_url': 'https://github.com/sandakersmann/py-evm.git', 'svn_url': 'https://github.com/sandakersmann/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'Python', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'open_issues_count': 0, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master'}}, 'base': {'label': 'ethereum:master', 'ref': 'master', 'sha': '0af9c7458d13a08c887546137bf7ab5773675020', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 77478378, 'node_id': 'MDEwOlJlcG9zaXRvcnk3NzQ3ODM3OA==', 'name': 'py-evm', 'full_name': 'ethereum/py-evm', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/py-evm', 'description': 'A Python implementation of the Ethereum Virtual Machine', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/py-evm', 'forks_url': 'https://api.github.com/repos/ethereum/py-evm/forks', 'keys_url': 'https://api.github.com/repos/ethereum/py-evm/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/py-evm/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/py-evm/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/py-evm/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/py-evm/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/py-evm/events', 'assignees_url': 'https://api.github.com/repos/ethereum/py-evm/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/py-evm/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/py-evm/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/py-evm/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/py-evm/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/py-evm/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/py-evm/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/py-evm/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/py-evm/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/py-evm/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/py-evm/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/py-evm/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/py-evm/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/py-evm/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/py-evm/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/py-evm/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/py-evm/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/py-evm/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/py-evm/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/py-evm/merges', 'archive_url': 'https://api.github.com/repos/ethereum/py-evm/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/py-evm/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/py-evm/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/py-evm/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/py-evm/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/py-evm/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/py-evm/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/py-evm/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/py-evm/deployments', 'created_at': '2016-12-27T19:36:00Z', 'updated_at': '2018-12-13T20:41:52Z', 'pushed_at': '2018-12-13T21:15:56Z', 'git_url': 'git://github.com/ethereum/py-evm.git', 'ssh_url': 'git@github.com:ethereum/py-evm.git', 'clone_url': 'https://github.com/ethereum/py-evm.git', 'svn_url': 'https://github.com/ethereum/py-evm', 'homepage': 'https://trinity.ethereum.org/', 'size': 6612, 'stargazers_count': 751, 'watchers_count': 751, 'language': 'Python', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 336, 'mirror_url': None, 'archived': False, 'open_issues_count': 166, 'license': {'key': 'mit', 'name': 'MIT License', 'spdx_id': 'MIT', 'url': 'https://api.github.com/licenses/mit', 'node_id': 'MDc6TGljZW5zZTEz'}, 'forks': 336, 'open_issues': 166, 'watchers': 751, 'default_branch': 'master'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597'}, 'html': {'href': 'https://github.com/ethereum/py-evm/pull/1597'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/issues/1597/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/py-evm/pulls/1597/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/py-evm/statuses/81be4eeba172a0379606402fb99a9d680740d152'}}, 'author_association': 'NONE', 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 2, 'deletions': 2, 'changed_files': 1}}, 'public': True, 'created_at': '2018-12-13T21:29:11Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}]\n" ] } ], @@ -91,7 +169,7 @@ "\n", "# can get data for up to page 10, by changing page=1 to 2 or 3 ...\n", "\n", - "# with urllib.request.urlopen(\"https://api.github.com/orgs/NUS-ALSET/events?page=1\") as url:\n", + "# with urllib.request.urlopen(\"https://api.github.com/orgs/ethereum/events?page=1\") as url:\n", "# events = json.loads(url.read().decode())\n", "# print(events)\n", "\n", @@ -150,7 +228,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'id': '8754423427', 'type': 'PushEvent', 'actor': {'id': 9073706, 'login': 'chriseth', 'display_login': 'chriseth', 'gravatar_id': '', 'url': 'https://api.github.com/users/chriseth', 'avatar_url': 'https://avatars.githubusercontent.com/u/9073706?'}, 'repo': {'id': 85063629, 'name': 'ethereum/solidity-test-bytecode', 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode'}, 'payload': {'push_id': 3137627808, 'size': 1, 'distinct_size': 1, 'ref': 'refs/heads/master', 'head': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'before': 'b034946fcd78acd5f428268fe13f41e3a6b12e25', 'commits': [{'sha': '2435ecb0ffd17dc2ce030a489ab3621ba8db0b53', 'author': {'email': 'chris@ethereum.org', 'name': 'travis'}, 'message': 'Added report 2018-12-14-0a68ca8c45ad2c16b11d567bcfd6d405d8667283/emscripten.txt', 'distinct': True, 'url': 'https://api.github.com/repos/ethereum/solidity-test-bytecode/commits/2435ecb0ffd17dc2ce030a489ab3621ba8db0b53'}]}, 'public': True, 'created_at': '2018-12-14T11:37:25Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" + "{'id': '8754525909', 'type': 'PullRequestReviewCommentEvent', 'actor': {'id': 1347491, 'login': 'ekpyron', 'display_login': 'ekpyron', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'avatar_url': 'https://avatars.githubusercontent.com/u/1347491?'}, 'repo': {'id': 40892817, 'name': 'ethereum/solidity', 'url': 'https://api.github.com/repos/ethereum/solidity'}, 'payload': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241732132', 'pull_request_review_id': 185079152, 'id': 241732132, 'node_id': 'MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MTczMjEzMg==', 'diff_hunk': '@@ -31,28 +31,27 @@ namespace langutil\\n \\n struct LineColumn\\n {\\n-\\tint line;\\n-\\tint column;\\n+\\tint line {-1};\\n+\\tint column {-1};\\n \\n+\\tLineColumn() = default;\\n \\tLineColumn(std::tuple const& _t): line{std::get<0>(_t)}, column{std::get<1>(_t)} {}\\n-\\tLineColumn(int _line, int _column): line{_line}, column{_column} {}\\n-\\tLineColumn(): line{-1}, column{-1} {}\\n };\\n \\n struct SourceReference\\n {\\n-\\tstd::string message; ///< A message that relates to this source reference (such as a warning or an error message).\\n-\\tstd::string sourceName; ///< Underlying source name (for example the filename).\\n-\\tLineColumn position; ///< Actual (error) position this source reference is surrounding.\\n-\\tbool multiline; ///< Indicates whether the actual SourceReference is truncated to one line.\\n-\\tstd::string text; ///< Extracted source code text (potentially truncated if multiline or too long).\\n-\\tint startColumn; ///< Highlighting range-start of text field.\\n-\\tint endColumn; ///< Highlighting range-end of text field.\\n+\\tstd::string message {}; ///< A message that relates to this source reference (such as a warning or an error message).', 'path': 'liblangutil/SourceReferenceExtractor.h', 'position': None, 'original_position': 24, 'commit_id': '714cb78794902d611f922aa52241baec2d9e8622', 'original_commit_id': '2b5bc6d892375402fedaa30a53eae992fb7aeceb', 'user': {'login': 'ekpyron', 'id': 1347491, 'node_id': 'MDQ6VXNlcjEzNDc0OTE=', 'avatar_url': 'https://avatars2.githubusercontent.com/u/1347491?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ekpyron', 'html_url': 'https://github.com/ekpyron', 'followers_url': 'https://api.github.com/users/ekpyron/followers', 'following_url': 'https://api.github.com/users/ekpyron/following{/other_user}', 'gists_url': 'https://api.github.com/users/ekpyron/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ekpyron/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ekpyron/subscriptions', 'organizations_url': 'https://api.github.com/users/ekpyron/orgs', 'repos_url': 'https://api.github.com/users/ekpyron/repos', 'events_url': 'https://api.github.com/users/ekpyron/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ekpyron/received_events', 'type': 'User', 'site_admin': False}, 'body': \"Or if you don't want the member to be default-constructed of course :-).\", 'created_at': '2018-12-14T11:58:58Z', 'updated_at': '2018-12-14T11:58:58Z', 'html_url': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241732132', 'pull_request_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments/241732132'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635#discussion_r241732132'}, 'pull_request': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}}, 'in_reply_to_id': 241059594}, 'pull_request': {'url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635', 'id': 238044883, 'node_id': 'MDExOlB1bGxSZXF1ZXN0MjM4MDQ0ODgz', 'html_url': 'https://github.com/ethereum/solidity/pull/5635', 'diff_url': 'https://github.com/ethereum/solidity/pull/5635.diff', 'patch_url': 'https://github.com/ethereum/solidity/pull/5635.patch', 'issue_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635', 'number': 5635, 'state': 'open', 'locked': False, 'title': '[RFC] C++ `=default` ctors/dtors and the use of non-static member initializer syntax.', 'user': {'login': 'christianparpart', 'id': 56763, 'node_id': 'MDQ6VXNlcjU2NzYz', 'avatar_url': 'https://avatars1.githubusercontent.com/u/56763?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/christianparpart', 'html_url': 'https://github.com/christianparpart', 'followers_url': 'https://api.github.com/users/christianparpart/followers', 'following_url': 'https://api.github.com/users/christianparpart/following{/other_user}', 'gists_url': 'https://api.github.com/users/christianparpart/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/christianparpart/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/christianparpart/subscriptions', 'organizations_url': 'https://api.github.com/users/christianparpart/orgs', 'repos_url': 'https://api.github.com/users/christianparpart/repos', 'events_url': 'https://api.github.com/users/christianparpart/events{/privacy}', 'received_events_url': 'https://api.github.com/users/christianparpart/received_events', 'type': 'User', 'site_admin': False}, 'body': '', 'created_at': '2018-12-12T13:53:00Z', 'updated_at': '2018-12-14T11:58:58Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '75667d52ed11b5b61047b9d43564f835408d92d3', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'commits_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits', 'review_comments_url': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments', 'review_comment_url': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622', 'head': {'label': 'ethereum:cpp-default-ctors', 'ref': 'cpp-default-ctors', 'sha': '714cb78794902d611f922aa52241baec2d9e8622', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, 'base': {'label': 'ethereum:develop', 'ref': 'develop', 'sha': '8d3617b7c522d74bcc36a1fbc1eb7c16bf96ad4d', 'user': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'repo': {'id': 40892817, 'node_id': 'MDEwOlJlcG9zaXRvcnk0MDg5MjgxNw==', 'name': 'solidity', 'full_name': 'ethereum/solidity', 'private': False, 'owner': {'login': 'ethereum', 'id': 6250754, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjYyNTA3NTQ=', 'avatar_url': 'https://avatars3.githubusercontent.com/u/6250754?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/ethereum', 'html_url': 'https://github.com/ethereum', 'followers_url': 'https://api.github.com/users/ethereum/followers', 'following_url': 'https://api.github.com/users/ethereum/following{/other_user}', 'gists_url': 'https://api.github.com/users/ethereum/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/ethereum/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/ethereum/subscriptions', 'organizations_url': 'https://api.github.com/users/ethereum/orgs', 'repos_url': 'https://api.github.com/users/ethereum/repos', 'events_url': 'https://api.github.com/users/ethereum/events{/privacy}', 'received_events_url': 'https://api.github.com/users/ethereum/received_events', 'type': 'Organization', 'site_admin': False}, 'html_url': 'https://github.com/ethereum/solidity', 'description': 'Solidity, the Contract-Oriented Programming Language', 'fork': False, 'url': 'https://api.github.com/repos/ethereum/solidity', 'forks_url': 'https://api.github.com/repos/ethereum/solidity/forks', 'keys_url': 'https://api.github.com/repos/ethereum/solidity/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/ethereum/solidity/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/ethereum/solidity/teams', 'hooks_url': 'https://api.github.com/repos/ethereum/solidity/hooks', 'issue_events_url': 'https://api.github.com/repos/ethereum/solidity/issues/events{/number}', 'events_url': 'https://api.github.com/repos/ethereum/solidity/events', 'assignees_url': 'https://api.github.com/repos/ethereum/solidity/assignees{/user}', 'branches_url': 'https://api.github.com/repos/ethereum/solidity/branches{/branch}', 'tags_url': 'https://api.github.com/repos/ethereum/solidity/tags', 'blobs_url': 'https://api.github.com/repos/ethereum/solidity/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/ethereum/solidity/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/ethereum/solidity/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/ethereum/solidity/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/ethereum/solidity/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/ethereum/solidity/languages', 'stargazers_url': 'https://api.github.com/repos/ethereum/solidity/stargazers', 'contributors_url': 'https://api.github.com/repos/ethereum/solidity/contributors', 'subscribers_url': 'https://api.github.com/repos/ethereum/solidity/subscribers', 'subscription_url': 'https://api.github.com/repos/ethereum/solidity/subscription', 'commits_url': 'https://api.github.com/repos/ethereum/solidity/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/ethereum/solidity/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/ethereum/solidity/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/ethereum/solidity/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/ethereum/solidity/contents/{+path}', 'compare_url': 'https://api.github.com/repos/ethereum/solidity/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/ethereum/solidity/merges', 'archive_url': 'https://api.github.com/repos/ethereum/solidity/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/ethereum/solidity/downloads', 'issues_url': 'https://api.github.com/repos/ethereum/solidity/issues{/number}', 'pulls_url': 'https://api.github.com/repos/ethereum/solidity/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/ethereum/solidity/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/ethereum/solidity/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/ethereum/solidity/labels{/name}', 'releases_url': 'https://api.github.com/repos/ethereum/solidity/releases{/id}', 'deployments_url': 'https://api.github.com/repos/ethereum/solidity/deployments', 'created_at': '2015-08-17T12:27:26Z', 'updated_at': '2018-12-14T11:05:24Z', 'pushed_at': '2018-12-14T11:22:03Z', 'git_url': 'git://github.com/ethereum/solidity.git', 'ssh_url': 'git@github.com:ethereum/solidity.git', 'clone_url': 'https://github.com/ethereum/solidity.git', 'svn_url': 'https://github.com/ethereum/solidity', 'homepage': 'https://solidity.readthedocs.io', 'size': 24942, 'stargazers_count': 6439, 'watchers_count': 6439, 'language': 'C++', 'has_issues': True, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'forks_count': 1736, 'mirror_url': None, 'archived': False, 'open_issues_count': 571, 'license': {'key': 'gpl-3.0', 'name': 'GNU General Public License v3.0', 'spdx_id': 'GPL-3.0', 'url': 'https://api.github.com/licenses/gpl-3.0', 'node_id': 'MDc6TGljZW5zZTk='}, 'forks': 1736, 'open_issues': 571, 'watchers': 6439, 'default_branch': 'develop'}}, '_links': {'self': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635'}, 'html': {'href': 'https://github.com/ethereum/solidity/pull/5635'}, 'issue': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635'}, 'comments': {'href': 'https://api.github.com/repos/ethereum/solidity/issues/5635/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/ethereum/solidity/pulls/5635/commits'}, 'statuses': {'href': 'https://api.github.com/repos/ethereum/solidity/statuses/714cb78794902d611f922aa52241baec2d9e8622'}}, 'author_association': 'CONTRIBUTOR'}}, 'public': True, 'created_at': '2018-12-14T11:58:58Z', 'org': {'id': 6250754, 'login': 'ethereum', 'gravatar_id': '', 'url': 'https://api.github.com/orgs/ethereum', 'avatar_url': 'https://avatars.githubusercontent.com/u/6250754?'}}\n" ] } ], @@ -255,6 +333,171 @@ " \n", " \n", " 0\n", + " 8754525909\n", + " PullRequestReviewCommentEvent\n", + " {'id': 1347491, 'login': 'ekpyron', 'display_l...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", + " True\n", + " 2018-12-14T11:58:58Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 1\n", + " 8754519640\n", + " PullRequestReviewCommentEvent\n", + " {'id': 1347491, 'login': 'ekpyron', 'display_l...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", + " True\n", + " 2018-12-14T11:57:37Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 2\n", + " 8754506804\n", + " IssueCommentEvent\n", + " {'id': 33515470, 'login': 'FrankSzendzielarz',...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-14T11:54:59Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 3\n", + " 8754492255\n", + " IssueCommentEvent\n", + " {'id': 9753150, 'login': 'njgheorghita', 'disp...\n", + " {'id': 147740703, 'name': 'ethereum/twig', 'ur...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-14T11:52:02Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 4\n", + " 8754489462\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137663541, 'size': 1, 'distinct_s...\n", + " True\n", + " 2018-12-14T11:51:28Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 5\n", + " 8754489149\n", + " IssueCommentEvent\n", + " {'id': 9753150, 'login': 'njgheorghita', 'disp...\n", + " {'id': 147572521, 'name': 'ethereum/pytest-eth...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", + " True\n", + " 2018-12-14T11:51:24Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 6\n", + " 8754482454\n", + " PushEvent\n", + " {'id': 3391420, 'login': 'ChihChengLiang', 'di...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'push_id': 3137659614, 'size': 1, 'distinct_s...\n", + " True\n", + " 2018-12-14T11:50:01Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 7\n", + " 8754482217\n", + " PullRequestEvent\n", + " {'id': 3391420, 'login': 'ChihChengLiang', 'di...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'closed', 'number': 1585, 'pull_req...\n", + " True\n", + " 2018-12-14T11:49:58Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 8\n", + " 8754482205\n", + " IssuesEvent\n", + " {'id': 3391420, 'login': 'ChihChengLiang', 'di...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'closed', 'issue': {'url': 'https:/...\n", + " True\n", + " 2018-12-14T11:49:58Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 9\n", + " 8754476425\n", + " PushEvent\n", + " {'id': 142290, 'login': 'holiman', 'display_lo...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'push_id': 3137656341, 'size': 1, 'distinct_s...\n", + " True\n", + " 2018-12-14T11:48:49Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 10\n", + " 8754476344\n", + " PullRequestEvent\n", + " {'id': 142290, 'login': 'holiman', 'display_lo...\n", + " {'id': 62554553, 'name': 'ethereum/hive', 'url...\n", + " {'action': 'closed', 'number': 161, 'pull_requ...\n", + " True\n", + " 2018-12-14T11:48:48Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 11\n", + " 8754473992\n", + " PushEvent\n", + " {'id': 9073706, 'login': 'chriseth', 'display_...\n", + " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", + " {'push_id': 3137655043, 'size': 1, 'distinct_s...\n", + " True\n", + " 2018-12-14T11:48:20Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 12\n", + " 8754469379\n", + " ForkEvent\n", + " {'id': 2289647, 'login': 'sot528', 'display_lo...\n", + " {'id': 44971752, 'name': 'ethereum/EIPs', 'url...\n", + " {'forkee': {'id': 161777630, 'node_id': 'MDEwO...\n", + " True\n", + " 2018-12-14T11:47:25Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 13\n", + " 8754466898\n", + " ForkEvent\n", + " {'id': 16860673, 'login': 'nguyenlyminhman', '...\n", + " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", + " {'forkee': {'id': 161777563, 'node_id': 'MDEwO...\n", + " True\n", + " 2018-12-14T11:46:52Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 14\n", + " 8754462601\n", + " ForkEvent\n", + " {'id': 16860673, 'login': 'nguyenlyminhman', '...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'forkee': {'id': 161777449, 'node_id': 'MDEwO...\n", + " True\n", + " 2018-12-14T11:45:55Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " \n", + " \n", + " 15\n", " 8754423427\n", " PushEvent\n", " {'id': 9073706, 'login': 'chriseth', 'display_...\n", @@ -265,7 +508,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 1\n", + " 16\n", " 8754416458\n", " PushEvent\n", " {'id': 9073706, 'login': 'chriseth', 'display_...\n", @@ -276,7 +519,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 2\n", + " 17\n", " 8754415961\n", " IssueCommentEvent\n", " {'id': 504195, 'login': 'leonardoalt', 'displa...\n", @@ -287,7 +530,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 3\n", + " 18\n", " 8754399511\n", " PushEvent\n", " {'id': 33515470, 'login': 'FrankSzendzielarz',...\n", @@ -298,7 +541,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 4\n", + " 19\n", " 8754394928\n", " ForkEvent\n", " {'id': 30716372, 'login': '3for', 'display_log...\n", @@ -309,7 +552,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 5\n", + " 20\n", " 8754394731\n", " WatchEvent\n", " {'id': 30716372, 'login': '3for', 'display_log...\n", @@ -320,7 +563,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 6\n", + " 21\n", " 8754392528\n", " PullRequestReviewCommentEvent\n", " {'id': 142290, 'login': 'holiman', 'display_lo...\n", @@ -331,7 +574,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 7\n", + " 22\n", " 8754383076\n", " WatchEvent\n", " {'id': 40417611, 'login': '1tD0g', 'display_lo...\n", @@ -342,7 +585,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 8\n", + " 23\n", " 8754382391\n", " PullRequestReviewCommentEvent\n", " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", @@ -353,7 +596,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 9\n", + " 24\n", " 8754371838\n", " IssueCommentEvent\n", " {'id': 44437404, 'login': 'naikmyeong', 'displ...\n", @@ -364,7 +607,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 10\n", + " 25\n", " 8754353877\n", " IssuesEvent\n", " {'id': 49922, 'login': 'miohtama', 'display_lo...\n", @@ -375,7 +618,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 11\n", + " 26\n", " 8754349538\n", " PushEvent\n", " {'id': 504195, 'login': 'leonardoalt', 'displa...\n", @@ -386,7 +629,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 12\n", + " 27\n", " 8754343870\n", " PushEvent\n", " {'id': 142290, 'login': 'holiman', 'display_lo...\n", @@ -397,7 +640,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 13\n", + " 28\n", " 8754343776\n", " PullRequestEvent\n", " {'id': 142290, 'login': 'holiman', 'display_lo...\n", @@ -408,7 +651,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 14\n", + " 29\n", " 8754335842\n", " WatchEvent\n", " {'id': 679887, 'login': 'hkk', 'display_login'...\n", @@ -419,183 +662,183 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 15\n", - " 8754329096\n", - " WatchEvent\n", - " {'id': 15720036, 'login': 'kyledewy', 'display...\n", - " {'id': 147572521, 'name': 'ethereum/pytest-eth...\n", - " {'action': 'started'}\n", - " True\n", - " 2018-12-14T11:17:45Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 16\n", - " 8754303327\n", - " ForkEvent\n", - " {'id': 10967038, 'login': 'racmnet', 'display_...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", - " {'forkee': {'id': 161773980, 'node_id': 'MDEwO...\n", + " 269\n", + " 8751322151\n", + " PullRequestReviewCommentEvent\n", + " {'id': 521109, 'login': 'cburgdorf', 'display_...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T11:12:27Z\n", + " 2018-12-13T21:57:31Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 17\n", - " 8754303002\n", + " 270\n", + " 8751308376\n", " WatchEvent\n", - " {'id': 10967038, 'login': 'racmnet', 'display_...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'id': 150418, 'login': 'alexwanng', 'display_...\n", + " {'id': 15409820, 'name': 'ethereum/pyethereum'...\n", " {'action': 'started'}\n", " True\n", - " 2018-12-14T11:12:23Z\n", + " 2018-12-13T21:54:43Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 18\n", - " 8754268209\n", - " WatchEvent\n", - " {'id': 1172733, 'login': 'toannk', 'display_lo...\n", - " {'id': 40892817, 'name': 'ethereum/solidity', ...\n", - " {'action': 'started'}\n", + " 271\n", + " 8751302449\n", + " PullRequestReviewCommentEvent\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T11:05:24Z\n", + " 2018-12-13T21:53:31Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 19\n", - " 8754240410\n", + " 272\n", + " 8751299140\n", " IssueCommentEvent\n", - " {'id': 4943570, 'login': 'b00ris', 'display_lo...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-14T11:00:05Z\n", + " 2018-12-13T21:52:53Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 20\n", - " 8754230101\n", + " 273\n", + " 8751299053\n", " PushEvent\n", - " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", - " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", - " {'push_id': 3137526125, 'size': 1, 'distinct_s...\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", + " {'push_id': 3135997741, 'size': 3, 'distinct_s...\n", " True\n", - " 2018-12-14T10:58:07Z\n", + " 2018-12-13T21:52:52Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 21\n", - " 8754229905\n", - " PullRequestReviewCommentEvent\n", - " {'id': 521109, 'login': 'cburgdorf', 'display_...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", + " 274\n", + " 8751298815\n", + " PullRequestEvent\n", + " {'id': 205327, 'login': 'carver', 'display_log...\n", + " {'id': 56251096, 'name': 'ethereum/web3.py', '...\n", + " {'action': 'closed', 'number': 1156, 'pull_req...\n", " True\n", - " 2018-12-14T10:58:04Z\n", + " 2018-12-13T21:52:50Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 22\n", - " 8754198367\n", + " 275\n", + " 8751296252\n", " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", - " {'push_id': 3137509444, 'size': 1, 'distinct_s...\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'push_id': 3135996289, 'size': 1, 'distinct_s...\n", " True\n", - " 2018-12-14T10:52:12Z\n", + " 2018-12-13T21:52:19Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 23\n", - " 8754172758\n", - " WatchEvent\n", - " {'id': 19657992, 'login': 'smgqk', 'display_lo...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", - " {'action': 'started'}\n", + " 276\n", + " 8751295980\n", + " PullRequestEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'closed', 'number': 1596, 'pull_req...\n", " True\n", - " 2018-12-14T10:47:12Z\n", + " 2018-12-13T21:52:15Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 24\n", - " 8754164859\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", - " {'push_id': 3137491975, 'size': 1, 'distinct_s...\n", + " 277\n", + " 8751293572\n", + " IssueCommentEvent\n", + " {'id': 8602661, 'login': 'jakerockland', 'disp...\n", + " {'id': 73461676, 'name': 'ethereum/vyper', 'ur...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-14T10:45:40Z\n", + " 2018-12-13T21:51:47Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 25\n", - " 8754150704\n", - " PushEvent\n", - " {'id': 9073706, 'login': 'chriseth', 'display_...\n", - " {'id': 85063629, 'name': 'ethereum/solidity-te...\n", - " {'push_id': 3137484484, 'size': 1, 'distinct_s...\n", + " 278\n", + " 8751289929\n", + " PullRequestReviewCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T10:42:58Z\n", + " 2018-12-13T21:51:03Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 26\n", - " 8754140773\n", - " WatchEvent\n", - " {'id': 8289914, 'login': 'cuidezhu', 'display_...\n", - " {'id': 22730041, 'name': 'ethereum/dapp-bin', ...\n", - " {'action': 'started'}\n", + " 279\n", + " 8751285736\n", + " PullRequestReviewCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T10:41:06Z\n", + " 2018-12-13T21:50:05Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 27\n", - " 8754137353\n", - " PushEvent\n", - " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", - " {'push_id': 3137477529, 'size': 10, 'distinct_...\n", + " 280\n", + " 8751285733\n", + " PullRequestReviewCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T10:40:28Z\n", + " 2018-12-13T21:47:07Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 28\n", - " 8754136734\n", - " DeleteEvent\n", - " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", - " {'ref': 'improve-discovery2', 'ref_type': 'bra...\n", + " 281\n", + " 8751285726\n", + " PullRequestReviewCommentEvent\n", + " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", + " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", + " {'action': 'created', 'comment': {'url': 'http...\n", " True\n", - " 2018-12-14T10:40:23Z\n", + " 2018-12-13T21:43:45Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 29\n", - " 8754136488\n", - " PullRequestEvent\n", - " {'id': 1863135, 'login': 'gumb0', 'display_log...\n", - " {'id': 15460666, 'name': 'ethereum/aleth', 'ur...\n", - " {'action': 'closed', 'number': 5380, 'pull_req...\n", + " 282\n", + " 8751282754\n", + " IssueCommentEvent\n", + " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", + " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", + " {'action': 'created', 'issue': {'url': 'https:...\n", " True\n", - " 2018-12-14T10:40:20Z\n", + " 2018-12-13T21:49:38Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", - " ...\n", + " 283\n", + " 8751267178\n", + " WatchEvent\n", + " {'id': 9257286, 'login': 'kswizzlek', 'display...\n", + " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", + " {'action': 'started'}\n", + " True\n", + " 2018-12-13T21:46:37Z\n", + " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 269\n", + " 284\n", " 8751261766\n", " IssueCommentEvent\n", " {'id': 205327, 'login': 'carver', 'display_log...\n", @@ -606,7 +849,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 270\n", + " 285\n", " 8751258080\n", " IssueCommentEvent\n", " {'id': 3859395, 'login': 'fubuloubu', 'display...\n", @@ -617,7 +860,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 271\n", + " 286\n", " 8751255701\n", " IssueCommentEvent\n", " {'id': 31577879, 'login': 'pryce-turner', 'dis...\n", @@ -628,7 +871,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 272\n", + " 287\n", " 8751249806\n", " PullRequestReviewCommentEvent\n", " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", @@ -639,7 +882,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 273\n", + " 288\n", " 8751242810\n", " WatchEvent\n", " {'id': 24497886, 'login': 'humboo', 'display_l...\n", @@ -650,7 +893,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 274\n", + " 289\n", " 8751235806\n", " WatchEvent\n", " {'id': 26033343, 'login': 'voermx', 'display_l...\n", @@ -661,7 +904,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 275\n", + " 290\n", " 8751227766\n", " PushEvent\n", " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", @@ -672,7 +915,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 276\n", + " 291\n", " 8751227484\n", " PullRequestEvent\n", " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", @@ -683,7 +926,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 277\n", + " 292\n", " 8751226793\n", " IssueCommentEvent\n", " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", @@ -694,7 +937,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 278\n", + " 293\n", " 8751226350\n", " IssueCommentEvent\n", " {'id': 205327, 'login': 'carver', 'display_log...\n", @@ -705,7 +948,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 279\n", + " 294\n", " 8751197343\n", " IssueCommentEvent\n", " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", @@ -716,7 +959,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 280\n", + " 295\n", " 8751195664\n", " IssuesEvent\n", " {'id': 3867501, 'login': 'charles-cooper', 'di...\n", @@ -727,7 +970,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 281\n", + " 296\n", " 8751185727\n", " PushEvent\n", " {'id': 205327, 'login': 'carver', 'display_log...\n", @@ -738,7 +981,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 282\n", + " 297\n", " 8751185184\n", " IssueCommentEvent\n", " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", @@ -749,7 +992,7 @@ " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", " \n", - " 283\n", + " 298\n", " 8751178030\n", " PullRequestEvent\n", " {'id': 6118832, 'login': 'sandakersmann', 'dis...\n", @@ -759,171 +1002,6 @@ " 2018-12-13T21:29:11Z\n", " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", " \n", - " \n", - " 284\n", - " 8751172385\n", - " CreateEvent\n", - " {'id': 47108, 'login': 'evertonfraga', 'displa...\n", - " {'id': 152745337, 'name': 'ethereum/mist-shell...\n", - " {'ref': 'circleci-mac', 'ref_type': 'branch', ...\n", - " True\n", - " 2018-12-13T21:28:03Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 285\n", - " 8751170970\n", - " ForkEvent\n", - " {'id': 6118832, 'login': 'sandakersmann', 'dis...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'forkee': {'id': 161696773, 'node_id': 'MDEwO...\n", - " True\n", - " 2018-12-13T21:27:47Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 286\n", - " 8751159042\n", - " PushEvent\n", - " {'id': 1699173, 'login': 'nivida', 'display_lo...\n", - " {'id': 24655114, 'name': 'ethereum/web3.js', '...\n", - " {'push_id': 3135924837, 'size': 1, 'distinct_s...\n", - " True\n", - " 2018-12-13T21:25:24Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 287\n", - " 8751139500\n", - " IssueCommentEvent\n", - " {'id': 37226745, 'login': 'binary-adam', 'disp...\n", - " {'id': 44971752, 'name': 'ethereum/EIPs', 'url...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:21:41Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 288\n", - " 8751118694\n", - " ReleaseEvent\n", - " {'id': 205327, 'login': 'carver', 'display_log...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'published', 'release': {'url': 'ht...\n", - " True\n", - " 2018-12-13T21:17:43Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 289\n", - " 8751115475\n", - " PullRequestReviewCommentEvent\n", - " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", - " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", - " True\n", - " 2018-12-13T21:16:31Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 290\n", - " 8751115473\n", - " PullRequestReviewCommentEvent\n", - " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", - " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", - " True\n", - " 2018-12-13T21:16:04Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 291\n", - " 8751115470\n", - " PullRequestReviewCommentEvent\n", - " {'id': 731743, 'login': 'JustinDrake', 'displa...\n", - " {'id': 149554797, 'name': 'ethereum/eth2.0-spe...\n", - " {'action': 'created', 'comment': {'url': 'http...\n", - " True\n", - " 2018-12-13T21:14:57Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 292\n", - " 8751109453\n", - " PullRequestEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'opened', 'number': 1596, 'pull_req...\n", - " True\n", - " 2018-12-13T21:15:56Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 293\n", - " 8751105603\n", - " IssueCommentEvent\n", - " {'id': 11574521, 'login': 'jpeletier', 'displa...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:15:11Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 294\n", - " 8751097538\n", - " IssueCommentEvent\n", - " {'id': 824194, 'login': 'pipermerriam', 'displ...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:13:35Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 295\n", - " 8751097418\n", - " IssueCommentEvent\n", - " {'id': 13686139, 'login': 'AlexeyAkhunov', 'di...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:13:34Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 296\n", - " 8751081989\n", - " IssueCommentEvent\n", - " {'id': 11574521, 'login': 'jpeletier', 'displa...\n", - " {'id': 15452919, 'name': 'ethereum/go-ethereum...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:10:35Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 297\n", - " 8751077292\n", - " IssueCommentEvent\n", - " {'id': 3036030, 'login': 'veox', 'display_logi...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:09:42Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", - " \n", - " 298\n", - " 8751058588\n", - " IssueCommentEvent\n", - " {'id': 3036030, 'login': 'veox', 'display_logi...\n", - " {'id': 77478378, 'name': 'ethereum/py-evm', 'u...\n", - " {'action': 'created', 'issue': {'url': 'https:...\n", - " True\n", - " 2018-12-13T21:06:12Z\n", - " {'id': 6250754, 'login': 'ethereum', 'gravatar...\n", - " \n", " \n", "\n", "

299 rows × 8 columns

\n", @@ -931,319 +1009,319 @@ ], "text/plain": [ " id type \\\n", - "0 8754423427 PushEvent \n", - "1 8754416458 PushEvent \n", - "2 8754415961 IssueCommentEvent \n", - "3 8754399511 PushEvent \n", - "4 8754394928 ForkEvent \n", - "5 8754394731 WatchEvent \n", - "6 8754392528 PullRequestReviewCommentEvent \n", - "7 8754383076 WatchEvent \n", - "8 8754382391 PullRequestReviewCommentEvent \n", - "9 8754371838 IssueCommentEvent \n", - "10 8754353877 IssuesEvent \n", - "11 8754349538 PushEvent \n", - "12 8754343870 PushEvent \n", - "13 8754343776 PullRequestEvent \n", - "14 8754335842 WatchEvent \n", - "15 8754329096 WatchEvent \n", - "16 8754303327 ForkEvent \n", - "17 8754303002 WatchEvent \n", - "18 8754268209 WatchEvent \n", - "19 8754240410 IssueCommentEvent \n", - "20 8754230101 PushEvent \n", - "21 8754229905 PullRequestReviewCommentEvent \n", - "22 8754198367 PushEvent \n", - "23 8754172758 WatchEvent \n", - "24 8754164859 PushEvent \n", - "25 8754150704 PushEvent \n", - "26 8754140773 WatchEvent \n", - "27 8754137353 PushEvent \n", - "28 8754136734 DeleteEvent \n", - "29 8754136488 PullRequestEvent \n", + "0 8754525909 PullRequestReviewCommentEvent \n", + "1 8754519640 PullRequestReviewCommentEvent \n", + "2 8754506804 IssueCommentEvent \n", + "3 8754492255 IssueCommentEvent \n", + "4 8754489462 PushEvent \n", + "5 8754489149 IssueCommentEvent \n", + "6 8754482454 PushEvent \n", + "7 8754482217 PullRequestEvent \n", + "8 8754482205 IssuesEvent \n", + "9 8754476425 PushEvent \n", + "10 8754476344 PullRequestEvent \n", + "11 8754473992 PushEvent \n", + "12 8754469379 ForkEvent \n", + "13 8754466898 ForkEvent \n", + "14 8754462601 ForkEvent \n", + "15 8754423427 PushEvent \n", + "16 8754416458 PushEvent \n", + "17 8754415961 IssueCommentEvent \n", + "18 8754399511 PushEvent \n", + "19 8754394928 ForkEvent \n", + "20 8754394731 WatchEvent \n", + "21 8754392528 PullRequestReviewCommentEvent \n", + "22 8754383076 WatchEvent \n", + "23 8754382391 PullRequestReviewCommentEvent \n", + "24 8754371838 IssueCommentEvent \n", + "25 8754353877 IssuesEvent \n", + "26 8754349538 PushEvent \n", + "27 8754343870 PushEvent \n", + "28 8754343776 PullRequestEvent \n", + "29 8754335842 WatchEvent \n", ".. ... ... \n", - "269 8751261766 IssueCommentEvent \n", - "270 8751258080 IssueCommentEvent \n", - "271 8751255701 IssueCommentEvent \n", - "272 8751249806 PullRequestReviewCommentEvent \n", - "273 8751242810 WatchEvent \n", - "274 8751235806 WatchEvent \n", - "275 8751227766 PushEvent \n", - "276 8751227484 PullRequestEvent \n", - "277 8751226793 IssueCommentEvent \n", - "278 8751226350 IssueCommentEvent \n", - "279 8751197343 IssueCommentEvent \n", - "280 8751195664 IssuesEvent \n", - "281 8751185727 PushEvent \n", - "282 8751185184 IssueCommentEvent \n", - "283 8751178030 PullRequestEvent \n", - "284 8751172385 CreateEvent \n", - "285 8751170970 ForkEvent \n", - "286 8751159042 PushEvent \n", - "287 8751139500 IssueCommentEvent \n", - "288 8751118694 ReleaseEvent \n", - "289 8751115475 PullRequestReviewCommentEvent \n", - "290 8751115473 PullRequestReviewCommentEvent \n", - "291 8751115470 PullRequestReviewCommentEvent \n", - "292 8751109453 PullRequestEvent \n", - "293 8751105603 IssueCommentEvent \n", - "294 8751097538 IssueCommentEvent \n", - "295 8751097418 IssueCommentEvent \n", - "296 8751081989 IssueCommentEvent \n", - "297 8751077292 IssueCommentEvent \n", - "298 8751058588 IssueCommentEvent \n", + "269 8751322151 PullRequestReviewCommentEvent \n", + "270 8751308376 WatchEvent \n", + "271 8751302449 PullRequestReviewCommentEvent \n", + "272 8751299140 IssueCommentEvent \n", + "273 8751299053 PushEvent \n", + "274 8751298815 PullRequestEvent \n", + "275 8751296252 PushEvent \n", + "276 8751295980 PullRequestEvent \n", + "277 8751293572 IssueCommentEvent \n", + "278 8751289929 PullRequestReviewCommentEvent \n", + "279 8751285736 PullRequestReviewCommentEvent \n", + "280 8751285733 PullRequestReviewCommentEvent \n", + "281 8751285726 PullRequestReviewCommentEvent \n", + "282 8751282754 IssueCommentEvent \n", + "283 8751267178 WatchEvent \n", + "284 8751261766 IssueCommentEvent \n", + "285 8751258080 IssueCommentEvent \n", + "286 8751255701 IssueCommentEvent \n", + "287 8751249806 PullRequestReviewCommentEvent \n", + "288 8751242810 WatchEvent \n", + "289 8751235806 WatchEvent \n", + "290 8751227766 PushEvent \n", + "291 8751227484 PullRequestEvent \n", + "292 8751226793 IssueCommentEvent \n", + "293 8751226350 IssueCommentEvent \n", + "294 8751197343 IssueCommentEvent \n", + "295 8751195664 IssuesEvent \n", + "296 8751185727 PushEvent \n", + "297 8751185184 IssueCommentEvent \n", + "298 8751178030 PullRequestEvent \n", "\n", " actor \\\n", - "0 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "1 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "2 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", - "3 {'id': 33515470, 'login': 'FrankSzendzielarz',... \n", - "4 {'id': 30716372, 'login': '3for', 'display_log... \n", - "5 {'id': 30716372, 'login': '3for', 'display_log... \n", - "6 {'id': 142290, 'login': 'holiman', 'display_lo... \n", - "7 {'id': 40417611, 'login': '1tD0g', 'display_lo... \n", - "8 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", - "9 {'id': 44437404, 'login': 'naikmyeong', 'displ... \n", - "10 {'id': 49922, 'login': 'miohtama', 'display_lo... \n", - "11 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", - "12 {'id': 142290, 'login': 'holiman', 'display_lo... \n", - "13 {'id': 142290, 'login': 'holiman', 'display_lo... \n", - "14 {'id': 679887, 'login': 'hkk', 'display_login'... \n", - "15 {'id': 15720036, 'login': 'kyledewy', 'display... \n", - "16 {'id': 10967038, 'login': 'racmnet', 'display_... \n", - "17 {'id': 10967038, 'login': 'racmnet', 'display_... \n", - "18 {'id': 1172733, 'login': 'toannk', 'display_lo... \n", - "19 {'id': 4943570, 'login': 'b00ris', 'display_lo... \n", - "20 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "21 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", - "22 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "23 {'id': 19657992, 'login': 'smgqk', 'display_lo... \n", - "24 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "25 {'id': 9073706, 'login': 'chriseth', 'display_... \n", - "26 {'id': 8289914, 'login': 'cuidezhu', 'display_... \n", - "27 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", - "28 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", - "29 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", + "0 {'id': 1347491, 'login': 'ekpyron', 'display_l... \n", + "1 {'id': 1347491, 'login': 'ekpyron', 'display_l... \n", + "2 {'id': 33515470, 'login': 'FrankSzendzielarz',... \n", + "3 {'id': 9753150, 'login': 'njgheorghita', 'disp... \n", + "4 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "5 {'id': 9753150, 'login': 'njgheorghita', 'disp... \n", + "6 {'id': 3391420, 'login': 'ChihChengLiang', 'di... \n", + "7 {'id': 3391420, 'login': 'ChihChengLiang', 'di... \n", + "8 {'id': 3391420, 'login': 'ChihChengLiang', 'di... \n", + "9 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "10 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "11 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "12 {'id': 2289647, 'login': 'sot528', 'display_lo... \n", + "13 {'id': 16860673, 'login': 'nguyenlyminhman', '... \n", + "14 {'id': 16860673, 'login': 'nguyenlyminhman', '... \n", + "15 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "16 {'id': 9073706, 'login': 'chriseth', 'display_... \n", + "17 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", + "18 {'id': 33515470, 'login': 'FrankSzendzielarz',... \n", + "19 {'id': 30716372, 'login': '3for', 'display_log... \n", + "20 {'id': 30716372, 'login': '3for', 'display_log... \n", + "21 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "22 {'id': 40417611, 'login': '1tD0g', 'display_lo... \n", + "23 {'id': 1863135, 'login': 'gumb0', 'display_log... \n", + "24 {'id': 44437404, 'login': 'naikmyeong', 'displ... \n", + "25 {'id': 49922, 'login': 'miohtama', 'display_lo... \n", + "26 {'id': 504195, 'login': 'leonardoalt', 'displa... \n", + "27 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "28 {'id': 142290, 'login': 'holiman', 'display_lo... \n", + "29 {'id': 679887, 'login': 'hkk', 'display_login'... \n", ".. ... \n", - "269 {'id': 205327, 'login': 'carver', 'display_log... \n", - "270 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", - "271 {'id': 31577879, 'login': 'pryce-turner', 'dis... \n", - "272 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "273 {'id': 24497886, 'login': 'humboo', 'display_l... \n", - "274 {'id': 26033343, 'login': 'voermx', 'display_l... \n", + "269 {'id': 521109, 'login': 'cburgdorf', 'display_... \n", + "270 {'id': 150418, 'login': 'alexwanng', 'display_... \n", + "271 {'id': 205327, 'login': 'carver', 'display_log... \n", + "272 {'id': 205327, 'login': 'carver', 'display_log... \n", + "273 {'id': 205327, 'login': 'carver', 'display_log... \n", + "274 {'id': 205327, 'login': 'carver', 'display_log... \n", "275 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", "276 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "277 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "278 {'id': 205327, 'login': 'carver', 'display_log... \n", + "277 {'id': 8602661, 'login': 'jakerockland', 'disp... \n", + "278 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", "279 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "280 {'id': 3867501, 'login': 'charles-cooper', 'di... \n", - "281 {'id': 205327, 'login': 'carver', 'display_log... \n", - "282 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "283 {'id': 6118832, 'login': 'sandakersmann', 'dis... \n", - "284 {'id': 47108, 'login': 'evertonfraga', 'displa... \n", - "285 {'id': 6118832, 'login': 'sandakersmann', 'dis... \n", - "286 {'id': 1699173, 'login': 'nivida', 'display_lo... \n", - "287 {'id': 37226745, 'login': 'binary-adam', 'disp... \n", - "288 {'id': 205327, 'login': 'carver', 'display_log... \n", - "289 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "290 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", - "291 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "280 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "281 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "282 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "283 {'id': 9257286, 'login': 'kswizzlek', 'display... \n", + "284 {'id': 205327, 'login': 'carver', 'display_log... \n", + "285 {'id': 3859395, 'login': 'fubuloubu', 'display... \n", + "286 {'id': 31577879, 'login': 'pryce-turner', 'dis... \n", + "287 {'id': 731743, 'login': 'JustinDrake', 'displa... \n", + "288 {'id': 24497886, 'login': 'humboo', 'display_l... \n", + "289 {'id': 26033343, 'login': 'voermx', 'display_l... \n", + "290 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "291 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", "292 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "293 {'id': 11574521, 'login': 'jpeletier', 'displa... \n", + "293 {'id': 205327, 'login': 'carver', 'display_log... \n", "294 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", - "295 {'id': 13686139, 'login': 'AlexeyAkhunov', 'di... \n", - "296 {'id': 11574521, 'login': 'jpeletier', 'displa... \n", - "297 {'id': 3036030, 'login': 'veox', 'display_logi... \n", - "298 {'id': 3036030, 'login': 'veox', 'display_logi... \n", + "295 {'id': 3867501, 'login': 'charles-cooper', 'di... \n", + "296 {'id': 205327, 'login': 'carver', 'display_log... \n", + "297 {'id': 824194, 'login': 'pipermerriam', 'displ... \n", + "298 {'id': 6118832, 'login': 'sandakersmann', 'dis... \n", "\n", " repo \\\n", - "0 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "1 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "2 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "3 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", - "4 {'id': 42808596, 'name': 'ethereum/research', ... \n", - "5 {'id': 42808596, 'name': 'ethereum/research', ... \n", - "6 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "0 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "1 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "2 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "3 {'id': 147740703, 'name': 'ethereum/twig', 'ur... \n", + "4 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "5 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "6 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "7 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "8 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "9 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "10 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "11 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "12 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", - "13 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", - "14 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "15 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", - "16 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "17 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "18 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", - "19 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "20 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "21 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "22 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "23 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "24 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "25 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", - "26 {'id': 22730041, 'name': 'ethereum/dapp-bin', ... \n", - "27 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "28 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", - "29 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "8 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "9 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "10 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "11 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "12 {'id': 44971752, 'name': 'ethereum/EIPs', 'url... \n", + "13 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "14 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "15 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "16 {'id': 85063629, 'name': 'ethereum/solidity-te... \n", + "17 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "18 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "19 {'id': 42808596, 'name': 'ethereum/research', ... \n", + "20 {'id': 42808596, 'name': 'ethereum/research', ... \n", + "21 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "22 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "23 {'id': 15460666, 'name': 'ethereum/aleth', 'ur... \n", + "24 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "25 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "26 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "27 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "28 {'id': 62554553, 'name': 'ethereum/hive', 'url... \n", + "29 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", ".. ... \n", "269 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "270 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", - "271 {'id': 63730598, 'name': 'ethereum/py-solc', '... \n", - "272 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "273 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "274 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "270 {'id': 15409820, 'name': 'ethereum/pyethereum'... \n", + "271 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "272 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "273 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", + "274 {'id': 56251096, 'name': 'ethereum/web3.py', '... \n", "275 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "276 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "277 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "278 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", - "279 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", - "280 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "277 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "278 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "279 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "280 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "281 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "282 {'id': 104133488, 'name': 'ethereum/eth-keys',... \n", - "283 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "284 {'id': 152745337, 'name': 'ethereum/mist-shell... \n", - "285 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "286 {'id': 24655114, 'name': 'ethereum/web3.js', '... \n", - "287 {'id': 44971752, 'name': 'ethereum/EIPs', 'url... \n", - "288 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "289 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "290 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", - "291 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "282 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "283 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "284 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "285 {'id': 73461676, 'name': 'ethereum/vyper', 'ur... \n", + "286 {'id': 63730598, 'name': 'ethereum/py-solc', '... \n", + "287 {'id': 149554797, 'name': 'ethereum/eth2.0-spe... \n", + "288 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", + "289 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "290 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "291 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "292 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "293 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "294 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "295 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", - "296 {'id': 15452919, 'name': 'ethereum/go-ethereum... \n", - "297 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "293 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "294 {'id': 147572521, 'name': 'ethereum/pytest-eth... \n", + "295 {'id': 40892817, 'name': 'ethereum/solidity', ... \n", + "296 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", + "297 {'id': 104133488, 'name': 'ethereum/eth-keys',... \n", "298 {'id': 77478378, 'name': 'ethereum/py-evm', 'u... \n", "\n", " payload public \\\n", - "0 {'push_id': 3137627808, 'size': 1, 'distinct_s... True \n", - "1 {'push_id': 3137624181, 'size': 1, 'distinct_s... True \n", + "0 {'action': 'created', 'comment': {'url': 'http... True \n", + "1 {'action': 'created', 'comment': {'url': 'http... True \n", "2 {'action': 'created', 'issue': {'url': 'https:... True \n", - "3 {'push_id': 3137615452, 'size': 1, 'distinct_s... True \n", - "4 {'forkee': {'id': 161775988, 'node_id': 'MDEwO... True \n", - "5 {'action': 'started'} True \n", - "6 {'action': 'created', 'comment': {'url': 'http... True \n", - "7 {'action': 'started'} True \n", - "8 {'action': 'created', 'comment': {'url': 'http... True \n", - "9 {'action': 'created', 'issue': {'url': 'https:... True \n", - "10 {'action': 'opened', 'issue': {'url': 'https:/... True \n", - "11 {'push_id': 3137588967, 'size': 6, 'distinct_s... True \n", - "12 {'push_id': 3137586095, 'size': 1, 'distinct_s... True \n", - "13 {'action': 'closed', 'number': 162, 'pull_requ... True \n", - "14 {'action': 'started'} True \n", - "15 {'action': 'started'} True \n", - "16 {'forkee': {'id': 161773980, 'node_id': 'MDEwO... True \n", - "17 {'action': 'started'} True \n", - "18 {'action': 'started'} True \n", - "19 {'action': 'created', 'issue': {'url': 'https:... True \n", - "20 {'push_id': 3137526125, 'size': 1, 'distinct_s... True \n", + "3 {'action': 'created', 'issue': {'url': 'https:... True \n", + "4 {'push_id': 3137663541, 'size': 1, 'distinct_s... True \n", + "5 {'action': 'created', 'issue': {'url': 'https:... True \n", + "6 {'push_id': 3137659614, 'size': 1, 'distinct_s... True \n", + "7 {'action': 'closed', 'number': 1585, 'pull_req... True \n", + "8 {'action': 'closed', 'issue': {'url': 'https:/... True \n", + "9 {'push_id': 3137656341, 'size': 1, 'distinct_s... True \n", + "10 {'action': 'closed', 'number': 161, 'pull_requ... True \n", + "11 {'push_id': 3137655043, 'size': 1, 'distinct_s... True \n", + "12 {'forkee': {'id': 161777630, 'node_id': 'MDEwO... True \n", + "13 {'forkee': {'id': 161777563, 'node_id': 'MDEwO... True \n", + "14 {'forkee': {'id': 161777449, 'node_id': 'MDEwO... True \n", + "15 {'push_id': 3137627808, 'size': 1, 'distinct_s... True \n", + "16 {'push_id': 3137624181, 'size': 1, 'distinct_s... True \n", + "17 {'action': 'created', 'issue': {'url': 'https:... True \n", + "18 {'push_id': 3137615452, 'size': 1, 'distinct_s... True \n", + "19 {'forkee': {'id': 161775988, 'node_id': 'MDEwO... True \n", + "20 {'action': 'started'} True \n", "21 {'action': 'created', 'comment': {'url': 'http... True \n", - "22 {'push_id': 3137509444, 'size': 1, 'distinct_s... True \n", - "23 {'action': 'started'} True \n", - "24 {'push_id': 3137491975, 'size': 1, 'distinct_s... True \n", - "25 {'push_id': 3137484484, 'size': 1, 'distinct_s... True \n", - "26 {'action': 'started'} True \n", - "27 {'push_id': 3137477529, 'size': 10, 'distinct_... True \n", - "28 {'ref': 'improve-discovery2', 'ref_type': 'bra... True \n", - "29 {'action': 'closed', 'number': 5380, 'pull_req... True \n", + "22 {'action': 'started'} True \n", + "23 {'action': 'created', 'comment': {'url': 'http... True \n", + "24 {'action': 'created', 'issue': {'url': 'https:... True \n", + "25 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "26 {'push_id': 3137588967, 'size': 6, 'distinct_s... True \n", + "27 {'push_id': 3137586095, 'size': 1, 'distinct_s... True \n", + "28 {'action': 'closed', 'number': 162, 'pull_requ... True \n", + "29 {'action': 'started'} True \n", ".. ... ... \n", - "269 {'action': 'created', 'issue': {'url': 'https:... True \n", - "270 {'action': 'created', 'issue': {'url': 'https:... True \n", - "271 {'action': 'created', 'issue': {'url': 'https:... True \n", - "272 {'action': 'created', 'comment': {'url': 'http... True \n", - "273 {'action': 'started'} True \n", - "274 {'action': 'started'} True \n", - "275 {'push_id': 3135960614, 'size': 1, 'distinct_s... True \n", - "276 {'action': 'closed', 'number': 1597, 'pull_req... True \n", + "269 {'action': 'created', 'comment': {'url': 'http... True \n", + "270 {'action': 'started'} True \n", + "271 {'action': 'created', 'comment': {'url': 'http... True \n", + "272 {'action': 'created', 'issue': {'url': 'https:... True \n", + "273 {'push_id': 3135997741, 'size': 3, 'distinct_s... True \n", + "274 {'action': 'closed', 'number': 1156, 'pull_req... True \n", + "275 {'push_id': 3135996289, 'size': 1, 'distinct_s... True \n", + "276 {'action': 'closed', 'number': 1596, 'pull_req... True \n", "277 {'action': 'created', 'issue': {'url': 'https:... True \n", - "278 {'action': 'created', 'issue': {'url': 'https:... True \n", - "279 {'action': 'created', 'issue': {'url': 'https:... True \n", - "280 {'action': 'opened', 'issue': {'url': 'https:/... True \n", - "281 {'push_id': 3135938748, 'size': 1, 'distinct_s... True \n", + "278 {'action': 'created', 'comment': {'url': 'http... True \n", + "279 {'action': 'created', 'comment': {'url': 'http... True \n", + "280 {'action': 'created', 'comment': {'url': 'http... True \n", + "281 {'action': 'created', 'comment': {'url': 'http... True \n", "282 {'action': 'created', 'issue': {'url': 'https:... True \n", - "283 {'action': 'opened', 'number': 1597, 'pull_req... True \n", - "284 {'ref': 'circleci-mac', 'ref_type': 'branch', ... True \n", - "285 {'forkee': {'id': 161696773, 'node_id': 'MDEwO... True \n", - "286 {'push_id': 3135924837, 'size': 1, 'distinct_s... True \n", - "287 {'action': 'created', 'issue': {'url': 'https:... True \n", - "288 {'action': 'published', 'release': {'url': 'ht... True \n", - "289 {'action': 'created', 'comment': {'url': 'http... True \n", - "290 {'action': 'created', 'comment': {'url': 'http... True \n", - "291 {'action': 'created', 'comment': {'url': 'http... True \n", - "292 {'action': 'opened', 'number': 1596, 'pull_req... True \n", + "283 {'action': 'started'} True \n", + "284 {'action': 'created', 'issue': {'url': 'https:... True \n", + "285 {'action': 'created', 'issue': {'url': 'https:... True \n", + "286 {'action': 'created', 'issue': {'url': 'https:... True \n", + "287 {'action': 'created', 'comment': {'url': 'http... True \n", + "288 {'action': 'started'} True \n", + "289 {'action': 'started'} True \n", + "290 {'push_id': 3135960614, 'size': 1, 'distinct_s... True \n", + "291 {'action': 'closed', 'number': 1597, 'pull_req... True \n", + "292 {'action': 'created', 'issue': {'url': 'https:... True \n", "293 {'action': 'created', 'issue': {'url': 'https:... True \n", "294 {'action': 'created', 'issue': {'url': 'https:... True \n", - "295 {'action': 'created', 'issue': {'url': 'https:... True \n", - "296 {'action': 'created', 'issue': {'url': 'https:... True \n", + "295 {'action': 'opened', 'issue': {'url': 'https:/... True \n", + "296 {'push_id': 3135938748, 'size': 1, 'distinct_s... True \n", "297 {'action': 'created', 'issue': {'url': 'https:... True \n", - "298 {'action': 'created', 'issue': {'url': 'https:... True \n", + "298 {'action': 'opened', 'number': 1597, 'pull_req... True \n", "\n", " created_at org \n", - "0 2018-12-14T11:37:25Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "1 2018-12-14T11:35:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "2 2018-12-14T11:35:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "3 2018-12-14T11:32:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "4 2018-12-14T11:31:32Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "5 2018-12-14T11:31:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "6 2018-12-14T11:31:01Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "7 2018-12-14T11:29:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "8 2018-12-14T11:28:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "9 2018-12-14T11:26:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "10 2018-12-14T11:22:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "11 2018-12-14T11:22:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "12 2018-12-14T11:20:52Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "13 2018-12-14T11:20:51Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "14 2018-12-14T11:19:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "15 2018-12-14T11:17:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "16 2018-12-14T11:12:27Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "17 2018-12-14T11:12:23Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "18 2018-12-14T11:05:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "19 2018-12-14T11:00:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "20 2018-12-14T10:58:07Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "21 2018-12-14T10:58:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "22 2018-12-14T10:52:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "23 2018-12-14T10:47:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "24 2018-12-14T10:45:40Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "25 2018-12-14T10:42:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "26 2018-12-14T10:41:06Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "27 2018-12-14T10:40:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "28 2018-12-14T10:40:23Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "29 2018-12-14T10:40:20Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "0 2018-12-14T11:58:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "1 2018-12-14T11:57:37Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "2 2018-12-14T11:54:59Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "3 2018-12-14T11:52:02Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "4 2018-12-14T11:51:28Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "5 2018-12-14T11:51:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "6 2018-12-14T11:50:01Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "7 2018-12-14T11:49:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "8 2018-12-14T11:49:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "9 2018-12-14T11:48:49Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "10 2018-12-14T11:48:48Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "11 2018-12-14T11:48:20Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "12 2018-12-14T11:47:25Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "13 2018-12-14T11:46:52Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "14 2018-12-14T11:45:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "15 2018-12-14T11:37:25Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "16 2018-12-14T11:35:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "17 2018-12-14T11:35:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "18 2018-12-14T11:32:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "19 2018-12-14T11:31:32Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "20 2018-12-14T11:31:29Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "21 2018-12-14T11:31:01Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "22 2018-12-14T11:29:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "23 2018-12-14T11:28:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "24 2018-12-14T11:26:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "25 2018-12-14T11:22:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "26 2018-12-14T11:22:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "27 2018-12-14T11:20:52Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "28 2018-12-14T11:20:51Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "29 2018-12-14T11:19:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", ".. ... ... \n", - "269 2018-12-13T21:45:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "270 2018-12-13T21:44:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "271 2018-12-13T21:44:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "272 2018-12-13T21:43:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "273 2018-12-13T21:41:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "274 2018-12-13T21:40:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "275 2018-12-13T21:38:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "276 2018-12-13T21:38:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "277 2018-12-13T21:38:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "278 2018-12-13T21:38:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "279 2018-12-13T21:32:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "280 2018-12-13T21:32:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "281 2018-12-13T21:30:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "282 2018-12-13T21:30:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "283 2018-12-13T21:29:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "284 2018-12-13T21:28:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "285 2018-12-13T21:27:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "286 2018-12-13T21:25:24Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "287 2018-12-13T21:21:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "288 2018-12-13T21:17:43Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "289 2018-12-13T21:16:31Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "290 2018-12-13T21:16:04Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "291 2018-12-13T21:14:57Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "292 2018-12-13T21:15:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "293 2018-12-13T21:15:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "294 2018-12-13T21:13:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "295 2018-12-13T21:13:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "296 2018-12-13T21:10:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "297 2018-12-13T21:09:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", - "298 2018-12-13T21:06:12Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "269 2018-12-13T21:57:31Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "270 2018-12-13T21:54:43Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "271 2018-12-13T21:53:31Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "272 2018-12-13T21:52:53Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "273 2018-12-13T21:52:52Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "274 2018-12-13T21:52:50Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "275 2018-12-13T21:52:19Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "276 2018-12-13T21:52:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "277 2018-12-13T21:51:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "278 2018-12-13T21:51:03Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "279 2018-12-13T21:50:05Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "280 2018-12-13T21:47:07Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "281 2018-12-13T21:43:45Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "282 2018-12-13T21:49:38Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "283 2018-12-13T21:46:37Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "284 2018-12-13T21:45:30Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "285 2018-12-13T21:44:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "286 2018-12-13T21:44:21Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "287 2018-12-13T21:43:15Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "288 2018-12-13T21:41:56Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "289 2018-12-13T21:40:34Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "290 2018-12-13T21:38:58Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "291 2018-12-13T21:38:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "292 2018-12-13T21:38:47Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "293 2018-12-13T21:38:41Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "294 2018-12-13T21:32:55Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "295 2018-12-13T21:32:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "296 2018-12-13T21:30:42Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "297 2018-12-13T21:30:35Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", + "298 2018-12-13T21:29:11Z {'id': 6250754, 'login': 'ethereum', 'gravatar... \n", "\n", "[299 rows x 8 columns]" ] @@ -1300,7 +1378,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'PushEvent': 36, 'IssueCommentEvent': 55, 'ForkEvent': 20, 'WatchEvent': 52, 'PullRequestReviewCommentEvent': 52, 'IssuesEvent': 19, 'PullRequestEvent': 35, 'DeleteEvent': 3, 'GollumEvent': 19, 'CreateEvent': 7, 'ReleaseEvent': 1}\n" + "{'PullRequestReviewCommentEvent': 51, 'IssueCommentEvent': 51, 'PushEvent': 39, 'PullRequestEvent': 36, 'IssuesEvent': 20, 'ForkEvent': 22, 'WatchEvent': 52, 'DeleteEvent': 3, 'GollumEvent': 19, 'CreateEvent': 6}\n" ] } ], @@ -1321,7 +1399,7 @@ "id": "Z0KZVGt_q4XD" }, "source": [ - "### Number of users who were involved in some activity on the ALSET GitHub page + most active contributor // BARCHART\n" + "### Number of users who were involved in some activity on the ethereum GitHub page + most active contributor // BARCHART\n" ] }, { @@ -1356,7 +1434,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 6, 'cburgdorf': 12, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 3, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 2, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 2, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 7, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 26, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 5, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}\n" + "{'ekpyron': 3, 'FrankSzendzielarz': 3, 'njgheorghita': 5, 'chriseth': 8, 'ChihChengLiang': 6, 'holiman': 19, 'sot528': 1, 'nguyenlyminhman': 2, 'leonardoalt': 2, '3for': 2, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 5, 'cburgdorf': 12, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 3, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 2, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 2, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 7, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 25, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 5, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 15, 'nivida': 2, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 2, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1}\n" ] } ], @@ -1461,7 +1539,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-14': {'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0, 'binary-adam': 0, 'jpeletier': 0, 'AlexeyAkhunov': 0, 'veox': 0}, '2018-12-13': {'chriseth': 0, 'leonardoalt': 0, 'FrankSzendzielarz': 0, '3for': 0, 'holiman': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 3, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'ekpyron': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'njgheorghita': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'ChihChengLiang': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 20, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}}\n" + "{'2018-12-14': {'ekpyron': 3, 'FrankSzendzielarz': 3, 'njgheorghita': 5, 'chriseth': 8, 'ChihChengLiang': 6, 'holiman': 19, 'sot528': 1, 'nguyenlyminhman': 2, 'leonardoalt': 2, '3for': 2, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0}, '2018-12-13': {'ekpyron': 0, 'FrankSzendzielarz': 0, 'njgheorghita': 0, 'chriseth': 0, 'ChihChengLiang': 0, 'holiman': 0, 'sot528': 0, 'nguyenlyminhman': 0, 'leonardoalt': 0, '3for': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 2, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 19, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 15, 'nivida': 2, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 2, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1}}\n" ] } ], @@ -1519,7 +1597,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'olidity-test-bytecode': 6, 'olidity': 12, 'ive': 8, 'esearch': 2, 'y-evm': 64, 'leth': 14, 'o-ethereum': 49, 'yper': 11, 'ytest-ethereum': 3, 'ist-shell': 6, 'app-bin': 1, 'eb3.js': 15, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 29, 'vmlab': 1, 'eb3.py': 19, 'IPs': 4, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 2, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}\n" + "{'olidity': 15, 'y-evm': 61, 'wig': 1, 'olidity-test-bytecode': 8, 'ytest-ethereum': 4, 'ive': 10, 'IPs': 4, 'o-ethereum': 48, 'esearch': 2, 'leth': 14, 'yper': 11, 'ist-shell': 5, 'app-bin': 1, 'eb3.js': 14, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 26, 'vmlab': 1, 'eb3.py': 19, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 2, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}\n" ] } ], @@ -1598,7 +1676,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-14': {'olidity-test-bytecode': 6, 'olidity': 10, 'ive': 8, 'esearch': 2, 'y-evm': 27, 'leth': 8, 'o-ethereum': 44, 'yper': 5, 'ytest-ethereum': 1, 'ist-shell': 3, 'app-bin': 1, 'eb3.js': 12, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 24, 'vmlab': 1, 'eb3.py': 5, 'IPs': 3, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 1, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 0, 'evp2p': 0, 'y-solc': 0, 'th-keys': 0}, '2018-12-13': {'olidity-test-bytecode': 0, 'olidity': 2, 'ive': 0, 'esearch': 0, 'y-evm': 37, 'leth': 6, 'o-ethereum': 5, 'yper': 6, 'ytest-ethereum': 2, 'ist-shell': 3, 'app-bin': 0, 'eb3.js': 3, 'iki': 0, 'y-ssz': 0, 'th2.0-specs': 5, 'vmlab': 0, 'eb3.py': 14, 'IPs': 1, 'y_ecc': 0, 'olc-js': 0, 'yethereum': 1, 'eteor-dapp-wallet': 0, 'eacon_chain': 0, 'harding': 0, 'ist': 0, 'ests': 0, 'nake-charmers-tactical-manual': 0, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}}\n" + "{'2018-12-14': {'olidity': 13, 'y-evm': 31, 'wig': 1, 'olidity-test-bytecode': 8, 'ytest-ethereum': 2, 'ive': 10, 'IPs': 4, 'o-ethereum': 45, 'esearch': 2, 'leth': 8, 'yper': 5, 'ist-shell': 3, 'app-bin': 1, 'eb3.js': 12, 'iki': 27, 'y-ssz': 1, 'th2.0-specs': 24, 'vmlab': 1, 'eb3.py': 5, 'y_ecc': 2, 'olc-js': 5, 'yethereum': 1, 'eteor-dapp-wallet': 1, 'eacon_chain': 7, 'harding': 1, 'ist': 1, 'ests': 1, 'nake-charmers-tactical-manual': 1, 'etesteth': 0, 'evp2p': 0, 'y-solc': 0, 'th-keys': 0}, '2018-12-13': {'olidity': 2, 'y-evm': 30, 'wig': 0, 'olidity-test-bytecode': 0, 'ytest-ethereum': 2, 'ive': 0, 'IPs': 0, 'o-ethereum': 3, 'esearch': 0, 'leth': 6, 'yper': 6, 'ist-shell': 2, 'app-bin': 0, 'eb3.js': 2, 'iki': 0, 'y-ssz': 0, 'th2.0-specs': 2, 'vmlab': 0, 'eb3.py': 14, 'y_ecc': 0, 'olc-js': 0, 'yethereum': 1, 'eteor-dapp-wallet': 0, 'eacon_chain': 0, 'harding': 0, 'ist': 0, 'ests': 0, 'nake-charmers-tactical-manual': 0, 'etesteth': 3, 'evp2p': 1, 'y-solc': 1, 'th-keys': 1}}\n" ] } ], @@ -1789,7 +1867,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'Early Bird': {'2018-12-14': 142}, 'Midday': {}, 'Night Owl': {'2018-12-14': 66, '2018-12-13': 91}}\n" + "{'Early Bird': {'2018-12-14': 157}, 'Midday': {}, 'Night Owl': {'2018-12-14': 66, '2018-12-13': 76}}\n" ] } ], @@ -1860,7 +1938,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'veox', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'sot528', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nguyenlyminhman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'sandakersmann', 'type': 'bar'}]\n" ] } ], @@ -1920,7 +1998,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-14': 101, '2018-12-13': 28}\n" + "{'2018-12-14': 103, '2018-12-13': 24}\n" ] } ], @@ -1979,7 +2057,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-14': 101, '2018-12-13': 28}\n" + "{'2018-12-14': 103, '2018-12-13': 24}\n" ] } ], @@ -2027,7 +2105,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'veox', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'chriseth', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'holiman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'sot528', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nguyenlyminhman', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': '3for', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '1tD0g', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'gumb0', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miohtama', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hkk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'racmnet', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'toannk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'b00ris', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'smgqk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'totaking', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'z08053520', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lag945', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jolestar', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'mratsim', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'ligi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'aj07', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nisdas', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'cderong', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'serical', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Bytom', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'IExpo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'novemberde', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lola73', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vardan10', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'nanjia', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'NIC619', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'yorzi', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'dete', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'nolash', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 1], 'name': 'carver', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0], 'name': 'zelig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'nivida', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'ur5us', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'davesque', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'humboo', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'voermx', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [0, 0], 'name': 'sandakersmann', 'type': 'bar'}]\n" ] } ], @@ -2104,7 +2182,7 @@ "output_type": "stream", "text": [ "0\n", - "{'1 Week(s) Ago': 121}\n" + "{'1 Week(s) Ago': 119}\n" ] } ], @@ -2168,8 +2246,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'2018-12-14': {'chriseth': 6, 'leonardoalt': 2, 'FrankSzendzielarz': 2, '3for': 2, 'holiman': 17, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 3, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'ChihChengLiang': 3, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0, 'binary-adam': 0, 'jpeletier': 0, 'AlexeyAkhunov': 0, 'veox': 0}, '2018-12-13': {'chriseth': 0, 'leonardoalt': 0, 'FrankSzendzielarz': 0, '3for': 0, 'holiman': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 3, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'ekpyron': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'njgheorghita': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'ChihChengLiang': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 20, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 17, 'nivida': 3, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 5, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 2, 'binary-adam': 1, 'jpeletier': 2, 'AlexeyAkhunov': 1, 'veox': 2}}\n", - "{'1 Week(s) Ago': {'chriseth': 1, 'leonardoalt': 1, 'FrankSzendzielarz': 1, '3for': 1, 'holiman': 1, '1tD0g': 1, 'gumb0': 1, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 1, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 1, 'cburgdorf': 1, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'ekpyron': 1, 'codecov[bot]': 1, 'christianparpart': 1, 'nafidurmus': 1, 'joshstevens19': 1, 'totaking': 1, 'z08053520': 1, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 1, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'njgheorghita': 1, 'hwwhww': 1, 'jamesray1': 1, 'nisdas': 1, 'ChihChengLiang': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 1, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 1, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 1, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 1, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 1, 'carver': 1, 'pakaplace': 1, 'zelig': 1, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 1, 'ajbennett': 1, 'fubuloubu': 1, 'pipermerriam': 1, 'nivida': 1, 'winsvega': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1, 'binary-adam': 1, 'jpeletier': 1, 'AlexeyAkhunov': 1, 'veox': 1}}\n" + "{'2018-12-14': {'ekpyron': 3, 'FrankSzendzielarz': 3, 'njgheorghita': 5, 'chriseth': 8, 'ChihChengLiang': 6, 'holiman': 19, 'sot528': 1, 'nguyenlyminhman': 2, 'leonardoalt': 2, '3for': 2, '1tD0g': 1, 'gumb0': 4, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 2, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 3, 'cburgdorf': 9, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'codecov[bot]': 1, 'christianparpart': 3, 'nafidurmus': 1, 'joshstevens19': 2, 'totaking': 3, 'z08053520': 2, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 3, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'hwwhww': 19, 'jamesray1': 17, 'nisdas': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 2, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 3, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 2, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 10, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 2, 'carver': 6, 'pakaplace': 1, 'zelig': 5, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 0, 'ajbennett': 0, 'fubuloubu': 0, 'pipermerriam': 0, 'nivida': 0, 'winsvega': 0, 'ur5us': 0, 'davesque': 0, 'Jeongjaegu': 0, 'alexwanng': 0, 'JustinDrake': 0, 'kswizzlek': 0, 'pryce-turner': 0, 'humboo': 0, 'voermx': 0, 'sandakersmann': 0}, '2018-12-13': {'ekpyron': 0, 'FrankSzendzielarz': 0, 'njgheorghita': 0, 'chriseth': 0, 'ChihChengLiang': 0, 'holiman': 0, 'sot528': 0, 'nguyenlyminhman': 0, 'leonardoalt': 0, '3for': 0, '1tD0g': 0, 'gumb0': 0, 'naikmyeong': 0, 'miohtama': 0, 'hkk': 0, 'kyledewy': 0, 'racmnet': 0, 'toannk': 0, 'b00ris': 0, 'evertonfraga': 2, 'cburgdorf': 3, 'smgqk': 0, 'cuidezhu': 0, '0xC0DE4C0FFEE': 0, 'rodrigo-garcia-leon': 0, 'codecov[bot]': 0, 'christianparpart': 0, 'nafidurmus': 0, 'joshstevens19': 0, 'totaking': 0, 'z08053520': 0, 'lishenglincn': 0, 'lag945': 0, 'jannikluhn': 0, 'shimakaze-git': 0, 'jolestar': 0, 'mratsim': 0, 'xiaoch05': 0, 'cheatfate': 0, 'Dreampursers': 0, 'ligi': 0, 'Drunpi': 0, 'jinhokong': 0, 'aj07': 0, 'hwwhww': 0, 'jamesray1': 0, 'nisdas': 0, 'cderong': 0, 'serical': 0, 'yahtoo': 0, 'ByLuxury': 0, 'Bhargavasomu': 0, 'jakerockland': 2, 'ParkIan': 0, 'Bytom': 0, 'RichardLai88': 0, 'chrislo2004': 0, 'jeikhan': 0, 'IExpo': 0, 'zhiyul': 0, 'novemberde': 0, 'naveen7252': 0, 'quangdo3112': 0, 'bhalla98': 0, 'rexshihaoren': 0, 'lola73': 0, 'rauljordan': 0, 'vardan10': 0, 'YaoZengzeng': 0, 'amitOodles': 0, 'nanjia': 0, 'xuefengyuan': 0, 'Tinycl': 0, 'Gilbertly': 0, 'ArnauSantamaria': 0, 'charles-cooper': 1, 'hsauers5': 0, 'vinaymavi': 0, 'vbuterin': 0, 'anirudh-chhangani': 0, 'hiro8ma': 0, 'NIC619': 0, 'jeojoe': 0, 'dctlsk': 0, 'codecov-io': 1, 'yorzi': 0, 'chiaki-i': 0, 'coolhackboy': 0, 'halfalicious': 6, 'dete': 0, 'zouguangxian': 0, 'landedexperts': 0, 'SamuelMarks': 0, 'nolash': 0, 'carver': 19, 'pakaplace': 0, 'zelig': 0, 'lostjcwide': 0, 'tootooquan': 0, 'BITjiangrui': 0, 'akkaorig': 0, 'miguelmota': 0, 'kclowes': 4, 'dylanjw': 3, 'ajbennett': 1, 'fubuloubu': 4, 'pipermerriam': 15, 'nivida': 2, 'winsvega': 2, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 2, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1}}\n", + "{'1 Week(s) Ago': {'ekpyron': 1, 'FrankSzendzielarz': 1, 'njgheorghita': 1, 'chriseth': 1, 'ChihChengLiang': 1, 'holiman': 1, 'sot528': 1, 'nguyenlyminhman': 1, 'leonardoalt': 1, '3for': 1, '1tD0g': 1, 'gumb0': 1, 'naikmyeong': 1, 'miohtama': 1, 'hkk': 1, 'kyledewy': 1, 'racmnet': 1, 'toannk': 1, 'b00ris': 1, 'evertonfraga': 1, 'cburgdorf': 1, 'smgqk': 1, 'cuidezhu': 1, '0xC0DE4C0FFEE': 1, 'rodrigo-garcia-leon': 1, 'codecov[bot]': 1, 'christianparpart': 1, 'nafidurmus': 1, 'joshstevens19': 1, 'totaking': 1, 'z08053520': 1, 'lishenglincn': 1, 'lag945': 1, 'jannikluhn': 1, 'shimakaze-git': 1, 'jolestar': 1, 'mratsim': 1, 'xiaoch05': 1, 'cheatfate': 1, 'Dreampursers': 1, 'ligi': 1, 'Drunpi': 1, 'jinhokong': 1, 'aj07': 1, 'hwwhww': 1, 'jamesray1': 1, 'nisdas': 1, 'cderong': 1, 'serical': 1, 'yahtoo': 1, 'ByLuxury': 1, 'Bhargavasomu': 1, 'jakerockland': 1, 'ParkIan': 1, 'Bytom': 1, 'RichardLai88': 1, 'chrislo2004': 1, 'jeikhan': 1, 'IExpo': 1, 'zhiyul': 1, 'novemberde': 1, 'naveen7252': 1, 'quangdo3112': 1, 'bhalla98': 1, 'rexshihaoren': 1, 'lola73': 1, 'rauljordan': 1, 'vardan10': 1, 'YaoZengzeng': 1, 'amitOodles': 1, 'nanjia': 1, 'xuefengyuan': 1, 'Tinycl': 1, 'Gilbertly': 1, 'ArnauSantamaria': 1, 'charles-cooper': 1, 'hsauers5': 1, 'vinaymavi': 1, 'vbuterin': 1, 'anirudh-chhangani': 1, 'hiro8ma': 1, 'NIC619': 1, 'jeojoe': 1, 'dctlsk': 1, 'codecov-io': 1, 'yorzi': 1, 'chiaki-i': 1, 'coolhackboy': 1, 'halfalicious': 1, 'dete': 1, 'zouguangxian': 1, 'landedexperts': 1, 'SamuelMarks': 1, 'nolash': 1, 'carver': 1, 'pakaplace': 1, 'zelig': 1, 'lostjcwide': 1, 'tootooquan': 1, 'BITjiangrui': 1, 'akkaorig': 1, 'miguelmota': 1, 'kclowes': 1, 'dylanjw': 1, 'ajbennett': 1, 'fubuloubu': 1, 'pipermerriam': 1, 'nivida': 1, 'winsvega': 1, 'ur5us': 1, 'davesque': 1, 'Jeongjaegu': 1, 'alexwanng': 1, 'JustinDrake': 1, 'kswizzlek': 1, 'pryce-turner': 1, 'humboo': 1, 'voermx': 1, 'sandakersmann': 1}}\n" ] } ], @@ -2234,7 +2312,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '3for', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'holiman', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '1tD0g', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gumb0', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miohtama', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hkk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'racmnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'toannk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'b00ris', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'smgqk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'totaking', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'z08053520', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lag945', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jolestar', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'mratsim', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ligi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'aj07', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nisdas', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cderong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'serical', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bytom', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'IExpo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'novemberde', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lola73', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vardan10', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nanjia', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'NIC619', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yorzi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dete', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zelig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'binary-adam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jpeletier', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'AlexeyAkhunov', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'veox', 'type': 'bar'}]\n" + "[{'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ekpyron', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'FrankSzendzielarz', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'njgheorghita', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chriseth', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ChihChengLiang', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'holiman', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sot528', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nguyenlyminhman', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'leonardoalt', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '3for', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '1tD0g', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'gumb0', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naikmyeong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miohtama', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hkk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kyledewy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'racmnet', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'toannk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'b00ris', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'evertonfraga', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cburgdorf', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'smgqk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cuidezhu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': '0xC0DE4C0FFEE', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rodrigo-garcia-leon', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov[bot]', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'christianparpart', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nafidurmus', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'joshstevens19', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'totaking', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'z08053520', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lishenglincn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lag945', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jannikluhn', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'shimakaze-git', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jolestar', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'mratsim', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xiaoch05', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cheatfate', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Dreampursers', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ligi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Drunpi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jinhokong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'aj07', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hwwhww', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jamesray1', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nisdas', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'cderong', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'serical', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yahtoo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ByLuxury', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bhargavasomu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jakerockland', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ParkIan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Bytom', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'RichardLai88', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chrislo2004', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeikhan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'IExpo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zhiyul', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'novemberde', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'naveen7252', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'quangdo3112', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'bhalla98', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rexshihaoren', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lola73', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'rauljordan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vardan10', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'YaoZengzeng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'amitOodles', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nanjia', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'xuefengyuan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Tinycl', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Gilbertly', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ArnauSantamaria', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'charles-cooper', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hsauers5', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vinaymavi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'vbuterin', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'anirudh-chhangani', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'hiro8ma', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'NIC619', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'jeojoe', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dctlsk', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'codecov-io', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'yorzi', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'chiaki-i', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'coolhackboy', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'halfalicious', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dete', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zouguangxian', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'landedexperts', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'SamuelMarks', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nolash', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'carver', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pakaplace', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'zelig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'lostjcwide', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'tootooquan', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'BITjiangrui', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'akkaorig', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'miguelmota', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kclowes', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'dylanjw', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ajbennett', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'fubuloubu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pipermerriam', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'nivida', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'winsvega', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'ur5us', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'davesque', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'Jeongjaegu', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'alexwanng', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'JustinDrake', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'kswizzlek', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'pryce-turner', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'humboo', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'voermx', 'type': 'bar'}, {'x': ['1 Week(s) Ago'], 'y': [1], 'name': 'sandakersmann', 'type': 'bar'}]\n" ] } ], @@ -2356,7 +2434,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['PushEvent', 'IssueCommentEvent', 'ForkEvent', 'WatchEvent', 'PullRequestReviewCommentEvent', 'IssuesEvent', 'PullRequestEvent', 'DeleteEvent', 'GollumEvent', 'CreateEvent', 'ReleaseEvent'] [36, 55, 20, 52, 52, 19, 35, 3, 19, 7, 1]\n" + "['PullRequestReviewCommentEvent', 'IssueCommentEvent', 'PushEvent', 'PullRequestEvent', 'IssuesEvent', 'ForkEvent', 'WatchEvent', 'DeleteEvent', 'GollumEvent', 'CreateEvent'] [51, 51, 39, 36, 20, 22, 52, 3, 19, 6]\n" ] } ], @@ -2538,7 +2616,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'chriseth': ['2018-12-14', '2018-12-13'], 'leonardoalt': ['2018-12-14', '2018-12-13'], 'FrankSzendzielarz': ['2018-12-14', '2018-12-13'], '3for': ['2018-12-14', '2018-12-13'], 'holiman': ['2018-12-14', '2018-12-13'], '1tD0g': ['2018-12-14', '2018-12-13'], 'gumb0': ['2018-12-14', '2018-12-13'], 'naikmyeong': ['2018-12-14', '2018-12-13'], 'miohtama': ['2018-12-14', '2018-12-13'], 'hkk': ['2018-12-14', '2018-12-13'], 'kyledewy': ['2018-12-14', '2018-12-13'], 'racmnet': ['2018-12-14', '2018-12-13'], 'toannk': ['2018-12-14', '2018-12-13'], 'b00ris': ['2018-12-14', '2018-12-13'], 'evertonfraga': ['2018-12-14', '2018-12-13'], 'cburgdorf': ['2018-12-14', '2018-12-13'], 'smgqk': ['2018-12-14', '2018-12-13'], 'cuidezhu': ['2018-12-14', '2018-12-13'], '0xC0DE4C0FFEE': ['2018-12-14', '2018-12-13'], 'rodrigo-garcia-leon': ['2018-12-14', '2018-12-13'], 'ekpyron': ['2018-12-14', '2018-12-13'], 'codecov[bot]': ['2018-12-14', '2018-12-13'], 'christianparpart': ['2018-12-14', '2018-12-13'], 'nafidurmus': ['2018-12-14', '2018-12-13'], 'joshstevens19': ['2018-12-14', '2018-12-13'], 'totaking': ['2018-12-14', '2018-12-13'], 'z08053520': ['2018-12-14', '2018-12-13'], 'lishenglincn': ['2018-12-14', '2018-12-13'], 'lag945': ['2018-12-14', '2018-12-13'], 'jannikluhn': ['2018-12-14', '2018-12-13'], 'shimakaze-git': ['2018-12-14', '2018-12-13'], 'jolestar': ['2018-12-14', '2018-12-13'], 'mratsim': ['2018-12-14', '2018-12-13'], 'xiaoch05': ['2018-12-14', '2018-12-13'], 'cheatfate': ['2018-12-14', '2018-12-13'], 'Dreampursers': ['2018-12-14', '2018-12-13'], 'ligi': ['2018-12-14', '2018-12-13'], 'Drunpi': ['2018-12-14', '2018-12-13'], 'jinhokong': ['2018-12-14', '2018-12-13'], 'aj07': ['2018-12-14', '2018-12-13'], 'njgheorghita': ['2018-12-14', '2018-12-13'], 'hwwhww': ['2018-12-14', '2018-12-13'], 'jamesray1': ['2018-12-14', '2018-12-13'], 'nisdas': ['2018-12-14', '2018-12-13'], 'ChihChengLiang': ['2018-12-14', '2018-12-13'], 'cderong': ['2018-12-14', '2018-12-13'], 'serical': ['2018-12-14', '2018-12-13'], 'yahtoo': ['2018-12-14', '2018-12-13'], 'ByLuxury': ['2018-12-14', '2018-12-13'], 'Bhargavasomu': ['2018-12-14', '2018-12-13'], 'jakerockland': ['2018-12-14', '2018-12-13'], 'ParkIan': ['2018-12-14', '2018-12-13'], 'Bytom': ['2018-12-14', '2018-12-13'], 'RichardLai88': ['2018-12-14', '2018-12-13'], 'chrislo2004': ['2018-12-14', '2018-12-13'], 'jeikhan': ['2018-12-14', '2018-12-13'], 'IExpo': ['2018-12-14', '2018-12-13'], 'zhiyul': ['2018-12-14', '2018-12-13'], 'novemberde': ['2018-12-14', '2018-12-13'], 'naveen7252': ['2018-12-14', '2018-12-13'], 'quangdo3112': ['2018-12-14', '2018-12-13'], 'bhalla98': ['2018-12-14', '2018-12-13'], 'rexshihaoren': ['2018-12-14', '2018-12-13'], 'lola73': ['2018-12-14', '2018-12-13'], 'rauljordan': ['2018-12-14', '2018-12-13'], 'vardan10': ['2018-12-14', '2018-12-13'], 'YaoZengzeng': ['2018-12-14', '2018-12-13'], 'amitOodles': ['2018-12-14', '2018-12-13'], 'nanjia': ['2018-12-14', '2018-12-13'], 'xuefengyuan': ['2018-12-14', '2018-12-13'], 'Tinycl': ['2018-12-14', '2018-12-13'], 'Gilbertly': ['2018-12-14', '2018-12-13'], 'ArnauSantamaria': ['2018-12-14', '2018-12-13'], 'charles-cooper': ['2018-12-14', '2018-12-13'], 'hsauers5': ['2018-12-14', '2018-12-13'], 'vinaymavi': ['2018-12-14', '2018-12-13'], 'vbuterin': ['2018-12-14', '2018-12-13'], 'anirudh-chhangani': ['2018-12-14', '2018-12-13'], 'hiro8ma': ['2018-12-14', '2018-12-13'], 'NIC619': ['2018-12-14', '2018-12-13'], 'jeojoe': ['2018-12-14', '2018-12-13'], 'dctlsk': ['2018-12-14', '2018-12-13'], 'codecov-io': ['2018-12-14', '2018-12-13'], 'yorzi': ['2018-12-14', '2018-12-13'], 'chiaki-i': ['2018-12-14', '2018-12-13'], 'coolhackboy': ['2018-12-14', '2018-12-13'], 'halfalicious': ['2018-12-14', '2018-12-13'], 'dete': ['2018-12-14', '2018-12-13'], 'zouguangxian': ['2018-12-14', '2018-12-13'], 'landedexperts': ['2018-12-14', '2018-12-13'], 'SamuelMarks': ['2018-12-14', '2018-12-13'], 'nolash': ['2018-12-14', '2018-12-13'], 'carver': ['2018-12-14', '2018-12-13'], 'pakaplace': ['2018-12-14', '2018-12-13'], 'zelig': ['2018-12-14', '2018-12-13'], 'lostjcwide': ['2018-12-14', '2018-12-13'], 'tootooquan': ['2018-12-14', '2018-12-13'], 'BITjiangrui': ['2018-12-14', '2018-12-13'], 'akkaorig': ['2018-12-14', '2018-12-13'], 'miguelmota': ['2018-12-14', '2018-12-13'], 'kclowes': ['2018-12-14', '2018-12-13'], 'dylanjw': ['2018-12-14', '2018-12-13'], 'ajbennett': ['2018-12-14', '2018-12-13'], 'fubuloubu': ['2018-12-14', '2018-12-13'], 'pipermerriam': ['2018-12-14', '2018-12-13'], 'nivida': ['2018-12-14', '2018-12-13'], 'winsvega': ['2018-12-14', '2018-12-13'], 'ur5us': ['2018-12-14', '2018-12-13'], 'davesque': ['2018-12-14', '2018-12-13'], 'Jeongjaegu': ['2018-12-14', '2018-12-13'], 'alexwanng': ['2018-12-14', '2018-12-13'], 'JustinDrake': ['2018-12-14', '2018-12-13'], 'kswizzlek': ['2018-12-14', '2018-12-13'], 'pryce-turner': ['2018-12-14', '2018-12-13'], 'humboo': ['2018-12-14', '2018-12-13'], 'voermx': ['2018-12-14', '2018-12-13'], 'sandakersmann': ['2018-12-14', '2018-12-13'], 'binary-adam': ['2018-12-14', '2018-12-13'], 'jpeletier': ['2018-12-14', '2018-12-13'], 'AlexeyAkhunov': ['2018-12-14', '2018-12-13'], 'veox': ['2018-12-14', '2018-12-13']}\n" + "{'ekpyron': ['2018-12-14', '2018-12-13'], 'FrankSzendzielarz': ['2018-12-14', '2018-12-13'], 'njgheorghita': ['2018-12-14', '2018-12-13'], 'chriseth': ['2018-12-14', '2018-12-13'], 'ChihChengLiang': ['2018-12-14', '2018-12-13'], 'holiman': ['2018-12-14', '2018-12-13'], 'sot528': ['2018-12-14', '2018-12-13'], 'nguyenlyminhman': ['2018-12-14', '2018-12-13'], 'leonardoalt': ['2018-12-14', '2018-12-13'], '3for': ['2018-12-14', '2018-12-13'], '1tD0g': ['2018-12-14', '2018-12-13'], 'gumb0': ['2018-12-14', '2018-12-13'], 'naikmyeong': ['2018-12-14', '2018-12-13'], 'miohtama': ['2018-12-14', '2018-12-13'], 'hkk': ['2018-12-14', '2018-12-13'], 'kyledewy': ['2018-12-14', '2018-12-13'], 'racmnet': ['2018-12-14', '2018-12-13'], 'toannk': ['2018-12-14', '2018-12-13'], 'b00ris': ['2018-12-14', '2018-12-13'], 'evertonfraga': ['2018-12-14', '2018-12-13'], 'cburgdorf': ['2018-12-14', '2018-12-13'], 'smgqk': ['2018-12-14', '2018-12-13'], 'cuidezhu': ['2018-12-14', '2018-12-13'], '0xC0DE4C0FFEE': ['2018-12-14', '2018-12-13'], 'rodrigo-garcia-leon': ['2018-12-14', '2018-12-13'], 'codecov[bot]': ['2018-12-14', '2018-12-13'], 'christianparpart': ['2018-12-14', '2018-12-13'], 'nafidurmus': ['2018-12-14', '2018-12-13'], 'joshstevens19': ['2018-12-14', '2018-12-13'], 'totaking': ['2018-12-14', '2018-12-13'], 'z08053520': ['2018-12-14', '2018-12-13'], 'lishenglincn': ['2018-12-14', '2018-12-13'], 'lag945': ['2018-12-14', '2018-12-13'], 'jannikluhn': ['2018-12-14', '2018-12-13'], 'shimakaze-git': ['2018-12-14', '2018-12-13'], 'jolestar': ['2018-12-14', '2018-12-13'], 'mratsim': ['2018-12-14', '2018-12-13'], 'xiaoch05': ['2018-12-14', '2018-12-13'], 'cheatfate': ['2018-12-14', '2018-12-13'], 'Dreampursers': ['2018-12-14', '2018-12-13'], 'ligi': ['2018-12-14', '2018-12-13'], 'Drunpi': ['2018-12-14', '2018-12-13'], 'jinhokong': ['2018-12-14', '2018-12-13'], 'aj07': ['2018-12-14', '2018-12-13'], 'hwwhww': ['2018-12-14', '2018-12-13'], 'jamesray1': ['2018-12-14', '2018-12-13'], 'nisdas': ['2018-12-14', '2018-12-13'], 'cderong': ['2018-12-14', '2018-12-13'], 'serical': ['2018-12-14', '2018-12-13'], 'yahtoo': ['2018-12-14', '2018-12-13'], 'ByLuxury': ['2018-12-14', '2018-12-13'], 'Bhargavasomu': ['2018-12-14', '2018-12-13'], 'jakerockland': ['2018-12-14', '2018-12-13'], 'ParkIan': ['2018-12-14', '2018-12-13'], 'Bytom': ['2018-12-14', '2018-12-13'], 'RichardLai88': ['2018-12-14', '2018-12-13'], 'chrislo2004': ['2018-12-14', '2018-12-13'], 'jeikhan': ['2018-12-14', '2018-12-13'], 'IExpo': ['2018-12-14', '2018-12-13'], 'zhiyul': ['2018-12-14', '2018-12-13'], 'novemberde': ['2018-12-14', '2018-12-13'], 'naveen7252': ['2018-12-14', '2018-12-13'], 'quangdo3112': ['2018-12-14', '2018-12-13'], 'bhalla98': ['2018-12-14', '2018-12-13'], 'rexshihaoren': ['2018-12-14', '2018-12-13'], 'lola73': ['2018-12-14', '2018-12-13'], 'rauljordan': ['2018-12-14', '2018-12-13'], 'vardan10': ['2018-12-14', '2018-12-13'], 'YaoZengzeng': ['2018-12-14', '2018-12-13'], 'amitOodles': ['2018-12-14', '2018-12-13'], 'nanjia': ['2018-12-14', '2018-12-13'], 'xuefengyuan': ['2018-12-14', '2018-12-13'], 'Tinycl': ['2018-12-14', '2018-12-13'], 'Gilbertly': ['2018-12-14', '2018-12-13'], 'ArnauSantamaria': ['2018-12-14', '2018-12-13'], 'charles-cooper': ['2018-12-14', '2018-12-13'], 'hsauers5': ['2018-12-14', '2018-12-13'], 'vinaymavi': ['2018-12-14', '2018-12-13'], 'vbuterin': ['2018-12-14', '2018-12-13'], 'anirudh-chhangani': ['2018-12-14', '2018-12-13'], 'hiro8ma': ['2018-12-14', '2018-12-13'], 'NIC619': ['2018-12-14', '2018-12-13'], 'jeojoe': ['2018-12-14', '2018-12-13'], 'dctlsk': ['2018-12-14', '2018-12-13'], 'codecov-io': ['2018-12-14', '2018-12-13'], 'yorzi': ['2018-12-14', '2018-12-13'], 'chiaki-i': ['2018-12-14', '2018-12-13'], 'coolhackboy': ['2018-12-14', '2018-12-13'], 'halfalicious': ['2018-12-14', '2018-12-13'], 'dete': ['2018-12-14', '2018-12-13'], 'zouguangxian': ['2018-12-14', '2018-12-13'], 'landedexperts': ['2018-12-14', '2018-12-13'], 'SamuelMarks': ['2018-12-14', '2018-12-13'], 'nolash': ['2018-12-14', '2018-12-13'], 'carver': ['2018-12-14', '2018-12-13'], 'pakaplace': ['2018-12-14', '2018-12-13'], 'zelig': ['2018-12-14', '2018-12-13'], 'lostjcwide': ['2018-12-14', '2018-12-13'], 'tootooquan': ['2018-12-14', '2018-12-13'], 'BITjiangrui': ['2018-12-14', '2018-12-13'], 'akkaorig': ['2018-12-14', '2018-12-13'], 'miguelmota': ['2018-12-14', '2018-12-13'], 'kclowes': ['2018-12-14', '2018-12-13'], 'dylanjw': ['2018-12-14', '2018-12-13'], 'ajbennett': ['2018-12-14', '2018-12-13'], 'fubuloubu': ['2018-12-14', '2018-12-13'], 'pipermerriam': ['2018-12-14', '2018-12-13'], 'nivida': ['2018-12-14', '2018-12-13'], 'winsvega': ['2018-12-14', '2018-12-13'], 'ur5us': ['2018-12-14', '2018-12-13'], 'davesque': ['2018-12-14', '2018-12-13'], 'Jeongjaegu': ['2018-12-14', '2018-12-13'], 'alexwanng': ['2018-12-14', '2018-12-13'], 'JustinDrake': ['2018-12-14', '2018-12-13'], 'kswizzlek': ['2018-12-14', '2018-12-13'], 'pryce-turner': ['2018-12-14', '2018-12-13'], 'humboo': ['2018-12-14', '2018-12-13'], 'voermx': ['2018-12-14', '2018-12-13'], 'sandakersmann': ['2018-12-14', '2018-12-13']}\n" ] } ], @@ -2589,7 +2667,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'chriseth': {'2018-12-14': 6, '2018-12-13': 0}, 'leonardoalt': {'2018-12-14': 2, '2018-12-13': 0}, 'FrankSzendzielarz': {'2018-12-14': 2, '2018-12-13': 0}, '3for': {'2018-12-14': 2, '2018-12-13': 0}, 'holiman': {'2018-12-14': 17, '2018-12-13': 0}, '1tD0g': {'2018-12-14': 1, '2018-12-13': 0}, 'gumb0': {'2018-12-14': 4, '2018-12-13': 0}, 'naikmyeong': {'2018-12-14': 1, '2018-12-13': 0}, 'miohtama': {'2018-12-14': 1, '2018-12-13': 0}, 'hkk': {'2018-12-14': 1, '2018-12-13': 0}, 'kyledewy': {'2018-12-14': 1, '2018-12-13': 0}, 'racmnet': {'2018-12-14': 2, '2018-12-13': 0}, 'toannk': {'2018-12-14': 1, '2018-12-13': 0}, 'b00ris': {'2018-12-14': 1, '2018-12-13': 0}, 'evertonfraga': {'2018-12-14': 3, '2018-12-13': 3}, 'cburgdorf': {'2018-12-14': 9, '2018-12-13': 3}, 'smgqk': {'2018-12-14': 1, '2018-12-13': 0}, 'cuidezhu': {'2018-12-14': 1, '2018-12-13': 0}, '0xC0DE4C0FFEE': {'2018-12-14': 1, '2018-12-13': 0}, 'rodrigo-garcia-leon': {'2018-12-14': 1, '2018-12-13': 0}, 'ekpyron': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov[bot]': {'2018-12-14': 1, '2018-12-13': 0}, 'christianparpart': {'2018-12-14': 3, '2018-12-13': 0}, 'nafidurmus': {'2018-12-14': 1, '2018-12-13': 0}, 'joshstevens19': {'2018-12-14': 2, '2018-12-13': 0}, 'totaking': {'2018-12-14': 3, '2018-12-13': 0}, 'z08053520': {'2018-12-14': 2, '2018-12-13': 0}, 'lishenglincn': {'2018-12-14': 1, '2018-12-13': 0}, 'lag945': {'2018-12-14': 1, '2018-12-13': 0}, 'jannikluhn': {'2018-12-14': 1, '2018-12-13': 0}, 'shimakaze-git': {'2018-12-14': 1, '2018-12-13': 0}, 'jolestar': {'2018-12-14': 1, '2018-12-13': 0}, 'mratsim': {'2018-12-14': 1, '2018-12-13': 0}, 'xiaoch05': {'2018-12-14': 1, '2018-12-13': 0}, 'cheatfate': {'2018-12-14': 1, '2018-12-13': 0}, 'Dreampursers': {'2018-12-14': 1, '2018-12-13': 0}, 'ligi': {'2018-12-14': 3, '2018-12-13': 0}, 'Drunpi': {'2018-12-14': 1, '2018-12-13': 0}, 'jinhokong': {'2018-12-14': 1, '2018-12-13': 0}, 'aj07': {'2018-12-14': 1, '2018-12-13': 0}, 'njgheorghita': {'2018-12-14': 3, '2018-12-13': 0}, 'hwwhww': {'2018-12-14': 19, '2018-12-13': 0}, 'jamesray1': {'2018-12-14': 17, '2018-12-13': 0}, 'nisdas': {'2018-12-14': 1, '2018-12-13': 0}, 'ChihChengLiang': {'2018-12-14': 3, '2018-12-13': 0}, 'cderong': {'2018-12-14': 1, '2018-12-13': 0}, 'serical': {'2018-12-14': 1, '2018-12-13': 0}, 'yahtoo': {'2018-12-14': 1, '2018-12-13': 0}, 'ByLuxury': {'2018-12-14': 1, '2018-12-13': 0}, 'Bhargavasomu': {'2018-12-14': 2, '2018-12-13': 0}, 'jakerockland': {'2018-12-14': 1, '2018-12-13': 2}, 'ParkIan': {'2018-12-14': 1, '2018-12-13': 0}, 'Bytom': {'2018-12-14': 1, '2018-12-13': 0}, 'RichardLai88': {'2018-12-14': 1, '2018-12-13': 0}, 'chrislo2004': {'2018-12-14': 1, '2018-12-13': 0}, 'jeikhan': {'2018-12-14': 1, '2018-12-13': 0}, 'IExpo': {'2018-12-14': 1, '2018-12-13': 0}, 'zhiyul': {'2018-12-14': 1, '2018-12-13': 0}, 'novemberde': {'2018-12-14': 1, '2018-12-13': 0}, 'naveen7252': {'2018-12-14': 1, '2018-12-13': 0}, 'quangdo3112': {'2018-12-14': 1, '2018-12-13': 0}, 'bhalla98': {'2018-12-14': 1, '2018-12-13': 0}, 'rexshihaoren': {'2018-12-14': 1, '2018-12-13': 0}, 'lola73': {'2018-12-14': 1, '2018-12-13': 0}, 'rauljordan': {'2018-12-14': 1, '2018-12-13': 0}, 'vardan10': {'2018-12-14': 3, '2018-12-13': 0}, 'YaoZengzeng': {'2018-12-14': 1, '2018-12-13': 0}, 'amitOodles': {'2018-12-14': 1, '2018-12-13': 0}, 'nanjia': {'2018-12-14': 1, '2018-12-13': 0}, 'xuefengyuan': {'2018-12-14': 1, '2018-12-13': 0}, 'Tinycl': {'2018-12-14': 1, '2018-12-13': 0}, 'Gilbertly': {'2018-12-14': 2, '2018-12-13': 0}, 'ArnauSantamaria': {'2018-12-14': 1, '2018-12-13': 0}, 'charles-cooper': {'2018-12-14': 1, '2018-12-13': 1}, 'hsauers5': {'2018-12-14': 1, '2018-12-13': 0}, 'vinaymavi': {'2018-12-14': 1, '2018-12-13': 0}, 'vbuterin': {'2018-12-14': 10, '2018-12-13': 0}, 'anirudh-chhangani': {'2018-12-14': 1, '2018-12-13': 0}, 'hiro8ma': {'2018-12-14': 1, '2018-12-13': 0}, 'NIC619': {'2018-12-14': 1, '2018-12-13': 0}, 'jeojoe': {'2018-12-14': 1, '2018-12-13': 0}, 'dctlsk': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov-io': {'2018-12-14': 1, '2018-12-13': 1}, 'yorzi': {'2018-12-14': 1, '2018-12-13': 0}, 'chiaki-i': {'2018-12-14': 1, '2018-12-13': 0}, 'coolhackboy': {'2018-12-14': 1, '2018-12-13': 0}, 'halfalicious': {'2018-12-14': 1, '2018-12-13': 6}, 'dete': {'2018-12-14': 1, '2018-12-13': 0}, 'zouguangxian': {'2018-12-14': 1, '2018-12-13': 0}, 'landedexperts': {'2018-12-14': 1, '2018-12-13': 0}, 'SamuelMarks': {'2018-12-14': 1, '2018-12-13': 0}, 'nolash': {'2018-12-14': 2, '2018-12-13': 0}, 'carver': {'2018-12-14': 6, '2018-12-13': 20}, 'pakaplace': {'2018-12-14': 1, '2018-12-13': 0}, 'zelig': {'2018-12-14': 5, '2018-12-13': 0}, 'lostjcwide': {'2018-12-14': 1, '2018-12-13': 0}, 'tootooquan': {'2018-12-14': 1, '2018-12-13': 0}, 'BITjiangrui': {'2018-12-14': 1, '2018-12-13': 0}, 'akkaorig': {'2018-12-14': 1, '2018-12-13': 0}, 'miguelmota': {'2018-12-14': 1, '2018-12-13': 0}, 'kclowes': {'2018-12-14': 1, '2018-12-13': 4}, 'dylanjw': {'2018-12-14': 0, '2018-12-13': 3}, 'ajbennett': {'2018-12-14': 0, '2018-12-13': 1}, 'fubuloubu': {'2018-12-14': 0, '2018-12-13': 4}, 'pipermerriam': {'2018-12-14': 0, '2018-12-13': 17}, 'nivida': {'2018-12-14': 0, '2018-12-13': 3}, 'winsvega': {'2018-12-14': 0, '2018-12-13': 2}, 'ur5us': {'2018-12-14': 0, '2018-12-13': 1}, 'davesque': {'2018-12-14': 0, '2018-12-13': 1}, 'Jeongjaegu': {'2018-12-14': 0, '2018-12-13': 1}, 'alexwanng': {'2018-12-14': 0, '2018-12-13': 1}, 'JustinDrake': {'2018-12-14': 0, '2018-12-13': 5}, 'kswizzlek': {'2018-12-14': 0, '2018-12-13': 1}, 'pryce-turner': {'2018-12-14': 0, '2018-12-13': 1}, 'humboo': {'2018-12-14': 0, '2018-12-13': 1}, 'voermx': {'2018-12-14': 0, '2018-12-13': 1}, 'sandakersmann': {'2018-12-14': 0, '2018-12-13': 2}, 'binary-adam': {'2018-12-14': 0, '2018-12-13': 1}, 'jpeletier': {'2018-12-14': 0, '2018-12-13': 2}, 'AlexeyAkhunov': {'2018-12-14': 0, '2018-12-13': 1}, 'veox': {'2018-12-14': 0, '2018-12-13': 2}}\n" + "{'ekpyron': {'2018-12-14': 3, '2018-12-13': 0}, 'FrankSzendzielarz': {'2018-12-14': 3, '2018-12-13': 0}, 'njgheorghita': {'2018-12-14': 5, '2018-12-13': 0}, 'chriseth': {'2018-12-14': 8, '2018-12-13': 0}, 'ChihChengLiang': {'2018-12-14': 6, '2018-12-13': 0}, 'holiman': {'2018-12-14': 19, '2018-12-13': 0}, 'sot528': {'2018-12-14': 1, '2018-12-13': 0}, 'nguyenlyminhman': {'2018-12-14': 2, '2018-12-13': 0}, 'leonardoalt': {'2018-12-14': 2, '2018-12-13': 0}, '3for': {'2018-12-14': 2, '2018-12-13': 0}, '1tD0g': {'2018-12-14': 1, '2018-12-13': 0}, 'gumb0': {'2018-12-14': 4, '2018-12-13': 0}, 'naikmyeong': {'2018-12-14': 1, '2018-12-13': 0}, 'miohtama': {'2018-12-14': 1, '2018-12-13': 0}, 'hkk': {'2018-12-14': 1, '2018-12-13': 0}, 'kyledewy': {'2018-12-14': 1, '2018-12-13': 0}, 'racmnet': {'2018-12-14': 2, '2018-12-13': 0}, 'toannk': {'2018-12-14': 1, '2018-12-13': 0}, 'b00ris': {'2018-12-14': 1, '2018-12-13': 0}, 'evertonfraga': {'2018-12-14': 3, '2018-12-13': 2}, 'cburgdorf': {'2018-12-14': 9, '2018-12-13': 3}, 'smgqk': {'2018-12-14': 1, '2018-12-13': 0}, 'cuidezhu': {'2018-12-14': 1, '2018-12-13': 0}, '0xC0DE4C0FFEE': {'2018-12-14': 1, '2018-12-13': 0}, 'rodrigo-garcia-leon': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov[bot]': {'2018-12-14': 1, '2018-12-13': 0}, 'christianparpart': {'2018-12-14': 3, '2018-12-13': 0}, 'nafidurmus': {'2018-12-14': 1, '2018-12-13': 0}, 'joshstevens19': {'2018-12-14': 2, '2018-12-13': 0}, 'totaking': {'2018-12-14': 3, '2018-12-13': 0}, 'z08053520': {'2018-12-14': 2, '2018-12-13': 0}, 'lishenglincn': {'2018-12-14': 1, '2018-12-13': 0}, 'lag945': {'2018-12-14': 1, '2018-12-13': 0}, 'jannikluhn': {'2018-12-14': 1, '2018-12-13': 0}, 'shimakaze-git': {'2018-12-14': 1, '2018-12-13': 0}, 'jolestar': {'2018-12-14': 1, '2018-12-13': 0}, 'mratsim': {'2018-12-14': 1, '2018-12-13': 0}, 'xiaoch05': {'2018-12-14': 1, '2018-12-13': 0}, 'cheatfate': {'2018-12-14': 1, '2018-12-13': 0}, 'Dreampursers': {'2018-12-14': 1, '2018-12-13': 0}, 'ligi': {'2018-12-14': 3, '2018-12-13': 0}, 'Drunpi': {'2018-12-14': 1, '2018-12-13': 0}, 'jinhokong': {'2018-12-14': 1, '2018-12-13': 0}, 'aj07': {'2018-12-14': 1, '2018-12-13': 0}, 'hwwhww': {'2018-12-14': 19, '2018-12-13': 0}, 'jamesray1': {'2018-12-14': 17, '2018-12-13': 0}, 'nisdas': {'2018-12-14': 1, '2018-12-13': 0}, 'cderong': {'2018-12-14': 1, '2018-12-13': 0}, 'serical': {'2018-12-14': 1, '2018-12-13': 0}, 'yahtoo': {'2018-12-14': 1, '2018-12-13': 0}, 'ByLuxury': {'2018-12-14': 1, '2018-12-13': 0}, 'Bhargavasomu': {'2018-12-14': 2, '2018-12-13': 0}, 'jakerockland': {'2018-12-14': 1, '2018-12-13': 2}, 'ParkIan': {'2018-12-14': 1, '2018-12-13': 0}, 'Bytom': {'2018-12-14': 1, '2018-12-13': 0}, 'RichardLai88': {'2018-12-14': 1, '2018-12-13': 0}, 'chrislo2004': {'2018-12-14': 1, '2018-12-13': 0}, 'jeikhan': {'2018-12-14': 1, '2018-12-13': 0}, 'IExpo': {'2018-12-14': 1, '2018-12-13': 0}, 'zhiyul': {'2018-12-14': 1, '2018-12-13': 0}, 'novemberde': {'2018-12-14': 1, '2018-12-13': 0}, 'naveen7252': {'2018-12-14': 1, '2018-12-13': 0}, 'quangdo3112': {'2018-12-14': 1, '2018-12-13': 0}, 'bhalla98': {'2018-12-14': 1, '2018-12-13': 0}, 'rexshihaoren': {'2018-12-14': 1, '2018-12-13': 0}, 'lola73': {'2018-12-14': 1, '2018-12-13': 0}, 'rauljordan': {'2018-12-14': 1, '2018-12-13': 0}, 'vardan10': {'2018-12-14': 3, '2018-12-13': 0}, 'YaoZengzeng': {'2018-12-14': 1, '2018-12-13': 0}, 'amitOodles': {'2018-12-14': 1, '2018-12-13': 0}, 'nanjia': {'2018-12-14': 1, '2018-12-13': 0}, 'xuefengyuan': {'2018-12-14': 1, '2018-12-13': 0}, 'Tinycl': {'2018-12-14': 1, '2018-12-13': 0}, 'Gilbertly': {'2018-12-14': 2, '2018-12-13': 0}, 'ArnauSantamaria': {'2018-12-14': 1, '2018-12-13': 0}, 'charles-cooper': {'2018-12-14': 1, '2018-12-13': 1}, 'hsauers5': {'2018-12-14': 1, '2018-12-13': 0}, 'vinaymavi': {'2018-12-14': 1, '2018-12-13': 0}, 'vbuterin': {'2018-12-14': 10, '2018-12-13': 0}, 'anirudh-chhangani': {'2018-12-14': 1, '2018-12-13': 0}, 'hiro8ma': {'2018-12-14': 1, '2018-12-13': 0}, 'NIC619': {'2018-12-14': 1, '2018-12-13': 0}, 'jeojoe': {'2018-12-14': 1, '2018-12-13': 0}, 'dctlsk': {'2018-12-14': 1, '2018-12-13': 0}, 'codecov-io': {'2018-12-14': 1, '2018-12-13': 1}, 'yorzi': {'2018-12-14': 1, '2018-12-13': 0}, 'chiaki-i': {'2018-12-14': 1, '2018-12-13': 0}, 'coolhackboy': {'2018-12-14': 1, '2018-12-13': 0}, 'halfalicious': {'2018-12-14': 1, '2018-12-13': 6}, 'dete': {'2018-12-14': 1, '2018-12-13': 0}, 'zouguangxian': {'2018-12-14': 1, '2018-12-13': 0}, 'landedexperts': {'2018-12-14': 1, '2018-12-13': 0}, 'SamuelMarks': {'2018-12-14': 1, '2018-12-13': 0}, 'nolash': {'2018-12-14': 2, '2018-12-13': 0}, 'carver': {'2018-12-14': 6, '2018-12-13': 19}, 'pakaplace': {'2018-12-14': 1, '2018-12-13': 0}, 'zelig': {'2018-12-14': 5, '2018-12-13': 0}, 'lostjcwide': {'2018-12-14': 1, '2018-12-13': 0}, 'tootooquan': {'2018-12-14': 1, '2018-12-13': 0}, 'BITjiangrui': {'2018-12-14': 1, '2018-12-13': 0}, 'akkaorig': {'2018-12-14': 1, '2018-12-13': 0}, 'miguelmota': {'2018-12-14': 1, '2018-12-13': 0}, 'kclowes': {'2018-12-14': 1, '2018-12-13': 4}, 'dylanjw': {'2018-12-14': 0, '2018-12-13': 3}, 'ajbennett': {'2018-12-14': 0, '2018-12-13': 1}, 'fubuloubu': {'2018-12-14': 0, '2018-12-13': 4}, 'pipermerriam': {'2018-12-14': 0, '2018-12-13': 15}, 'nivida': {'2018-12-14': 0, '2018-12-13': 2}, 'winsvega': {'2018-12-14': 0, '2018-12-13': 2}, 'ur5us': {'2018-12-14': 0, '2018-12-13': 1}, 'davesque': {'2018-12-14': 0, '2018-12-13': 1}, 'Jeongjaegu': {'2018-12-14': 0, '2018-12-13': 1}, 'alexwanng': {'2018-12-14': 0, '2018-12-13': 1}, 'JustinDrake': {'2018-12-14': 0, '2018-12-13': 2}, 'kswizzlek': {'2018-12-14': 0, '2018-12-13': 1}, 'pryce-turner': {'2018-12-14': 0, '2018-12-13': 1}, 'humboo': {'2018-12-14': 0, '2018-12-13': 1}, 'voermx': {'2018-12-14': 0, '2018-12-13': 1}, 'sandakersmann': {'2018-12-14': 0, '2018-12-13': 1}}\n" ] } ], @@ -2637,15 +2715,25 @@ "output_type": "stream", "text": [ "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + " 'mode': 'markers+lines', 'name': 'ekpyron', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'FrankSzendzielarz', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + " 'mode': 'markers+lines', 'name': 'njgheorghita', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': '3for', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + " 'mode': 'markers+lines', 'name': 'chriseth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ChihChengLiang', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'holiman', 'x': ['2018-12-14', '2018-12-13'], 'y': [17, 0]\n", + " 'mode': 'markers+lines', 'name': 'holiman', 'x': ['2018-12-14', '2018-12-13'], 'y': [19, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'sot528', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'nguyenlyminhman', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'leonardoalt', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': '3for', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': '1tD0g', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", @@ -2665,7 +2753,7 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'b00ris', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", + " 'mode': 'markers+lines', 'name': 'evertonfraga', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'cburgdorf', 'x': ['2018-12-14', '2018-12-13'], 'y': [9, 3]\n", "}), Scatter({\n", @@ -2677,8 +2765,6 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'rodrigo-garcia-leon', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ekpyron', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", - "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'codecov[bot]', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'christianparpart', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", @@ -2717,16 +2803,12 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'aj07', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'njgheorghita', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", - "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'hwwhww', 'x': ['2018-12-14', '2018-12-13'], 'y': [19, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'jamesray1', 'x': ['2018-12-14', '2018-12-13'], 'y': [17, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'nisdas', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ChihChengLiang', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 0]\n", - "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'cderong', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'serical', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", @@ -2821,7 +2903,7 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'nolash', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 20]\n", + " 'mode': 'markers+lines', 'name': 'carver', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 19]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'pakaplace', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", @@ -2845,9 +2927,9 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'fubuloubu', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 4]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 17]\n", + " 'mode': 'markers+lines', 'name': 'pipermerriam', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 15]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 3]\n", + " 'mode': 'markers+lines', 'name': 'nivida', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'winsvega', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", "}), Scatter({\n", @@ -2859,7 +2941,7 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'alexwanng', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 5]\n", + " 'mode': 'markers+lines', 'name': 'JustinDrake', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'kswizzlek', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", @@ -2869,15 +2951,7 @@ "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'voermx', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'binary-adam', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'jpeletier', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'AlexeyAkhunov', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", - "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'veox', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 2]\n", + " 'mode': 'markers+lines', 'name': 'sandakersmann', 'x': ['2018-12-14', '2018-12-13'], 'y': [0, 1]\n", "})]\n" ] } @@ -2990,7 +3064,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'olidity-test-bytecode': {'2018-12-14': 6, '2018-12-13': 0}, 'olidity': {'2018-12-14': 10, '2018-12-13': 2}, 'ive': {'2018-12-14': 8, '2018-12-13': 0}, 'esearch': {'2018-12-14': 2, '2018-12-13': 0}, 'y-evm': {'2018-12-14': 27, '2018-12-13': 37}, 'leth': {'2018-12-14': 8, '2018-12-13': 6}, 'o-ethereum': {'2018-12-14': 44, '2018-12-13': 5}, 'yper': {'2018-12-14': 5, '2018-12-13': 6}, 'ytest-ethereum': {'2018-12-14': 1, '2018-12-13': 2}, 'ist-shell': {'2018-12-14': 3, '2018-12-13': 3}, 'app-bin': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.js': {'2018-12-14': 12, '2018-12-13': 3}, 'iki': {'2018-12-14': 27, '2018-12-13': 0}, 'y-ssz': {'2018-12-14': 1, '2018-12-13': 0}, 'th2.0-specs': {'2018-12-14': 24, '2018-12-13': 5}, 'vmlab': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.py': {'2018-12-14': 5, '2018-12-13': 14}, 'IPs': {'2018-12-14': 3, '2018-12-13': 1}, 'y_ecc': {'2018-12-14': 2, '2018-12-13': 0}, 'olc-js': {'2018-12-14': 5, '2018-12-13': 0}, 'yethereum': {'2018-12-14': 1, '2018-12-13': 1}, 'eteor-dapp-wallet': {'2018-12-14': 1, '2018-12-13': 0}, 'eacon_chain': {'2018-12-14': 7, '2018-12-13': 0}, 'harding': {'2018-12-14': 1, '2018-12-13': 0}, 'ist': {'2018-12-14': 1, '2018-12-13': 0}, 'ests': {'2018-12-14': 1, '2018-12-13': 0}, 'nake-charmers-tactical-manual': {'2018-12-14': 1, '2018-12-13': 0}, 'etesteth': {'2018-12-14': 0, '2018-12-13': 3}, 'evp2p': {'2018-12-14': 0, '2018-12-13': 1}, 'y-solc': {'2018-12-14': 0, '2018-12-13': 1}, 'th-keys': {'2018-12-14': 0, '2018-12-13': 1}}\n" + "{'olidity': {'2018-12-14': 13, '2018-12-13': 2}, 'y-evm': {'2018-12-14': 31, '2018-12-13': 30}, 'wig': {'2018-12-14': 1, '2018-12-13': 0}, 'olidity-test-bytecode': {'2018-12-14': 8, '2018-12-13': 0}, 'ytest-ethereum': {'2018-12-14': 2, '2018-12-13': 2}, 'ive': {'2018-12-14': 10, '2018-12-13': 0}, 'IPs': {'2018-12-14': 4, '2018-12-13': 0}, 'o-ethereum': {'2018-12-14': 45, '2018-12-13': 3}, 'esearch': {'2018-12-14': 2, '2018-12-13': 0}, 'leth': {'2018-12-14': 8, '2018-12-13': 6}, 'yper': {'2018-12-14': 5, '2018-12-13': 6}, 'ist-shell': {'2018-12-14': 3, '2018-12-13': 2}, 'app-bin': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.js': {'2018-12-14': 12, '2018-12-13': 2}, 'iki': {'2018-12-14': 27, '2018-12-13': 0}, 'y-ssz': {'2018-12-14': 1, '2018-12-13': 0}, 'th2.0-specs': {'2018-12-14': 24, '2018-12-13': 2}, 'vmlab': {'2018-12-14': 1, '2018-12-13': 0}, 'eb3.py': {'2018-12-14': 5, '2018-12-13': 14}, 'y_ecc': {'2018-12-14': 2, '2018-12-13': 0}, 'olc-js': {'2018-12-14': 5, '2018-12-13': 0}, 'yethereum': {'2018-12-14': 1, '2018-12-13': 1}, 'eteor-dapp-wallet': {'2018-12-14': 1, '2018-12-13': 0}, 'eacon_chain': {'2018-12-14': 7, '2018-12-13': 0}, 'harding': {'2018-12-14': 1, '2018-12-13': 0}, 'ist': {'2018-12-14': 1, '2018-12-13': 0}, 'ests': {'2018-12-14': 1, '2018-12-13': 0}, 'nake-charmers-tactical-manual': {'2018-12-14': 1, '2018-12-13': 0}, 'etesteth': {'2018-12-14': 0, '2018-12-13': 3}, 'evp2p': {'2018-12-14': 0, '2018-12-13': 1}, 'y-solc': {'2018-12-14': 0, '2018-12-13': 1}, 'th-keys': {'2018-12-14': 0, '2018-12-13': 1}}\n" ] } ], @@ -3039,42 +3113,44 @@ "output_type": "stream", "text": [ "[Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [13, 2]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 2]\n", + " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [31, 30]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", + " 'mode': 'markers+lines', 'name': 'wig', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + " 'mode': 'markers+lines', 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 37]\n", + " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 2]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", + " 'mode': 'markers+lines', 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [44, 5]\n", + " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [4, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", + " 'mode': 'markers+lines', 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [45, 3]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 2]\n", + " 'mode': 'markers+lines', 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", + " 'mode': 'markers+lines', 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", + "}), Scatter({\n", + " 'mode': 'markers+lines', 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'app-bin', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 3]\n", + " 'mode': 'markers+lines', 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'iki', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'y-ssz', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 5]\n", + " 'mode': 'markers+lines', 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 2]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'vmlab', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'eb3.py', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 14]\n", "}), Scatter({\n", - " 'mode': 'markers+lines', 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 1]\n", - "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'y_ecc', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Scatter({\n", " 'mode': 'markers+lines', 'name': 'olc-js', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", @@ -3198,42 +3274,44 @@ "output_type": "stream", "text": [ "[Bar({\n", - " 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [6, 0]\n", + " 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [13, 2]\n", "}), Bar({\n", - " 'name': 'olidity', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 2]\n", + " 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [31, 30]\n", "}), Bar({\n", - " 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", + " 'name': 'wig', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", + " 'name': 'olidity-test-bytecode', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 0]\n", "}), Bar({\n", - " 'name': 'y-evm', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 37]\n", + " 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 2]\n", "}), Bar({\n", - " 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", + " 'name': 'ive', 'x': ['2018-12-14', '2018-12-13'], 'y': [10, 0]\n", "}), Bar({\n", - " 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [44, 5]\n", + " 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [4, 0]\n", "}), Bar({\n", - " 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", + " 'name': 'o-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [45, 3]\n", "}), Bar({\n", - " 'name': 'ytest-ethereum', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 2]\n", + " 'name': 'esearch', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Bar({\n", - " 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 3]\n", + " 'name': 'leth', 'x': ['2018-12-14', '2018-12-13'], 'y': [8, 6]\n", + "}), Bar({\n", + " 'name': 'yper', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 6]\n", + "}), Bar({\n", + " 'name': 'ist-shell', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 2]\n", "}), Bar({\n", " 'name': 'app-bin', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 3]\n", + " 'name': 'eb3.js', 'x': ['2018-12-14', '2018-12-13'], 'y': [12, 2]\n", "}), Bar({\n", " 'name': 'iki', 'x': ['2018-12-14', '2018-12-13'], 'y': [27, 0]\n", "}), Bar({\n", " 'name': 'y-ssz', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", - " 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 5]\n", + " 'name': 'th2.0-specs', 'x': ['2018-12-14', '2018-12-13'], 'y': [24, 2]\n", "}), Bar({\n", " 'name': 'vmlab', 'x': ['2018-12-14', '2018-12-13'], 'y': [1, 0]\n", "}), Bar({\n", " 'name': 'eb3.py', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 14]\n", "}), Bar({\n", - " 'name': 'IPs', 'x': ['2018-12-14', '2018-12-13'], 'y': [3, 1]\n", - "}), Bar({\n", " 'name': 'y_ecc', 'x': ['2018-12-14', '2018-12-13'], 'y': [2, 0]\n", "}), Bar({\n", " 'name': 'olc-js', 'x': ['2018-12-14', '2018-12-13'], 'y': [5, 0]\n", @@ -3370,7 +3448,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'chriseth': {'olidity-test-bytecode': 6}, 'leonardoalt': {'olidity': 2}, 'FrankSzendzielarz': {'ive': 2}, '3for': {'esearch': 2}, 'holiman': {'ive': 6, 'o-ethereum': 10, 'vmlab': 1}, '1tD0g': {'y-evm': 1}, 'gumb0': {'leth': 4}, 'naikmyeong': {'o-ethereum': 1}, 'miohtama': {'olidity': 1}, 'hkk': {'yper': 1}, 'kyledewy': {'ytest-ethereum': 1}, 'racmnet': {'o-ethereum': 2}, 'toannk': {'olidity': 1}, 'b00ris': {'o-ethereum': 1}, 'evertonfraga': {'ist-shell': 6}, 'cburgdorf': {'y-evm': 12}, 'smgqk': {'o-ethereum': 1}, 'cuidezhu': {'app-bin': 1}, '0xC0DE4C0FFEE': {'eb3.js': 1}, 'rodrigo-garcia-leon': {'o-ethereum': 1}, 'ekpyron': {'olidity': 1}, 'codecov[bot]': {'olidity': 1}, 'christianparpart': {'olidity': 3}, 'nafidurmus': {'eb3.js': 1}, 'joshstevens19': {'eb3.js': 2}, 'totaking': {'iki': 3}, 'z08053520': {'o-ethereum': 2}, 'lishenglincn': {'o-ethereum': 1}, 'lag945': {'eb3.js': 1}, 'jannikluhn': {'y-ssz': 1}, 'shimakaze-git': {'yper': 1}, 'jolestar': {'iki': 1}, 'mratsim': {'th2.0-specs': 1}, 'xiaoch05': {'o-ethereum': 1}, 'cheatfate': {'th2.0-specs': 1}, 'Dreampursers': {'yper': 1}, 'ligi': {'o-ethereum': 3}, 'Drunpi': {'o-ethereum': 1}, 'jinhokong': {'eb3.js': 1}, 'aj07': {'eb3.js': 1}, 'njgheorghita': {'eb3.py': 3}, 'hwwhww': {'y-evm': 3, 'th2.0-specs': 10, 'eacon_chain': 6}, 'jamesray1': {'iki': 17}, 'nisdas': {'th2.0-specs': 1}, 'ChihChengLiang': {'y-evm': 3}, 'cderong': {'o-ethereum': 1}, 'serical': {'o-ethereum': 1}, 'yahtoo': {'o-ethereum': 1}, 'ByLuxury': {'IPs': 1}, 'Bhargavasomu': {'y_ecc': 2}, 'jakerockland': {'yper': 3}, 'ParkIan': {'olc-js': 1}, 'Bytom': {'o-ethereum': 1}, 'RichardLai88': {'eb3.js': 1}, 'chrislo2004': {'olc-js': 1}, 'jeikhan': {'iki': 1}, 'IExpo': {'yethereum': 1}, 'zhiyul': {'olc-js': 1}, 'novemberde': {'eb3.js': 1}, 'naveen7252': {'o-ethereum': 1}, 'quangdo3112': {'eteor-dapp-wallet': 1}, 'bhalla98': {'eb3.js': 1}, 'rexshihaoren': {'olidity': 1}, 'lola73': {'o-ethereum': 1}, 'rauljordan': {'y-evm': 1}, 'vardan10': {'y-evm': 3}, 'YaoZengzeng': {'o-ethereum': 1}, 'amitOodles': {'o-ethereum': 1}, 'nanjia': {'harding': 1}, 'xuefengyuan': {'iki': 1}, 'Tinycl': {'ist': 1}, 'Gilbertly': {'eb3.py': 1, 'eb3.js': 1}, 'ArnauSantamaria': {'olc-js': 1}, 'charles-cooper': {'yper': 1, 'olidity': 1}, 'hsauers5': {'y-evm': 1}, 'vinaymavi': {'leth': 1}, 'vbuterin': {'th2.0-specs': 10}, 'anirudh-chhangani': {'leth': 1}, 'hiro8ma': {'o-ethereum': 1}, 'NIC619': {'eacon_chain': 1}, 'jeojoe': {'eb3.js': 1}, 'dctlsk': {'th2.0-specs': 1}, 'codecov-io': {'leth': 1, 'etesteth': 1}, 'yorzi': {'iki': 1}, 'chiaki-i': {'iki': 1}, 'coolhackboy': {'o-ethereum': 1}, 'halfalicious': {'leth': 7}, 'dete': {'IPs': 1}, 'zouguangxian': {'eb3.py': 1}, 'landedexperts': {'olc-js': 1}, 'SamuelMarks': {'o-ethereum': 1}, 'nolash': {'o-ethereum': 2}, 'carver': {'y-evm': 20, 'eb3.py': 5, 'ytest-ethereum': 1}, 'pakaplace': {'IPs': 1}, 'zelig': {'o-ethereum': 5}, 'lostjcwide': {'o-ethereum': 1}, 'tootooquan': {'iki': 1}, 'BITjiangrui': {'o-ethereum': 1}, 'akkaorig': {'iki': 1}, 'miguelmota': {'ests': 1}, 'kclowes': {'nake-charmers-tactical-manual': 1, 'eb3.py': 4}, 'dylanjw': {'eb3.py': 3}, 'ajbennett': {'eb3.py': 1}, 'fubuloubu': {'yper': 4}, 'pipermerriam': {'y-evm': 15, 'ytest-ethereum': 1, 'th-keys': 1}, 'nivida': {'eb3.js': 3}, 'winsvega': {'etesteth': 2}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 5}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'sandakersmann': {'y-evm': 2}, 'binary-adam': {'IPs': 1}, 'jpeletier': {'o-ethereum': 2}, 'AlexeyAkhunov': {'y-evm': 1}, 'veox': {'y-evm': 2}}\n" + "{'ekpyron': {'olidity': 3}, 'FrankSzendzielarz': {'y-evm': 1, 'ive': 2}, 'njgheorghita': {'wig': 1, 'ytest-ethereum': 1, 'eb3.py': 3}, 'chriseth': {'olidity-test-bytecode': 8}, 'ChihChengLiang': {'y-evm': 6}, 'holiman': {'ive': 8, 'o-ethereum': 10, 'vmlab': 1}, 'sot528': {'IPs': 1}, 'nguyenlyminhman': {'olidity': 1, 'o-ethereum': 1}, 'leonardoalt': {'olidity': 2}, '3for': {'esearch': 2}, '1tD0g': {'y-evm': 1}, 'gumb0': {'leth': 4}, 'naikmyeong': {'o-ethereum': 1}, 'miohtama': {'olidity': 1}, 'hkk': {'yper': 1}, 'kyledewy': {'ytest-ethereum': 1}, 'racmnet': {'o-ethereum': 2}, 'toannk': {'olidity': 1}, 'b00ris': {'o-ethereum': 1}, 'evertonfraga': {'ist-shell': 5}, 'cburgdorf': {'y-evm': 12}, 'smgqk': {'o-ethereum': 1}, 'cuidezhu': {'app-bin': 1}, '0xC0DE4C0FFEE': {'eb3.js': 1}, 'rodrigo-garcia-leon': {'o-ethereum': 1}, 'codecov[bot]': {'olidity': 1}, 'christianparpart': {'olidity': 3}, 'nafidurmus': {'eb3.js': 1}, 'joshstevens19': {'eb3.js': 2}, 'totaking': {'iki': 3}, 'z08053520': {'o-ethereum': 2}, 'lishenglincn': {'o-ethereum': 1}, 'lag945': {'eb3.js': 1}, 'jannikluhn': {'y-ssz': 1}, 'shimakaze-git': {'yper': 1}, 'jolestar': {'iki': 1}, 'mratsim': {'th2.0-specs': 1}, 'xiaoch05': {'o-ethereum': 1}, 'cheatfate': {'th2.0-specs': 1}, 'Dreampursers': {'yper': 1}, 'ligi': {'o-ethereum': 3}, 'Drunpi': {'o-ethereum': 1}, 'jinhokong': {'eb3.js': 1}, 'aj07': {'eb3.js': 1}, 'hwwhww': {'y-evm': 3, 'th2.0-specs': 10, 'eacon_chain': 6}, 'jamesray1': {'iki': 17}, 'nisdas': {'th2.0-specs': 1}, 'cderong': {'o-ethereum': 1}, 'serical': {'o-ethereum': 1}, 'yahtoo': {'o-ethereum': 1}, 'ByLuxury': {'IPs': 1}, 'Bhargavasomu': {'y_ecc': 2}, 'jakerockland': {'yper': 3}, 'ParkIan': {'olc-js': 1}, 'Bytom': {'o-ethereum': 1}, 'RichardLai88': {'eb3.js': 1}, 'chrislo2004': {'olc-js': 1}, 'jeikhan': {'iki': 1}, 'IExpo': {'yethereum': 1}, 'zhiyul': {'olc-js': 1}, 'novemberde': {'eb3.js': 1}, 'naveen7252': {'o-ethereum': 1}, 'quangdo3112': {'eteor-dapp-wallet': 1}, 'bhalla98': {'eb3.js': 1}, 'rexshihaoren': {'olidity': 1}, 'lola73': {'o-ethereum': 1}, 'rauljordan': {'y-evm': 1}, 'vardan10': {'y-evm': 3}, 'YaoZengzeng': {'o-ethereum': 1}, 'amitOodles': {'o-ethereum': 1}, 'nanjia': {'harding': 1}, 'xuefengyuan': {'iki': 1}, 'Tinycl': {'ist': 1}, 'Gilbertly': {'eb3.py': 1, 'eb3.js': 1}, 'ArnauSantamaria': {'olc-js': 1}, 'charles-cooper': {'yper': 1, 'olidity': 1}, 'hsauers5': {'y-evm': 1}, 'vinaymavi': {'leth': 1}, 'vbuterin': {'th2.0-specs': 10}, 'anirudh-chhangani': {'leth': 1}, 'hiro8ma': {'o-ethereum': 1}, 'NIC619': {'eacon_chain': 1}, 'jeojoe': {'eb3.js': 1}, 'dctlsk': {'th2.0-specs': 1}, 'codecov-io': {'leth': 1, 'etesteth': 1}, 'yorzi': {'iki': 1}, 'chiaki-i': {'iki': 1}, 'coolhackboy': {'o-ethereum': 1}, 'halfalicious': {'leth': 7}, 'dete': {'IPs': 1}, 'zouguangxian': {'eb3.py': 1}, 'landedexperts': {'olc-js': 1}, 'SamuelMarks': {'o-ethereum': 1}, 'nolash': {'o-ethereum': 2}, 'carver': {'y-evm': 19, 'eb3.py': 5, 'ytest-ethereum': 1}, 'pakaplace': {'IPs': 1}, 'zelig': {'o-ethereum': 5}, 'lostjcwide': {'o-ethereum': 1}, 'tootooquan': {'iki': 1}, 'BITjiangrui': {'o-ethereum': 1}, 'akkaorig': {'iki': 1}, 'miguelmota': {'ests': 1}, 'kclowes': {'nake-charmers-tactical-manual': 1, 'eb3.py': 4}, 'dylanjw': {'eb3.py': 3}, 'ajbennett': {'eb3.py': 1}, 'fubuloubu': {'yper': 4}, 'pipermerriam': {'y-evm': 13, 'ytest-ethereum': 1, 'th-keys': 1}, 'nivida': {'eb3.js': 2}, 'winsvega': {'etesteth': 2}, 'ur5us': {'evp2p': 1}, 'davesque': {'eb3.py': 1}, 'Jeongjaegu': {'o-ethereum': 1}, 'alexwanng': {'yethereum': 1}, 'JustinDrake': {'th2.0-specs': 2}, 'kswizzlek': {'o-ethereum': 1}, 'pryce-turner': {'y-solc': 1}, 'humboo': {'o-ethereum': 1}, 'voermx': {'olidity': 1}, 'sandakersmann': {'y-evm': 1}}\n" ] } ], @@ -3429,7 +3507,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 43, "metadata": { "colab": { "autoexec": { @@ -3454,7 +3532,30 @@ "id": "qgcRjWKMBq_8", "outputId": "54dc9dae-21ea-4d30-82f5-833d5d06be88" }, - "outputs": [], + "outputs": [ + { + "ename": "ValueError", + "evalue": "\n Invalid value of type 'builtins.float' received for the 'x[1]' property of pie.domain\n Received value: -0.009090909090909094\n\n The 'x[1]' property is a number and may be specified as:\n - An int or float in the interval [0, 1]", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'domain'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'x'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mrootPie\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mrootPie\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'y'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mrootPie\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mrootPie\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m0.1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'textinfo'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muserList\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mcounter\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0muCon\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPie\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlabels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'labels'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'values'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhoverinfo\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hoverinfo'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'name'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdomain\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcurrent\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'domain'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;31m# uCon = go.Pie(labels=current['labels'], values=current['values'], hoverinfo=current['hoverinfo'], name=current['name'], domain=current['domain'], textinfo=current['textinfo'])\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mallUserConPies\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muCon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/graph_objs/_pie.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, arg, customdata, customdatasrc, direction, dlabel, domain, hole, hoverinfo, hoverinfosrc, hoverlabel, hovertext, hovertextsrc, ids, idssrc, insidetextfont, label0, labels, labelssrc, legendgroup, marker, name, opacity, outsidetextfont, pull, pullsrc, rotation, scalegroup, selectedpoints, showlegend, sort, stream, text, textfont, textinfo, textposition, textpositionsrc, textsrc, title, titlefont, titleposition, uid, values, valuessrc, visible, **kwargs)\u001b[0m\n\u001b[1;32m 1583\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'dlabel'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdlabel\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdlabel\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1584\u001b[0m \u001b[0m_v\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'domain'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1585\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'domain'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdomain\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdomain\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1586\u001b[0m \u001b[0m_v\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'hole'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1587\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hole'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhole\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhole\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/basedatatypes.py\u001b[0m in \u001b[0;36m__setitem__\u001b[0;34m(self, prop, value)\u001b[0m\n\u001b[1;32m 2799\u001b[0m \u001b[0;31m# ### Handle compound property ###\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2800\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalidator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mCompoundValidator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2801\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_compound_prop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2802\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2803\u001b[0m \u001b[0;31m# ### Handle compound array property ###\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/basedatatypes.py\u001b[0m in \u001b[0;36m_set_compound_prop\u001b[0;34m(self, prop, val)\u001b[0m\n\u001b[1;32m 3103\u001b[0m \u001b[0mvalidator\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validators\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3104\u001b[0m \u001b[0;31m# type: BasePlotlyType\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3105\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalidator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_coerce\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskip_invalid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_skip_invalid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3106\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3107\u001b[0m \u001b[0;31m# Save deep copies of current and new states\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/_plotly_utils/basevalidators.py\u001b[0m in \u001b[0;36mvalidate_coerce\u001b[0;34m(self, v, skip_invalid)\u001b[0m\n\u001b[1;32m 2093\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2094\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdict\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2095\u001b[0;31m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_class\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mskip_invalid\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mskip_invalid\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2096\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2097\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_class\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/graph_objs/pie/_domain.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, arg, column, row, x, y, **kwargs)\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'row'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[0m_v\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'x'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 195\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'x'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 196\u001b[0m \u001b[0m_v\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0marg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'y'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 197\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'y'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0my\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0m_v\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/basedatatypes.py\u001b[0m in \u001b[0;36m__setitem__\u001b[0;34m(self, prop, value)\u001b[0m\n\u001b[1;32m 2808\u001b[0m \u001b[0;31m# ### Handle simple property ###\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2809\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2810\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_set_prop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2811\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2812\u001b[0m \u001b[0;31m# Handle non-scalar case\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/basedatatypes.py\u001b[0m in \u001b[0;36m_set_prop\u001b[0;34m(self, prop, val)\u001b[0m\n\u001b[1;32m 3044\u001b[0m \u001b[0;32mreturn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3045\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3046\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3047\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3048\u001b[0m \u001b[0;31m# val is None\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/plotly/basedatatypes.py\u001b[0m in \u001b[0;36m_set_prop\u001b[0;34m(self, prop, val)\u001b[0m\n\u001b[1;32m 3039\u001b[0m \u001b[0mvalidator\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validators\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprop\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3040\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3041\u001b[0;31m \u001b[0mval\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalidator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_coerce\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mval\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3042\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mValueError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3043\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_skip_invalid\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/_plotly_utils/basevalidators.py\u001b[0m in \u001b[0;36mvalidate_coerce\u001b[0;34m(self, v)\u001b[0m\n\u001b[1;32m 1852\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalidator\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32min\u001b[0m \u001b[0menumerate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mzip\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitem_validators\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1853\u001b[0m \u001b[0;31m# Validate coerce elements\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1854\u001b[0;31m \u001b[0mv\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalidator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalidate_coerce\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1855\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1856\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/_plotly_utils/basevalidators.py\u001b[0m in \u001b[0;36mvalidate_coerce\u001b[0;34m(self, v)\u001b[0m\n\u001b[1;32m 717\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhas_min_max\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 718\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmin_val\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax_val\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 719\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_invalid_val\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 720\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 721\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/srv/conda/lib/python3.6/site-packages/_plotly_utils/basevalidators.py\u001b[0m in \u001b[0;36mraise_invalid_val\u001b[0;34m(self, v, inds)\u001b[0m\n\u001b[1;32m 252\u001b[0m \u001b[0mtyp\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtype_str\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 253\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 254\u001b[0;31m valid_clr_desc=self.description()))\n\u001b[0m\u001b[1;32m 255\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 256\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mraise_invalid_elements\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minvalid_els\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: \n Invalid value of type 'builtins.float' received for the 'x[1]' property of pie.domain\n Received value: -0.009090909090909094\n\n The 'x[1]' property is a number and may be specified as:\n - An int or float in the interval [0, 1]" + ] + } + ], "source": [ "# converting userCont into format for multiple pie charts\n", "\n", @@ -3560,7 +3661,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': ['2018-12-14'], 'y': [142], 'name': 'Early Bird', 'type': 'bar'}, {'x': [], 'y': [], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [66, 91], 'name': 'Night Owl', 'type': 'bar'}]\n" + "[{'x': ['2018-12-14'], 'y': [157], 'name': 'Early Bird', 'type': 'bar'}, {'x': [], 'y': [], 'name': 'Midday', 'type': 'bar'}, {'x': ['2018-12-14', '2018-12-13'], 'y': [66, 76], 'name': 'Night Owl', 'type': 'bar'}]\n" ] } ], @@ -3895,7 +3996,7 @@ "id": "fS3KVNcbiwly" }, "source": [ - "# 4. Putting Into Firebase" + "# 4. Putting result Into Firebase" ] }, { @@ -3943,10 +4044,10 @@ "Collecting python-firebase\n", " Downloading https://files.pythonhosted.org/packages/32/e6/88b799753e64aeb0f24040b98c94012994cf9517c889dee4f8a49ac89400/python-firebase-1.2.tar.gz\n", "Requirement already satisfied: requests>=1.1.0 in /srv/conda/lib/python3.6/site-packages (from python-firebase) (2.21.0)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n", "Requirement already satisfied: urllib3<1.25,>=1.21.1 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (1.24.1)\n", "Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (3.0.4)\n", "Requirement already satisfied: idna<2.9,>=2.5 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2.8)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/lib/python3.6/site-packages (from requests>=1.1.0->python-firebase) (2018.11.29)\n", "Building wheels for collected packages: python-firebase\n", " Running setup.py bdist_wheel for python-firebase ... \u001b[?25ldone\n", "\u001b[?25h Stored in directory: /home/jovyan/.cache/pip/wheels/ba/40/ca/e41a25d7abb787092e837cb0f91f33b04b1a8fd9d17c2d33a6\n", @@ -3980,11 +4081,11 @@ "from firebase import firebase\n", "from firebase.firebase import FirebaseApplication\n", "\n", - "yourFirebaseProjectId = 'amis-dashboard' \n", + "FirebaseProjectId = 'amis-dashboard' \n", "\n", "# No authentication. You will need .write == true in your Firebase security rules. \n", "# This should work after you change yourFirebaseProjectId above. \n", - "app = FirebaseApplication('https://'+ yourFirebaseProjectId +'.firebaseio.com/', None)" + "app = FirebaseApplication('https://'+ FirebaseProjectId +'.firebaseio.com/', None)" ] }, { @@ -4084,7 +4185,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[{'x': 'PushEvent', 'y': 36}, {'x': 'IssueCommentEvent', 'y': 55}, {'x': 'ForkEvent', 'y': 20}, {'x': 'WatchEvent', 'y': 52}, {'x': 'PullRequestReviewCommentEvent', 'y': 52}, {'x': 'IssuesEvent', 'y': 19}, {'x': 'PullRequestEvent', 'y': 35}, {'x': 'DeleteEvent', 'y': 3}, {'x': 'GollumEvent', 'y': 19}, {'x': 'CreateEvent', 'y': 7}, {'x': 'ReleaseEvent', 'y': 1}]\n" + "[{'x': 'PullRequestReviewCommentEvent', 'y': 51}, {'x': 'IssueCommentEvent', 'y': 51}, {'x': 'PushEvent', 'y': 39}, {'x': 'PullRequestEvent', 'y': 36}, {'x': 'IssuesEvent', 'y': 20}, {'x': 'ForkEvent', 'y': 22}, {'x': 'WatchEvent', 'y': 52}, {'x': 'DeleteEvent', 'y': 3}, {'x': 'GollumEvent', 'y': 19}, {'x': 'CreateEvent', 'y': 6}]\n" ] } ], From eabec5f9fa65e6b1b380d5456d314c62693f5d48 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 15 Dec 2018 08:00:35 +0100 Subject: [PATCH 31/98] Create t.t --- dataset/t.t | 1 + 1 file changed, 1 insertion(+) create mode 100644 dataset/t.t diff --git a/dataset/t.t b/dataset/t.t new file mode 100644 index 0000000..718f4d2 --- /dev/null +++ b/dataset/t.t @@ -0,0 +1 @@ +t From 99c17362e28d2c0c89f82f02a8e0bc76cb38b695 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 15 Dec 2018 08:01:10 +0100 Subject: [PATCH 32/98] Add files via upload --- ...9bEd886c739f1A3273629b3320db0C5024c719.csv | 3001 +++++++++++++++++ 1 file changed, 3001 insertions(+) create mode 100644 dataset/export-token-0x949bEd886c739f1A3273629b3320db0C5024c719.csv diff --git a/dataset/export-token-0x949bEd886c739f1A3273629b3320db0C5024c719.csv b/dataset/export-token-0x949bEd886c739f1A3273629b3320db0C5024c719.csv new file mode 100644 index 0000000..aae062f --- /dev/null +++ b/dataset/export-token-0x949bEd886c739f1A3273629b3320db0C5024c719.csv @@ -0,0 +1,3001 @@ +"Txhash","Blockno","UnixTimestamp","DateTime","From","To","Quantity" +"0x131817d1151b135390060b3c7dc9d14a9caafa374386a55b24c07873ca7a3406","2924905","1483406333","1/3/2017 1:18:53 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x66c2fe50e00429b6ef58c822cf0d1a3404b58bbc","1000" +"0x6759f6c41c81f2e1f9726ee35210ea0bbaada063eda73846e15f4cc83665c34e","2925502","1483415369","1/3/2017 3:49:29 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xdcb48866a5cf353aca79467eff1e0ffb2ec9a1ee","1E-07" +"0x33b0a54237effb5f826957cb884ab58b59fe52883faa698f71dea4ec3d6eba6b","2925648","1483417439","1/3/2017 4:23:59 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x9b04a9eee500302980a117f514bc2de0fd1f683d","20000" +"0xee29a28890604885937d3a633099ddd0dba54b7f37624035911ab7d32b71ec29","2927275","1483441140","1/3/2017 10:59:00 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","1E-05" +"0x73da276c160f8b672f58e3e5bdeb6d2074cb321bcdca16d91b27c2ed69e43066","2927886","1483449794","1/3/2017 1:23:14 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x0b5fa328278442956d405d8b501571e20b96260e","1" +"0xf5e142eec272d96a462941174fd4cba69108a53027067cc7462d1e2909cae2ec","2934764","1483545428","1/4/2017 3:57:08 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x34833001d99851b85729606f241ca872d1a1e461","100.123456789" +"0x70bafe6f55fcaebe444840d0f51988a8e8cdfb47cfed66bc6ef27e697647c74e","3131684","1486359078","2/6/2017 5:31:18 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","15000000" +"0x5e0e578e8141db663fa21bd124ea5862c860f774a430c29b48d4300fdd08a2ea","3131684","1486359078","2/6/2017 5:31:18 AM","0x9b04a9eee500302980a117f514bc2de0fd1f683d","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","20000" +"0xc25864d9ae4b19c67572b3ed6106592a9ecba4c39e42739ded24109558a1ae06","3131789","1486360318","2/6/2017 5:51:58 AM","0x0b5fa328278442956d405d8b501571e20b96260e","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","1" +"0x07188c4dfc39a66d64c680d6a18df0cfb941775c6f7d5d62d0878ec036c7ff21","3169845","1486904169","2/12/2017 12:56:09 PM","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","0xdf36ebffa7ab074a13e665dabc34ef4b42e59d75","100.000000001" +"0x203b8baedf851618c84172dfd22ef9d637d84bcec5c3926e88281aaf43ec93d0","3243710","1487962168","2/24/2017 6:49:28 PM","0xc3d0dd58fabc127f0b2a378c1bf3df8b4494806b","0x3d48587aa16d91a2e37198b5b428674bdaddf038","15019901.00001" +"0xf9c07b8f82910c31202d07b02088d1262439874c84a862b6947794b3271c5012","3243715","1487962296","2/24/2017 6:51:36 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","15000000" +"0x6252a45c7aa5b300fde3c800ce34658304b282789ffcad52e10d8a7f7b672727","3244159","1487968892","2/24/2017 8:41:32 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","800" +"0x8c005a4097c329dbb36136c3b3447e328caa5409cdbb19d553e9833c61b31c9f","3244181","1487969303","2/24/2017 8:48:23 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0xac8a7317b266f3a5540fa569608b601b99648e07e8f02baa71552c3e3c10b7e9","3244187","1487969452","2/24/2017 8:50:52 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x576216925b8df3545e1b12c9f14686f8b024b3a02715104d07b2dada00ee5def","3244240","1487970143","2/24/2017 9:02:23 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500" +"0xadb53eaaba41afbd0326db457db428c5147ba58134352c1dc76881b16673ba69","3265195","1488270089","2/28/2017 8:21:29 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","100" +"0xe822eef9f9c70d63afb8b132cb3e8cd1c3eec84f8ca854233ac08ee01595620d","3265549","1488274826","2/28/2017 9:40:26 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3d48587aa16d91a2e37198b5b428674bdaddf038","7496980" +"0x1590e2888c1d943247070f2b99f1cce7110e6f837f03e4755eba353fb1a105f5","3265578","1488275459","2/28/2017 9:50:59 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","1000000" +"0x11149264e96935fa4a3b605276dd05d85bd30f8a0e5c7ba4663a896dcf6ad7a0","3265749","1488278012","2/28/2017 10:33:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","1753611.245" +"0x13046422fc752ea6a48db72730cd3be980f088813732852f92f78d3126f1a579","3265787","1488278422","2/28/2017 10:40:22 AM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","753711.245" +"0x4d7843c33a3bd8b285f815713dae1ef45bf9ef2112b311600da194cf8000a071","3266075","1488282305","2/28/2017 11:45:05 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000000" +"0x6f00fa28c7ac60307c5015a6e0dad1a559e349708ddeb187ed4d8214dda7febc","3266361","1488286397","2/28/2017 12:53:17 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","1000000" +"0xbf41ad827be48dea420bfd65e4ab8bbaeaed8a235b3719e916be11e03272fb89","3267606","1488304244","2/28/2017 5:50:44 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","1000000" +"0x542bb69ecf5b746a2dd5d4bf0d63a75305f446073bcd76499bcc3febf511c82b","3291254","1488643719","3/4/2017 4:08:39 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20200" +"0x0dc4c596e4155ce2fae4a80a00cc024cad74503958933d10bc2dc122d3b5fc70","3292056","1488655324","3/4/2017 7:22:04 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","100" +"0x4ca8a0988837181cabd453a7f06ae63ec8eae0b8491c9b7a4a862e23c19f7539","3293354","1488674234","3/5/2017 12:37:14 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0x3905c6b23c6d8cdc61eac4194c5e612da73194f9e213f19f8c68f83451aa1b73","3293580","1488677120","3/5/2017 1:25:20 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","40" +"0xea6d8ee3a71d2e244b4c2085dba5ace68b83342274b92e31d47a1d9d4c8ceb58","3299951","1488768366","3/6/2017 2:46:06 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3d48587aa16d91a2e37198b5b428674bdaddf038","4500" +"0xa9f8c66497172150466ea47d91a04b1809a45fb33efbcf2420498638f9d8aa5c","3314979","1488985265","3/8/2017 3:01:05 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10000" +"0x29a9cc20d7d194a48935a26a960fce7d3c9c0a9c54897febeee8611d9a4708a5","3337677","1489313847","3/12/2017 10:17:27 AM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4000000" +"0xb699d391edda63fceebe672c00dd45cd70fa67ebdfa8addf9679a59ae4cf2b64","3361313","1489655369","3/16/2017 9:09:29 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xebf5034636391d5ac5830929f60ad4b8a61b9993","1000" +"0x63695e44887e593a0d338967cce8da0df03ad1bd09eb0eb8c39ceb5238db8406","3377062","1489881692","3/19/2017 12:01:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6af0474ae538ceea2b8da5cd368e111b89784a35","100" +"0x3dc5911714c0005d4896bd9f15a05bee957654bc22fbf3c04a2ccb9fdf3e7e30","3377073","1489881857","3/19/2017 12:04:17 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6af0474ae538ceea2b8da5cd368e111b89784a35","23000" +"0x4a2b27d0302490b5c197890c92e7cf43d837e38d040c4626403454e26e0c5848","3377077","1489881912","3/19/2017 12:05:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6af0474ae538ceea2b8da5cd368e111b89784a35","1344" +"0xa17c6792071cad7bad8957386f0ee3509e2765c11b4b5aeaeafcb3e408ff02b1","3394305","1490130633","3/21/2017 9:10:33 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xb450c3af034975dbe868187ff3c594fc87b99b22","25" +"0xe5e1528eb5ed1ae1f4fa3b3fe8b85b39c19feeb2a97f92abf057efbd6be538d3","3394310","1490130760","3/21/2017 9:12:40 PM","0xb450c3af034975dbe868187ff3c594fc87b99b22","0xed06337cac5839fadba4d01436dfdbd9754aefa5","25" +"0x8a63e03d3fb71af1fd5c0c907dd775ea302e10954efc0eafa4167062f1246db8","3406232","1490303430","3/23/2017 9:10:30 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd3b2f5d61226152410d6219d23544651b85d3f46","10000" +"0x8a2fec451e1d7c650c298e0d90bba69e51bb2a93fbde039580c81e9f70e5a96a","3406236","1490303526","3/23/2017 9:12:06 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd3b2f5d61226152410d6219d23544651b85d3f46","8834" +"0x5b1dbbe9fd1e579d0e98ff7d5da2f5651e6235afa7c3e4c55b0a2bca7fb88749","3406290","1490304409","3/23/2017 9:26:49 PM","0xd3b2f5d61226152410d6219d23544651b85d3f46","0x6af0474ae538ceea2b8da5cd368e111b89784a35","1000" +"0x67405ec1e91a9763d49897a1e0a9b4eaafdfbc85df34d0456bc3e5d80383e48f","3407976","1490328826","3/24/2017 4:13:46 AM","0xd3b2f5d61226152410d6219d23544651b85d3f46","0x6af0474ae538ceea2b8da5cd368e111b89784a35","17834" +"0xbcb442a084b2e18de3ced02eee4e7f9d694d12f43a698959a5587c55bbc972b5","3428697","1490629523","3/27/2017 3:45:23 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1000" +"0x5ab09af7c66da8b7301cc48edf6412ddf4495f70f18b8cf90cdc175634fe01e3","3428814","1490631340","3/27/2017 4:15:40 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x000001f568875f378bf6d170b790967fe429c81a","500" +"0x41827fdb290ee9364d0f20f147f62cbd2a20dc2f02d232137ff08c0669fc876d","3429354","1490639116","3/27/2017 6:25:16 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","11.111111111" +"0x62b857891c42b0db341b18c4cc8382c59d7fc56bfdb061ce94f4ef2d38510f54","3433418","1490698109","3/28/2017 10:48:29 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","22.222222222" +"0x1a3dfa71aed28babc9064e5b36bb465af1d63915387f7e482c6fc4baea0ea4ce","3435304","1490725963","3/28/2017 6:32:43 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","466.666666666" +"0x89c37b8ebea83fca3479d25edbf46f4aea9ceb0636ed43b05b19a89d7976fe96","3435345","1490726596","3/28/2017 6:43:16 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","466.666" +"0x91250a421a69e1d6544d3563b5bc566aec0b5347fa44f925a19fee819f6808cb","3450110","1490941447","3/31/2017 6:24:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xba41fdfc2371719fcf781b81f0e5fb353afa131a","80465.498" +"0xeb031fc91d6c262f20cd431195a0ceb4079d5b8f7d49eb41111c4d2fb515ebc1","3450957","1490953299","3/31/2017 9:41:39 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","10" +"0x6bd12530d837eb7a8a986ed5e5fb7a29b686ce5f4312949a15ea5a70c1ae099c","3451005","1490954011","3/31/2017 9:53:31 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1E-08" +"0x8e6a0b8025ed601063191dc45496b1cd47a26097972a9141a32e25b427c5c377","3457046","1491041858","4/1/2017 10:17:38 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x516dbcd038ea68337c582e8ced9a06589d30a030","1000" +"0x2a90eab0f9298314eb1cf968e0cfc99e1ee88d8ff32c56815dbd832f42617963","3457062","1491042076","4/1/2017 10:21:16 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10.000000001" +"0x462070d395ce6fe13a5d130b0a1ca0832cd3cd3363b33a1429b43a004b4bb719","3457313","1491046125","4/1/2017 11:28:45 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","5000000" +"0xd8fc0cf24218b1e6ec2df7cb992242078fb5138ed32fe1529ece78217a0b364b","3483561","1491427841","4/5/2017 9:30:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa10cefa3d041e48d2889f34c0341560929b43e39","1547.097" +"0x25403f74faa5c3844cb12dac051c716ed7bd787ee7353742e100580b5138504e","3489624","1491516961","4/6/2017 10:16:01 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x3d48587aa16d91a2e37198b5b428674bdaddf038","66.666666666" +"0xcd06e6e14c1a6cdba195400e25f4c417bb407fc12ce47345dae1a9e116abe122","3489661","1491517479","4/6/2017 10:24:39 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2500" +"0x860240fdd100c36cbab416aec68d99a6a902fca871d38b6cb4993d7f9372d575","3490710","1491531960","4/7/2017 2:26:00 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","84" +"0x30bb19a131948a520ad3a6a75e1a4bff956cb7cd329a12dc9d8ab7bdabd8f146","3490732","1491532257","4/7/2017 2:30:57 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x516dbcd038ea68337c582e8ced9a06589d30a030","8.4E-08" +"0x23f4f9f4ab19a89c54514cbf417cb179c1d190a2d5bd202dd07a72e1b51f217b","3490755","1491532620","4/7/2017 2:37:00 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x516dbcd038ea68337c582e8ced9a06589d30a030","83.33" +"0x85c2aac7e758c2f1c99ab3c92c1d91bf4e6192b4d8ca492d4abfcd8b9c6ac640","3490851","1491533845","4/7/2017 2:57:25 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","2000" +"0xbfa762b441274675d0f7b97618f09ab022babdbf7c501f951316bc9f8e8a7294","3490877","1491534175","4/7/2017 3:02:55 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x79747a597d680478ef726f79aeb74fed6d999d27","1" +"0x750634e7a92eddc0b8464500aecb6fcc5e5ff8b108a2b8beb60fbd8f66b17cc9","3490923","1491534901","4/7/2017 3:15:01 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x79747a597d680478ef726f79aeb74fed6d999d27","1999" +"0xd9e3b164baf5974eba1063b75fbf3f71788e4344616ec17baa031c201897ba91","3494121","1491581533","4/7/2017 4:12:13 PM","0xba41fdfc2371719fcf781b81f0e5fb353afa131a","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","25000" +"0xc8a8260f96bd3dce449311da63a3307e27ddcb85b7c8fe792b4c47fac5cd3f17","3499320","1491657128","4/8/2017 1:12:08 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","111.111111111" +"0x689e08e3f2d43c801c5a5e1de712355da8f162645aa1bfae245183c098404600","3500414","1491673543","4/8/2017 5:45:43 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x3d48587aa16d91a2e37198b5b428674bdaddf038","13.333333333" +"0x91edb43be1ef20bf82cb90a60220dfbe5476f475231210a241ba6ae6a9dfda4c","3501427","1491688054","4/8/2017 9:47:34 PM","0xa10cefa3d041e48d2889f34c0341560929b43e39","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","7" +"0x71eeb169e8565cac9c0694715697e56742ecd3dc21df412c40ea816acdf340a2","3501429","1491688089","4/8/2017 9:48:09 PM","0xa10cefa3d041e48d2889f34c0341560929b43e39","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0xd976decb4cf3d283d4001f27e3668b1dc5d3392a7489bc42360e41bfb7cba1fb","3501776","1491693321","4/8/2017 11:15:21 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","16.66999992" +"0xd8bc09c1a22ad1bc0e273711b7a19e5348cdf5c262f0f78cacd674d689b0302f","3501789","1491693547","4/8/2017 11:19:07 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x516dbcd038ea68337c582e8ced9a06589d30a030","16.669999916" +"0x06172aa871a2d6818b1478636e231b53db54613face4061d753694f5e6641b0d","3508302","1491790557","4/10/2017 2:15:57 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x721948a802f41159348e67fbcfaccea8a2b04c27","400" +"0x76f40eab4eaeffb2a06f366fd2353405cdcbca70ac03c42d0c58f9e5256a3661","3508331","1491790946","4/10/2017 2:22:26 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.333333333" +"0xd4bcca97222cddefb9407bda4dff02de8e34d28fecd027e506637bd9abd9d624","3509532","1491808598","4/10/2017 7:16:38 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","1474.268155555" +"0xbce63c4678a5c4b7f5ca74bacf8c356e71c2badad0d300fafa78ff5816d2898c","3509537","1491808644","4/10/2017 7:17:24 AM","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1474.268" +"0xdcea6cd9540f3d30202a4182aca23b4e33aa2df251ca4030988a3da564f4d425","3509836","1491813294","4/10/2017 8:34:54 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","49" +"0x374482e299449290d61c866759946268f97b269d1513dab52d2b7fdc85ef3e10","3513287","1491865258","4/10/2017 11:00:58 PM","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","49" +"0x905ed0b7db8929117e4763717fad58fe3ab20c7f85d8524c643fe700dbc3aa9f","3520972","1491979283","4/12/2017 6:41:23 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","55.555555555" +"0x27d2fb88a679ef97f9bb3faeb06ce7d4b8574ae4d37c4d6d3c5bd7e3da7b0b9d","3520989","1491979445","4/12/2017 6:44:05 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","55.555555555" +"0xe5f5d79baf4aabf866ae03e96e1d280e97a6a3a1d15753c179bc85424aa457bf","3538689","1492242943","4/15/2017 7:55:43 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","22.222222222" +"0x7f1eba3a906ffc89bf43c6b4137b3b05eee18c29005d21a7e8b214551ad201b8","3547897","1492379803","4/16/2017 9:56:43 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xa9355f3da6f35c365265678a7f35b398b0a5b2cf","200" +"0xf38c684f8da639855d13cd986261297d96706b135bdda80ac44ef206a72b52dd","3547936","1492380331","4/16/2017 10:05:31 PM","0xa9355f3da6f35c365265678a7f35b398b0a5b2cf","0xce45c22c55d8927e339606c996968a2963826ff1","10" +"0xf634bc550015a87278962667bec613111c22f4491ce6fc87d72a45864ad0bb45","3547961","1492380731","4/16/2017 10:12:11 PM","0xce45c22c55d8927e339606c996968a2963826ff1","0xa9355f3da6f35c365265678a7f35b398b0a5b2cf","10" +"0x341f92f09ee422c4ee8ef0fc1d77bd0177ccc2713ed682959a246862a9d3c842","3548730","1492392594","4/17/2017 1:29:54 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x8e457d8c2737779df6fe0ce13e62562a852aabbd","581.2874" +"0xf9023b8728ad1baf66a38636be5e3241e986409189251d16c695b1b94d18ca75","3550358","1492416715","4/17/2017 8:11:55 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdcf7584f7da8879636651e23615e6b62e4a15071","500000" +"0xd705934d0e29ea00f530746bc91b48e1a3c5cd8b31827db849ea791c8a3a2086","3550371","1492416812","4/17/2017 8:13:32 AM","0xdcf7584f7da8879636651e23615e6b62e4a15071","0x72f7d332f76b23a9d40fae15ee7d81e2a964ba34","50" +"0x58d09abce6150e31bd25bd72c613a76fff756de6f0bb7a649aa3fca991287eef","3550395","1492417188","4/17/2017 8:19:48 AM","0xdcf7584f7da8879636651e23615e6b62e4a15071","0x72f7d332f76b23a9d40fae15ee7d81e2a964ba34","499950" +"0x7198b549c3d865a27eb7ed11c730510a6ab8791be128d1cc108e0249828025cb","3555813","1492497324","4/18/2017 6:35:24 AM","0x8e457d8c2737779df6fe0ce13e62562a852aabbd","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","200" +"0xede99728986be2a64d329f35fa7150aee31b595a479d7e815d9b7575c715d3fa","3559834","1492555704","4/18/2017 10:48:24 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2.702702702" +"0x43f0cc08c1cf88fbe895c64bbc3dbd9d4e8bad8d13bc912399dc1d9994d9be65","3559841","1492555826","4/18/2017 10:50:26 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2.666666666" +"0xc6680388497d2e6b650a20bd66c8fd34536ed2f826fd3ac1fcf6dfa11b338472","3559842","1492555861","4/18/2017 10:51:01 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.066666666" +"0x41ec4101081a0dc666434685db21aee8deb0eaf0be1e9174f84b6489d4347ce0","3559844","1492555901","4/18/2017 10:51:41 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2.8571" +"0xbc19386bfa6670cd04edb966d600b0b0052c1740c976c020ea7a00031045d30b","3563356","1492608479","4/19/2017 1:27:59 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","1050.973" +"0x8df5556f95c94d09f9aee6b4ef96efe5d786e81a2279092d5e3077bda6295af2","3569589","1492701827","4/20/2017 3:23:47 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1.4285" +"0x41a5708de082a66f40738c3c4f9d1a0d8cf4973cd8b8ee8219a0b72e98a69e23","3570353","1492713455","4/20/2017 6:37:35 PM","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","0xac45d1af00de29efebbc9e72c6e7e852c238be32","50" +"0x1ff682aceb096fad0c5b96692d9a584ef9ef12bf68469bc2333fd78727e3324b","3570387","1492713852","4/20/2017 6:44:12 PM","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","0xac45d1af00de29efebbc9e72c6e7e852c238be32","1000.973" +"0x9458dce0740a0d4ea667413897fea37d4e60e1f41039ff71c460f3128a80506d","3574043","1492767887","4/21/2017 9:44:47 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","7.1428" +"0xec489569c09d271beee35c6749d55af69a9f9666ff0b3e0acc221f93e3147843","3574529","1492774947","4/21/2017 11:42:27 AM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","1000" +"0x0b5d3f1eb6d78b778bab1fab6e69d8d4796fd12a17fd77e23eaf015bf3e8dab3","3574596","1492776133","4/21/2017 12:02:13 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","2000" +"0xbda1ac7c62850e4e05acc13188b825710bf2d1fe3a3043ac01e465aaf221ed69","3574629","1492776645","4/21/2017 12:10:45 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.002857142" +"0x3f51bcf25cf149b65ed1d751d58eada17b0e9e140d4f35e62c4719d60f5347e6","3575303","1492786369","4/21/2017 2:52:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xff723447d3a4da1bc4bfd6ee7ee112dc6bf1dd08","100" +"0x09bc1bb65abe033505883a074ef01682ab4d646be7aeabbd4ae7e583148dffd2","3575384","1492787719","4/21/2017 3:15:19 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xff723447d3a4da1bc4bfd6ee7ee112dc6bf1dd08","100" +"0x8b22b4c8e094eb498c61204fe934ca675ca5796ac07acc1c8771ac0099e21f72","3576592","1492805112","4/21/2017 8:05:12 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xa9355f3da6f35c365265678a7f35b398b0a5b2cf","1" +"0x2d3839b3c745882d070301d7544f7d3a75f80312103529b067dbef9c7475f829","3576862","1492809101","4/21/2017 9:11:41 PM","0x8e457d8c2737779df6fe0ce13e62562a852aabbd","0x79747a597d680478ef726f79aeb74fed6d999d27","1.2874" +"0xf6feb0aacbc893f7561f18bf00eaa7167bf0805d6b569fbe807f723927e689ea","3577191","1492813880","4/21/2017 10:31:20 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.028571428" +"0xff6074212742d892a90f2f9d8623ae4d3090d91ceeadc3f7ce38246b5a0c1118","3578461","1492832195","4/22/2017 3:36:35 AM","0x8e457d8c2737779df6fe0ce13e62562a852aabbd","0x79747a597d680478ef726f79aeb74fed6d999d27","10" +"0xf1c368aacdc66affa0e436e10fddc03a48394a53c0d88a53623f89a84e422967","3579172","1492843161","4/22/2017 6:39:21 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x3d48587aa16d91a2e37198b5b428674bdaddf038","14.2857" +"0x624b6edf8325dd7a401a9cda325ccd8cc16e1a3f86f6a7b416f1fa203f1a8492","3579221","1492843947","4/22/2017 6:52:27 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.028571428" +"0x189fd4af3a123afc6d3c17507abd0506d74d06b2fee8392b75436ff9596d5733","3579583","1492849317","4/22/2017 8:21:57 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.014285714" +"0xe0a5a329ebe7dd7414aec6a7d590c5ed0a7fabed40463ef0ee4e531475582af7","3580036","1492856776","4/22/2017 10:26:16 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0xc58f383498075c491da686edbfffe6afde133d82659982587c3d8fa2f29788ee","3580041","1492856920","4/22/2017 10:28:40 AM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.5" +"0x6c0d5e92ff4be4a07c6f09ffb738f2edcd1b2b891b2a8f61f269957574fa2f72","3580329","1492861439","4/22/2017 11:43:59 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x3d48587aa16d91a2e37198b5b428674bdaddf038","8.5714" +"0x7195a3336e18c6e5192fdb6b8e0bcbb4667744fc6adeff7985ee310a114e1bff","3580725","1492867081","4/22/2017 1:18:01 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0x15974448f0fadf89798d099eff2ccaa73e0c5964964ea3cdceb6735f73135f57","3580886","1492869559","4/22/2017 1:59:19 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0xa8e1f4aed1133f7fa6f9ebd1c3593a5699feadf4","1" +"0xd87d62eff0cdaa124d4b86d8ea13096b8b224ee020bbf1c17cee44d3e492e0e7","3580999","1492871263","4/22/2017 2:27:43 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","13.513513513" +"0xde6b8f36f118a8f615f2f1d809c56136cacab01697cf7cfc486f3dda7a43051a","3581371","1492876387","4/22/2017 3:53:07 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0x988dd1b16eb9660d2f1439f90b29b39be86ec25ffd7db14353c225156d38bdd6","3581800","1492882600","4/22/2017 5:36:40 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x3d48587aa16d91a2e37198b5b428674bdaddf038","14.2857" +"0x2a1e575d24a738a6618c9db74b9bf168f2e9ac7cfca62e7dd34239567eccec1f","3581812","1492882800","4/22/2017 5:40:00 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0x6f6104307e6e91f6fb67d12c7b11f06541e4a64b6846a179a2e868a5f11471b4","3582039","1492886207","4/22/2017 6:36:47 PM","0x6af0474ae538ceea2b8da5cd368e111b89784a35","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3000" +"0x5ec0acfe314985e9320ef4df2b498004a651889a22ae5b26c69a7e010d0b8d17","3582102","1492887088","4/22/2017 6:51:28 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.142857142" +"0xd7ce86e330f139a8be23edf22b12160e9f30f0f790d23a8c1d0b6bf82c1989c6","3583036","1492900520","4/22/2017 10:35:20 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x0b5fa328278442956d405d8b501571e20b96260e","2000" +"0x5cd7e348abee585f8e71f5e26800af7f2f2851f16980a4f009f4076c9bc6bf5f","3583084","1492901355","4/22/2017 10:49:15 PM","0x0b5fa328278442956d405d8b501571e20b96260e","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","1069" +"0x3a3aa293d5caea50255b53c77e93e54337ff857465eb192cb0b89c2114e53664","3585868","1492942753","4/23/2017 10:19:13 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","112.8" +"0xaf767909c56d01970d35c5f3e344fca3090608bbb1337e73d3d7fb7531c3e76c","3588023","1492974856","4/23/2017 7:14:16 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.014285714" +"0xfa0db36a5edba71a9a35dd17e4312fb4d2fd0dccc49a1699d775aa76e74b1cdc","3588996","1492988853","4/23/2017 11:07:33 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.028571428" +"0x72842b6efb880b04bcc446d65b347b2ae7f6381bb0530e3c0a0d13d45ea4bf0c","3589011","1492989087","4/23/2017 11:11:27 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","100" +"0x076dba6dc5edaa8b4ee1a2737427a51715437e8af40425f5753813c4f9b2a702","3589030","1492989437","4/23/2017 11:17:17 PM","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","0xc83ce4e0d62c3497dd8b4eb6250053d5ffc024b8","100" +"0xdacb0734dd0ad089945fc3d329115e20010b34061128773adff222f1c5400880","3590121","1493005724","4/24/2017 3:48:44 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x454d72bf7508edbfa8f6c3373a26aa23b795414e","1219.4287" +"0x57b69819e3f59340db7ad0935ae2e21e0564933972dc41fa88e944613ef267a4","3591499","1493026623","4/24/2017 9:37:03 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.1" +"0xe25c72befdb904aac900d30bdd71f8bbab6e38353bf4ad6485f58715649d46f3","3593730","1493060087","4/24/2017 6:54:47 PM","0xac45d1af00de29efebbc9e72c6e7e852c238be32","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","1000" +"0x902776687ac658d2337438407c5187209863dde4cd2461a02819703b1bd36a14","3593759","1493060553","4/24/2017 7:02:33 PM","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x836b7e8d8c2421375e2a388ca2601cf2b9529d84108e38455fbef2f1101cac2e","3594490","1493071636","4/24/2017 10:07:16 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0x82106d08fb01ce47a0c8513553c51fdb0481b442","1994.071183784" +"0x90641930522f606e621ffdbe8d34ae9cd6585a9a6886d0fe3e03a102b00765c4","3594592","1493073078","4/24/2017 10:31:18 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x82106d08fb01ce47a0c8513553c51fdb0481b442","1017.333333335" +"0x440e8e3ee173fab59729238c2a77cffd54d91f3868096799d273445ddae5d13a","3595352","1493084082","4/25/2017 1:34:42 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.666666666" +"0x5fec7add1457db3a2a213296d056739aa376e7ef107752e633b50a5eac0aed0f","3595378","1493084474","4/25/2017 1:41:14 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","3.333333333" +"0x8f5dee32e2064454e8705fd49721ee462c53542f95c9b1a5675359f5876cff49","3595398","1493084839","4/25/2017 1:47:19 AM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.222222222" +"0xb275bed3622beaa3620b03c4bc7073a9cdb58eb4c564a80a57b2cbef2fd9691f","3595632","1493088336","4/25/2017 2:45:36 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.028571428" +"0xf7be94877a1a02a944aa2a0aa7a374d735b784965edbb7c260c0f43ee15a3ea2","3595912","1493092541","4/25/2017 3:55:41 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0xb39e80a7cebf1799f94504ebc11324e60f7984123a3bc72464ec60b45dd67985","3595962","1493093258","4/25/2017 4:07:38 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.028571428" +"0x2f71e20e0843a80063e74f97a1c05645ac7b2b8da11d70481594a83942a98422","3596446","1493100278","4/25/2017 6:04:38 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x5c03df0229600abbacc1ee55e0b70b652b080b12","1000" +"0xf5dcd015875b45bfd4058fc78495e417647da2027fa16071a8874a8b21fe3332","3596459","1493100424","4/25/2017 6:07:04 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001538461" +"0xeb5f00f7f8b95902ad0f8e76b21834e3d74dbcc5d09433a91c27dafd5d142718","3596644","1493103030","4/25/2017 6:50:30 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.003076923" +"0x7c7db9e0054ace1c36e53d6d55d5a3bf6e10ea050895664715592abcd2f3a961","3597029","1493108517","4/25/2017 8:21:57 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","5" +"0x258596cebb0f401cc4bf38a1938aa5d1a96ede4005b9f3d4d6a295358f370dfb","3597070","1493109124","4/25/2017 8:32:04 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","20" +"0x12700e2a7268030774b9309d06d7ef7e20e0e028f9b6cf4006079784b742e21c","3597074","1493109180","4/25/2017 8:33:00 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x01be0c0e1876bbd41b593ba89829da75dd05c917f7aad0f341b60928dcb1e309","3597136","1493110051","4/25/2017 8:47:31 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","10" +"0x0658be1ca5fbc49fa01ff894d06c2d8dca22c69abc36c36d5ec974e7812bbd9c","3597143","1493110182","4/25/2017 8:49:42 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","10" +"0x981e489af6644facbb0117484ea81522b1326182667c065e89d844507b642c40","3597282","1493112110","4/25/2017 9:21:50 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","40" +"0x90a5d79c6c6dafbcfc3b09d867695a4eba0105245cb6873d4a4d3925d2e7ae6f","3597284","1493112162","4/25/2017 9:22:42 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x1d7ab247b12cc4b3aff2e19e0b5344a27ba3a7c1d814fe957c30c64dbaed1209","3597762","1493119534","4/25/2017 11:25:34 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0x002a9e1391fbb86726a97bcbf6bb41da11d34298f14db0610de3f3b749ccd8bd","3597918","1493121813","4/25/2017 12:03:33 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","30.00117647" +"0x8b5536e54b4eeff5df7db91ef670e6a23dfddad64ad70eca769932e33bbafbbf","3597923","1493121895","4/25/2017 12:04:55 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xc2d1e37b202c881059319f481b158f23a246b45c5b080594bfd56068b2877091","3597954","1493122302","4/25/2017 12:11:42 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xf1d38e00b919edf9e825a097af4d065f617b23eb337912b2ee45086601aa0141","3598222","1493126204","4/25/2017 1:16:44 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x0000000000000000000000000000000000000000","10000" +"0x6f1c4d79ba5cd8ebd97967e05e9c78a4393aa7521b03200802b7a357dbf4f73c","3598249","1493126589","4/25/2017 1:23:09 PM","0x0b5fa328278442956d405d8b501571e20b96260e","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","10" +"0xd2eb2606b59e92a7cd51f0e8add7ff04d22655b3c1f4f0d05732eab152077dfc","3598271","1493126857","4/25/2017 1:27:37 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","9.9E-06" +"0x4c9066608049f0d409218ddc08438d56b9ecd3d6528d034ce6d1f1477a7b576e","3598336","1493127934","4/25/2017 1:45:34 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","9.9E-06" +"0xe1d08243aa334c9a8fab0c9ce9cfbdf206e9ede2bcbea977171144b4added3ef","3598477","1493129898","4/25/2017 2:18:18 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0x0307491fac7c9a6d78d8534614f3fbdae64cf8825001663d11bab7eef2a2fcab","3598582","1493131536","4/25/2017 2:45:36 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x3d48587aa16d91a2e37198b5b428674bdaddf038","9.9E-06" +"0x331e906d0065cb7db7c9d9e99fefc88a9008fc5076984c76828a62f279ba6247","3598995","1493137588","4/25/2017 4:26:28 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xac990f01ddd6b651f998bc9d44995131e371a6f6f6a53ef514ee0a0efd7a8198","3599155","1493139658","4/25/2017 5:00:58 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x56c26538f9c5b30209213f0e4e71519cd7dc5d78df419528d74be0e9e3e16e9f","3599176","1493139983","4/25/2017 5:06:23 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0xe8c6353ff1afe1ee41bfbf3187f72108522f6b167e8f07d55f300aff212d162f","3599179","1493140051","4/25/2017 5:07:31 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.011764705" +"0xcbd5071a933b77c7429f3f5835a4b433c403dd6d568d9477e24b440cd7b67fab","3599187","1493140185","4/25/2017 5:09:45 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001538461" +"0x5226713e2cdf3839b566a44a1b32ab6f92ff36546d77f96b6f634c49e29da7dc","3599218","1493140602","4/25/2017 5:16:42 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x3d48587aa16d91a2e37198b5b428674bdaddf038","9.9E-06" +"0xa7a3da700eb3be18113e83fba986501abc5ce634c650140500341b6e0391f73c","3599308","1493141974","4/25/2017 5:39:34 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x3d48587aa16d91a2e37198b5b428674bdaddf038","9.9E-06" +"0x596e04670bb5a219312a0ccf1aa67155442f456174097377d60c7987fa3a9917","3599482","1493144620","4/25/2017 6:23:40 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100000" +"0x51920c4520038987ea614ad5cd765dd671438fa484aeccf301023fde6a03883e","3599591","1493146226","4/25/2017 6:50:26 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0x4d42f88c8eb6124d47bc1b058bef6b5819ab0a523fe90c90a819f814825a6db0","3599988","1493152443","4/25/2017 8:34:03 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","135" +"0x7e4b81a77fd6070eefa4a25c1854737acb8ba49ff3f430af17004b611fa94b77","3599992","1493152511","4/25/2017 8:35:11 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","0.160774244" +"0xf1ed3f3f87c7eb551100f1d1f9167246afa54b0b68d2319fa8caa605f41eb135","3600003","1493152647","4/25/2017 8:37:27 PM","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","247.96" +"0x95ffe426a04055c6dadee024e0edd289a035601b1b9998668d5af111ac81f5ab","3600127","1493154528","4/25/2017 9:08:48 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0xa1baeb95a50b7b1f7bc6fb3284681388ad8d2c588a5f37a30fc7b64ef1950baf","3600131","1493154570","4/25/2017 9:09:30 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0x23ae2d488116573e722382f66076fbd05dfafeb239408fd2451c10ad7eed92dc","3600252","1493156305","4/25/2017 9:38:25 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","4000" +"0x2806713c26743dc9b3556f47af06d2e797e1e540ae7ff9c40ae7e1051d67c277","3600274","1493156701","4/25/2017 9:45:01 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x721948a802f41159348e67fbcfaccea8a2b04c27","10.6" +"0x2010d9b1402d2cac5539a78d7ebcf67663f4826e2efff48a005445e1ce3a8cb3","3600300","1493157003","4/25/2017 9:50:03 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","29.258517034" +"0x662c9d2bacfab797fd41b0a3c8c5b9e03526cf0d5fdeb70e918bb8e09e3f14cb","3600315","1493157216","4/25/2017 9:53:36 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x516dbcd038ea68337c582e8ced9a06589d30a030","1275.000000002" +"0x2ea17bcd5a230b647918fe610280bf9f9734da77a2c02cded5b462fa2f1a18c9","3600317","1493157230","4/25/2017 9:53:50 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.000833333" +"0x7b3964ea6fceadc09077ce71f2c0bf244489efbbca4bab5c1cb748dfa31b7bb7","3600323","1493157421","4/25/2017 9:57:01 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","1707.6003" +"0x3d72116360ef6f932040014abbdb6bdc3bd013531403e0a5c7f8ef430c65a428","3600334","1493157512","4/25/2017 9:58:32 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xdfcdf2b604db12290b36194517efbfaf00878f2ffde1e09792159369b800c1db","3600362","1493157849","4/25/2017 10:04:09 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x79747a597d680478ef726f79aeb74fed6d999d27","1" +"0x916ee45cddec4445be2e8f302bff8e25e2928eac71ad130a5b09e578de8fa834","3600375","1493158036","4/25/2017 10:07:16 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.00117647" +"0x76d3db1ced8d62b54ccac7b329ef530cc0c206c62038ee88ad91fb00e92a5ed6","3600378","1493158081","4/25/2017 10:08:01 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x79747a597d680478ef726f79aeb74fed6d999d27","977.21184955" +"0x0e42148d476ced972970fc00e0843d1243593099ce1cebd89e28e41ecc8e33e7","3600412","1493158462","4/25/2017 10:14:22 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0xe4dacaea303c2363fc66c872c01172dff8c18fa2a43c52f090a209742a06ce36","3601705","1493178230","4/26/2017 3:43:50 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.000833333" +"0x0cff9417a20e8c8eaf6088e09599f0cbeb79b63e6f82c9c790948bf13d3c11c3","3601766","1493179091","4/26/2017 3:58:11 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.00117647" +"0xe5464ffe3ef883f33d43bc3daf3880a86ff7b1a59614480b9ae73ad5d0f9c11d","3601812","1493179948","4/26/2017 4:12:28 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.002857142" +"0x076cfc1eabc00e6728fba58feb67cafe019c8019497f5a3d7872c91b547ee70a","3601839","1493180472","4/26/2017 4:21:12 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001538461" +"0x93359004df0c30f0b8fbdb12927184151fcb8dde5d9df86662449d47778c81be","3601927","1493181618","4/26/2017 4:40:18 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.002857142" +"0x24d9223811b5a7dfbaab70830c57e29171a31a005fa3ab4615017d080af45e42","3602269","1493187175","4/26/2017 6:12:55 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001538461" +"0x6f54647d99d41784f5593dccaff744f618c8a47d7d865c05bfd65774a75d72a5","3602306","1493187790","4/26/2017 6:23:10 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.00117647" +"0x918246f6bf1eeefd372e53a3319c72b996df382d9e95c8e33915dbe35331fb34","3603114","1493200082","4/26/2017 9:48:02 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0xb67a399782ea478f141f2849afaeda78fe6e116664ac6ce7f1ce01f81f02f0f5","3603622","1493207523","4/26/2017 11:52:03 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","2.8571" +"0x01d51fd85d39f945a42060bffa28e9bfe9357d960feacecdade5ec46f23649f2","3603623","1493207532","4/26/2017 11:52:12 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0xe91e57fe87e8fc788b4588aed13da06c47cd802c49f71a24368c0152ffa07392","3603731","1493209083","4/26/2017 12:18:03 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x0b5fa328278442956d405d8b501571e20b96260e","100000" +"0xec90b2dac618abf0f90cc22fd2e53c358bbbd2450f0297cc67cb819e4ecff36a","3603767","1493209660","4/26/2017 12:27:40 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2E-09" +"0x1d747c7e0f7adce05fa086d0ecd2df5eb6b1f4086f5794d130824d79923fca0d","3603776","1493209771","4/26/2017 12:29:31 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.000833333" +"0x047b528ab28928da8609844496233e0c99de332d214405526fcfe38f28a9e5e4","3603797","1493210107","4/26/2017 12:35:07 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x57a8b1544907efb993ca68388abf6b6e6a54d9934b8a050e4b3222f1ce7785ed","3603888","1493211426","4/26/2017 12:57:06 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x526b6e82064285e08069304c28039a7ca2096a22c6c29c86e6a5de06d30723ba","3603897","1493211577","4/26/2017 12:59:37 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0001" +"0x2b64f10f3533b6ce4de44bce1aba0cd0c7bd89e218befd2a2a74e5c666c8d0f0","3603981","1493213013","4/26/2017 1:23:33 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","7.1428" +"0x08748a500d12d371179d4a0c36fc44e7c03efec4d34be8f02d97ce3aa61826c9","3603982","1493213025","4/26/2017 1:23:45 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x97b555d8149953af3dcd930c08324c105d78543372cf7e7ff810a9b699a502ca","3604004","1493213307","4/26/2017 1:28:27 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xeae4767a76db7b832839a89cec807823471fc8a1795eb4e4bc58439e73dca42b","3604304","1493218156","4/26/2017 2:49:16 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xcce4dbdebe65db402203c234e1e788493f74aadfe5efed3230492741003f4272","3605649","1493238821","4/26/2017 8:33:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","979.999999458" +"0xa9129abf2e1479b734bfac854a9334eb16122fb9997d15717900c4f408261e17","3605652","1493238911","4/26/2017 8:35:11 PM","0x934e06fc035b5fdf15c56f4d6f2ea2539421244e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","979.999999458" +"0x96ec6b844cc59a01a2b6f256b04f39c419e556d1e8228478f390bbc5964ee161","3606141","1493246168","4/26/2017 10:36:08 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xa094c133f70dfbe83078373de0aced1ce45af05c28f09da92f4fe5224be49832","3606150","1493246313","4/26/2017 10:38:33 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","900" +"0x463f81a4daa8a62bd17a3b1add488bc2585c72cb721489455d1d369409391529","3606217","1493247327","4/26/2017 10:55:27 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","16.666666666" +"0xb8686162ec43db1860f4485ab3489233cc769c35dc5fc0e7c0d08c2ae9338870","3606221","1493247383","4/26/2017 10:56:23 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x912c69903465447ee23d1118698224d485071d96ea22e8dd3e6ef6bda35a4a6a","3608544","1493283506","4/27/2017 8:58:26 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.00117647" +"0x1db35a3b96c8d862caf578fb21c91801a9b8404a1fd4fd59bff894042122d210","3609122","1493292401","4/27/2017 11:26:41 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001666666" +"0x378d84cedc765365999bbba484c0b640103a282d065ff25025d9f8a8e0753173","3609759","1493302053","4/27/2017 2:07:33 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x9b229a66ed40f9cb7bfb270f10643e22aceca00c","10" +"0x382123032180766978f358a6009c57be7ec16368d1d1a294b311fb0ff9191367","3609772","1493302192","4/27/2017 2:09:52 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.000833333" +"0x88c8aefac1741ad78df65c22d72b97bb65b91a180d6db796eaf080a1d4440725","3609780","1493302366","4/27/2017 2:12:46 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x9b229a66ed40f9cb7bfb270f10643e22aceca00c","10000" +"0xc97f78001935c0529335fd752af6bff071b36fd7396dbe45948577794c8e1edd","3609991","1493305569","4/27/2017 3:06:09 PM","0x9b229a66ed40f9cb7bfb270f10643e22aceca00c","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","5000" +"0xf95f91eb25f715bc38be09986a2836fa6c1f0759444a5933594daf797bf16edd","3610032","1493306173","4/27/2017 3:16:13 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.00117647" +"0x107d60865d06cc6705a4a7d905406fe4da71f74ea67edf56bfe1366a936d74aa","3610038","1493306245","4/27/2017 3:17:25 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x15dedd9133da5b0d01e93cb897b466a714902f75","56.806621311" +"0x5bd19733dbad1b205a348dd182c82f45dafcf99e6453c407f3e729c4358e0d6f","3610078","1493306848","4/27/2017 3:27:28 PM","0x9b229a66ed40f9cb7bfb270f10643e22aceca00c","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","250" +"0x055542f55c03b11c10acd0f06076f118d05c599c4a0ab6824d70841ef3f4c067","3610095","1493307070","4/27/2017 3:31:10 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x08e1d4530a25ed75f0da097b50c6c7ca23bbbb6709573dae815d77a4f4298cf3","3610107","1493307249","4/27/2017 3:34:09 PM","0x9b229a66ed40f9cb7bfb270f10643e22aceca00c","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","4760" +"0x95c6a70d093696fc2b0af89a5256480182add27cff659bf1ab0087a5d78a928b","3610124","1493307492","4/27/2017 3:38:12 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","4760" +"0xcc680a48190eed7574f8576f3316ceee052cd591051e8c19c2d79fd2a959dc5f","3610155","1493307922","4/27/2017 3:45:22 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x15dedd9133da5b0d01e93cb897b466a714902f75","863.988" +"0x8614e21e7e50970dc590f20310bfe937c6a83694ac03fb78a3d891cf46614612","3610228","1493309095","4/27/2017 4:04:55 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x4383e790c2f836f4ca46c1e3a3ee5c7884f0ce8975f473f1baee5e5b47d0aa7a","3610331","1493310482","4/27/2017 4:28:02 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x5d940a0071205dfb48e39defe46624966ed20ea90f6a7615062db42d630371da","3610375","1493311180","4/27/2017 4:39:40 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x3cc9673042d9d59b2c780455e1d56ac500a7152a67562e0aa0c945f9b9644a8a","3610652","1493315387","4/27/2017 5:49:47 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xcbbe53350369d9f0bd39e93e303f8c7d66964b7e0d192f133f0b42d8ef5a1d69","3611136","1493322652","4/27/2017 7:50:52 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","1325" +"0x1718be803abc3cf1aff0bb1e9b49665038554cd741ba73f640fe51aba637122e","3611177","1493323265","4/27/2017 8:01:05 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.026153846" +"0x8517b4adfe3c04ec80ca26be1d8a6518b28ee73698cac6246ac2d151a0e40979","3611190","1493323497","4/27/2017 8:04:57 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","120.240480961" +"0xcca4e971d68908e90be08d031154b8021ba7edec8cffe992073280019e0fcf77","3611221","1493323977","4/27/2017 8:12:57 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","14" +"0x8d3a78ddc95bf1842b44e689d97d443d1ddc992c292469c258e4e0f432a82aa1","3611460","1493327803","4/27/2017 9:16:43 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0001" +"0x09818d6559c17f4ab382be932209e8d71910fe2f32471d78e8c764469bc225e3","3611500","1493328403","4/27/2017 9:26:43 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xf56063385e53d6f709c48474c2947bd1be8cad84932d7ac5f7deb7807e1ce7da","3611613","1493330281","4/27/2017 9:58:01 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x4ee448662429f8df950360c74ef66c184f75779af7e98d10e6b4017b89351efa","3612156","1493338130","4/28/2017 12:08:50 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","33.333333333" +"0x70fb1770773b134e452445d1029da18a6b47534591b4b48e7aa41b1707302050","3612458","1493342689","4/28/2017 1:24:49 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","78.5714" +"0xd457ab1968856e4247a175d84fac3196b1b5c59d51f434648c551772c0385bc5","3612655","1493345962","4/28/2017 2:19:22 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","110" +"0xcf4f9a4e39eb6b3a6666c8b6ac6365487a2ac708abeda9c3698ab524ce08779b","3613375","1493356887","4/28/2017 5:21:27 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x3eab18fe027e14701d13fd76913e9d5880b5f18c4777993a8ae583291419195c","3613723","1493362322","4/28/2017 6:52:02 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.002857142" +"0x85b7649e61c75883243c66011705cd076f1405ab63906d61fa0bffae9f1d6131","3614362","1493371822","4/28/2017 9:30:22 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x98085138a9b7b50bf1804215fb81d9e6babae5f8d7ee1f2f1dc919cfe5200fe8","3614963","1493381139","4/28/2017 12:05:39 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x650d210388f1a5aad77fdcaa4b0afdeffa23a100325850594f6e49aeacc49f3d","3615010","1493381829","4/28/2017 12:17:09 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0x5d505f03e7ec8e7d9254a07ffdfabcb741b63350bf46f60995459d8019455a21","3615045","1493382454","4/28/2017 12:27:34 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x5fd74258383e21eada3759a496012f8fc977a5204d499dcb52c66d28dcfdf568","3615096","1493383449","4/28/2017 12:44:09 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xe26fd1375535967504475bd07df0293ee5d41695","10" +"0xdf4163a10ecbbeb371485be2ca0c3d3442a400f143454ce16cd90b3c482cad9b","3615100","1493383477","4/28/2017 12:44:37 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","10" +"0xf6419a9ed732dd5dffb0a51f6623c3b7e142d79d00a6f40dcb62a38e236ce24c","3615119","1493383773","4/28/2017 12:49:33 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xdde0beb1f9ea54c5f69b3cbf7e4b645dbdcf173e8b71676c03ec24a64f04368e","3616303","1493400939","4/28/2017 5:35:39 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0008" +"0x795efde66454a8893db9e840eb381451ce4922a2d104e82ca6ce6c751a7ff188","3616742","1493407609","4/28/2017 7:26:49 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0002" +"0xb1904f27600230d62b7775e8afe0ba6a3f771a4a890de355a9aafb11c77ddf61","3616920","1493410341","4/28/2017 8:12:21 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0002" +"0x7c8891679ef86a0c2d38cdca10746f7fbd764a3dfe80b7aa36906cbbe2d35287","3616937","1493410548","4/28/2017 8:15:48 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xabdfb8f296c37fa2f99df65a3e096443eae90ab078bd6ee23bad0bb109cd3b0a","3616946","1493410755","4/28/2017 8:19:15 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x3d48587aa16d91a2e37198b5b428674bdaddf038","9.9E-06" +"0xc18ad2e7ac8fac2fd154dcfc1908293789e01993b1f0b777bf99645a3abc7f3e","3616963","1493411078","4/28/2017 8:24:38 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0x274ecbc0559d5f17ec42cc2864c7b35b8025e3e515568762124e15c8fbc1ebdf","3617166","1493413933","4/28/2017 9:12:13 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0002" +"0x3b4fa9d013681ccf32059526c577ec59877ce5a0b80311c4c0e19eacf1fa9e52","3617198","1493414420","4/28/2017 9:20:20 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0002" +"0xe53a14b8652665be6a8acf94dd102be2784e887b4bccca1a634e51d15c828452","3617269","1493415566","4/28/2017 9:39:26 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0004" +"0xbd4cec5e6207d7bc9a413725499d426312aea1c4c781e768cc2de97c387d7fb0","3617500","1493418917","4/28/2017 10:35:17 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.133333333" +"0xfcfb73624576c65074aaddf86be6388c4eeb66ddb04cef82ecd57f15e8ba3015","3617505","1493419083","4/28/2017 10:38:03 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.005714285" +"0xfd4f5f8a179338b996c9cdd24806ac11416b2f66da7d996de29a68d67574bf1c","3617611","1493420541","4/28/2017 11:02:21 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001538461" +"0x17012147a445afe19f2850c5305716bd35849f1262efe1f63ca9eee7152d3481","3619286","1493445862","4/29/2017 6:04:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xb3f83657becf385f09f8d2804a339bf653a5e5d6","100" +"0x8dd9e802a75406039278c6bb583502db29fbeb85102b6a5028f7dbec1d0592f4","3619327","1493446693","4/29/2017 6:18:13 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xb3f83657becf385f09f8d2804a339bf653a5e5d6","2" +"0xe226bd2a494ef13c6e0ecb0a805c1bb3618b4cdc75de1a3fe4a24668a1837b7c","3619333","1493446818","4/29/2017 6:20:18 AM","0xa10cefa3d041e48d2889f34c0341560929b43e39","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","400" +"0x95c13b47c10a0bfafd20f1d95b400b2de9c6fa0732715cbe979834ae02da617f","3621742","1493483698","4/29/2017 4:34:58 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0x0192961ae32e519f28fe1c000ab44868fbcd0d33e491187f9afd53c26c4bf024","3621786","1493484474","4/29/2017 4:47:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78e296d0fc428feffeacd448dde5894486928bab","130" +"0xb5b6552a14dab6673ab385c0e807b32a50734b0e0c2896314377af4feca1620e","3621801","1493484652","4/29/2017 4:50:52 PM","0x78e296d0fc428feffeacd448dde5894486928bab","0x55a5630ec492ade316750729ae7f5c263ecad930","20" +"0xeb9139c896956f1588ebfdc4f0dd50559d98cb26fcd86eb162dfe08055e618ee","3622460","1493494895","4/29/2017 7:41:35 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xe34e2ac2fc217ca3b53a6acf9d18616547391d700fadd276bece913ded25e8ad","3622735","1493499315","4/29/2017 8:55:15 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x9ab90344fbbb796b8b33f28e7f5189c5561395a58d941080af42cd9a58222d66","3622980","1493503248","4/29/2017 10:00:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5bea2354e360f1639c59e911cbf917ceb4656a07","1" +"0x7bd0defa7fe5283c3dd7b0bed56127f82d7d72777f8fab7aa06192e1a3d9c95a","3623092","1493504879","4/29/2017 10:27:59 PM","0x5bea2354e360f1639c59e911cbf917ceb4656a07","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xf4d248a8b5d19ddda3e77325dff925adbeeb9aded3fc188fa210a3f0dbb99c22","3623145","1493505766","4/29/2017 10:42:46 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.001" +"0xf8b503c017f68c674815f96b5445ff0f83747f553241dacec859ea7666dff12b","3624768","1493531113","4/30/2017 5:45:13 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.002" +"0x4a3c767d41bb84b972b1958252da544f8509787caf8f8b94dfcf95b58ff2148c","3625090","1493536080","4/30/2017 7:08:00 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0004" +"0xd623aa1bf26cae01e874d18b0dc7af1c9c48b16e3a4c842828d55030e8f93594","3625665","1493544700","4/30/2017 9:31:40 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.000833333" +"0xc4743ff1974ba9604b578999bcf417585ddf023abfca78fa195f40e0b72ca270","3627670","1493575458","4/30/2017 6:04:18 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0004" +"0x50a4c0d9e7d667eb6d3960a2dfc759de92eb450b26b79c392a563bc5196e135e","3628016","1493580663","4/30/2017 7:31:03 PM","0x454d72bf7508edbfa8f6c3373a26aa23b795414e","0x72e62b8c335c9726814667db00447163a3c801e2","150" +"0xeb100c4ca77751358b7d054b8aa7407513281f327df03c6b1c101457b56f7f56","3628045","1493581121","4/30/2017 7:38:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","2" +"0xfd838e67a438d209f1707e5a79a91651a4be970bc42787c9bf2c70e15de5840f","3628050","1493581214","4/30/2017 7:40:14 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","2" +"0x9cddbfbcb1a9b375048844a8ec964b1cc30d613082e864a2559bbc6c43dc2b27","3628050","1493581214","4/30/2017 7:40:14 PM","0x72e62b8c335c9726814667db00447163a3c801e2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","150" +"0x6d7faa52dd296cd58a62420b10f7818cbed069bfb3e669f02fffc72e603e956c","3628057","1493581296","4/30/2017 7:41:36 PM","0x454d72bf7508edbfa8f6c3373a26aa23b795414e","0x72e62b8c335c9726814667db00447163a3c801e2","1069.4287" +"0xa781833d6681f4c5d634accb8e71f2e24b803b3d0d7dd10c0fa424774113b7ec","3628064","1493581360","4/30/2017 7:42:40 PM","0x82106d08fb01ce47a0c8513553c51fdb0481b442","0x72e62b8c335c9726814667db00447163a3c801e2","3011" +"0xf31b9bea6f6d5e3022793d5f059782a98d75b389ba4e987cc26c7abaac4b1235","3628069","1493581430","4/30/2017 7:43:50 PM","0x72e62b8c335c9726814667db00447163a3c801e2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4080" +"0x61b7347e80eab0befcec3e41578ada42fd312f57b2c6fafe210c7fc5a1fe2465","3628609","1493589603","4/30/2017 10:00:03 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","8" +"0x60730a4c4ad3f6d23395286f7c8df6773beeee38c362afd789d8c99894fa985a","3629085","1493596746","4/30/2017 11:59:06 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x61e62548cf5ea982b3f0397eaac7a8d8c4b65eff0aaac1f4d20afc7b10daf6ca","3629349","1493600924","5/1/2017 1:08:44 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd869ae4d0570d4ffc9e4e71b6d2930da90300e78","9.012" +"0xac717ea63acedb0e57e2ecfb767a5bc32eb4c0fcd39fe2443bfd870fa426e5bd","3629367","1493601282","5/1/2017 1:14:42 AM","0xd869ae4d0570d4ffc9e4e71b6d2930da90300e78","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9.012" +"0xb53dab1c80637df35c412f6f3619c54948418c6192caaca03965a8e0100d4f1b","3630368","1493616263","5/1/2017 5:24:23 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x4181ead139831405c151814a5531c4daa71e93765f052df252525c47f20a6935","3630941","1493625703","5/1/2017 8:01:43 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0002" +"0xcba467d1cb20b7ab6ecfb2a5f5b9073e899b6c4a01fbd04ac25ef730068139e3","3631053","1493627243","5/1/2017 8:27:23 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0004" +"0x50824bffacc2a4aa6ff85d805ee914a371ae14492ebd1878c8267a39e8716a32","3631106","1493627833","5/1/2017 8:37:13 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0002" +"0x11a191f081843b8c2ca40bbf2e6160d9c546a628d9dc009aecec04196efdce38","3631537","1493634084","5/1/2017 10:21:24 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0002" +"0x84bd95e3576f5f1d74b11af374f16fc598bdbd56f12c13f74c81c51b6a6a81fa","3632940","1493656384","5/1/2017 4:33:04 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0004" +"0x8785bbe05960e7a94eb1c85c09e3e0e2fc17f2e1067d27b467fb9df94780c100","3633317","1493661901","5/1/2017 6:05:01 PM","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0x6d1c53d16b7f9779483bfc7441ac5dd8777b5106","10" +"0x75b1ba0f512eda1f088265b324bcd22bf672f1848b11b2c69b0b16299930f9ac","3634119","1493673958","5/1/2017 9:25:58 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","2" +"0x331434c9fe4486fed551649df99c58b68c852cfdda6635ca030112ad32c53133","3634130","1493674077","5/1/2017 9:27:57 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","14" +"0xcc71e840946c137b6c074a094003d8c18866e618f36c386f548736e651101c17","3634381","1493678055","5/1/2017 10:34:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xff723447d3a4da1bc4bfd6ee7ee112dc6bf1dd08","150" +"0x49aff33a1abdc8404309eacc7285361ea5ab4c83a3f94eefb9c423a8721be227","3634550","1493680487","5/1/2017 11:14:47 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","20" +"0xa2b55dbcaabfd0409b886c16f4aadbb74314b8895f152ce2d04957da08762a87","3634581","1493681037","5/1/2017 11:23:57 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","20" +"0xd7c048eb57df37d9913b76cbd5b2c7dccc2663693f424e95ffadb10903317610","3635311","1493692358","5/2/2017 2:32:38 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.001666666" +"0x1511c3f1228229c35d97b36c1c82f5169935c1b57ddb94a2c3bbad08b5330ca4","3635517","1493695621","5/2/2017 3:27:01 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1080.733" +"0xaaef2e4d7b4bc2fd001580d58de802c5fdfa264e2f8ad14f3abf99df33cc0b6c","3635649","1493697676","5/2/2017 4:01:16 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","2" +"0xb089448014fdc5864b2c68ccd1b57f43e8b9365181a2628535e2861f77c38677","3635666","1493697891","5/2/2017 4:04:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2138d3ba18e35a6565ab2818dba4ef4f32942b84","1" +"0xb012121af4a15ea802b996f219cb81ded1a8abe2af2fe3c0b90624fee70d3acb","3635673","1493697986","5/2/2017 4:06:26 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","1.202404809" +"0x906da0d88ff913991c7e62265508109906be9a06f46c3fe7e79fe8048a3dc309","3635681","1493698148","5/2/2017 4:09:08 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.015384615" +"0xe4e0b152b17eeb09adce5429ec6d331005ab3c3d427377b06e652675f37d3e04","3635694","1493698304","5/2/2017 4:11:44 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.013" +"0xaa6cb6063f46d2b8ec67bf8ea7a562af25bd8c0cd73a40c158ca66251c4b5757","3635704","1493698512","5/2/2017 4:15:12 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0068" +"0x24044c69fb3c219dca4d1ca1805bcc182f5201bef0b7f2f1cfb571ca73b8f6d1","3639739","1493760315","5/2/2017 9:25:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x15872104f2578d4c0a3414178e474531861fd7dc","29000" +"0xd20d62721ce417a13d33bc939b9e16b79823716ff680b55cb3dce18d1a51d840","3639765","1493760729","5/2/2017 9:32:09 PM","0x15872104f2578d4c0a3414178e474531861fd7dc","0xd663be6b87a992c5245f054d32c7f5e99f5acc47","29000" +"0x655f49766abb14d16727a04e5ecdc318a35690ca70a42ad548220eedea541912","3639812","1493761511","5/2/2017 9:45:11 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0024" +"0x2e970d745b6b73ad03f5f9382873f66bf3c160ef2a9ee239c1c7f0fced194ddf","3640260","1493768440","5/2/2017 11:40:40 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x719b8be8e2c3f07575d41a2580011db702029e5b","10" +"0x16370e47a368941f5da835eb95d21fc7b1c84c3e6dbe4dfd4e355b624245b177","3640427","1493771083","5/3/2017 12:24:43 AM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x83ce340889c15a3b4d38cfcd1fc93e5d8497691f","0.001" +"0xffe4542e7a6183e9738ce2e8577d8db9bbcf9432e01449273f09951e80faadd5","3640699","1493775128","5/3/2017 1:32:08 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0008" +"0xe3dd68ced0088b339582087eba4c3150998a109ac459e8f91e7a3e4ddf42f830","3641093","1493781174","5/3/2017 3:12:54 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0002" +"0x497c65790f8de4010bb91952d825d7eed39537e585ce72ce052db6c64db50624","3642256","1493798625","5/3/2017 8:03:45 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0xfc12dbfb3e85f1eb4102d752473b7354bba0f67977c30b282d25b15361adebb7","3642569","1493803416","5/3/2017 9:23:36 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","20" +"0x7106ca085a7e6fa8de0d98ce047213761196d5f789289dfbb3406436f7fc3589","3642575","1493803478","5/3/2017 9:24:38 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","80" +"0x1a4970590d68da0d9461333a2a817ff730f0ec5d3e84dd70ebe0da4702662fd9","3643165","1493812827","5/3/2017 12:00:27 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0x9e12c111936fa3c12ff6748779f1c6599018415c1a66afa026a3b5d8f4a299ae","3643901","1493823983","5/3/2017 3:06:23 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2138d3ba18e35a6565ab2818dba4ef4f32942b84","9" +"0x8b265101de592db0a5211ccef0701413e6ae65eba8f70ed564b7f1af6e9f6ab8","3645032","1493841926","5/3/2017 8:05:26 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0xb3e984d16f5756f8e195e1de9372f256c90504e17bb52e11e406660c25c2967f","3645524","1493849217","5/3/2017 10:06:57 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x538fbe972b7b39b55ff748440e70348d627adf085d99b71313abc71e12b93419","3645641","1493850715","5/3/2017 10:31:55 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x650cef4f0e8f8e0f2710e1dc77d17e1bf72c0bf3d9f3d580fc1bb7a59288ea75","3645663","1493851158","5/3/2017 10:39:18 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0e108bc6980f843f030153147dd75cc572289e83","66.460638686" +"0xf65a1ec15885cbec520619659d3ea57fc28c8bb08e89ef6f116d2889d33d0547","3646085","1493857512","5/4/2017 12:25:12 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x83c48c72a857d326a685c782ff81e48d5ccb6a69bf12cb3fcd4c3814c2cc3ac9","3646341","1493861522","5/4/2017 1:32:02 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0xf29aa1fa3c38b5185988b68f6b935006bbf91775b79cf1c78c9e7e56fa2cbc7c","3647592","1493881371","5/4/2017 7:02:51 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","1.9801E-05" +"0x3dacb6b5c9608080588abeaf0113ff28196f158c93cd72e23955db91cbc6f6a1","3647776","1493884247","5/4/2017 7:50:47 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","1.9801E-05" +"0x0563e3b9339b438f6d60d30002314ee4155c61d803d934a513b0751ce368ee7f","3647843","1493885199","5/4/2017 8:06:39 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0001" +"0x2c978cf0dd9fec58a5290ae0986f0911f08df7e7b4d8d0bc75d7f59e56aed20e","3648576","1493896033","5/4/2017 11:07:13 AM","0x2138d3ba18e35a6565ab2818dba4ef4f32942b84","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xe6d7b5afe1dd7db7d7e36745a9ad9b27dbd891319d44f7024d0ca68965bce80c","3649580","1493911448","5/4/2017 3:24:08 PM","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","0x49edf201c1e139282643d5e7c6fb0c7219ad1db7","1000" +"0xf8d50ef3bc3f11b07208f95d0f736347829fc06532a10fe6a1ab97321f26a63f","3650641","1493927592","5/4/2017 7:53:12 PM","0xba41fdfc2371719fcf781b81f0e5fb353afa131a","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","55465.498" +"0xc21553de7bca6f7f68c08bd81495196145b311472ef328fbf318211b4e2e0151","3651136","1493934846","5/4/2017 9:54:06 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xd7b48013ae46d4258b2c401bd15f930621454bc8850e950a1a095fc11d89fa11","3653201","1493965645","5/5/2017 6:27:25 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x0b9efb9ee20b7289199f51b4780ed28d7f69fb095a3b80d36b641cae759b7235","3653266","1493966555","5/5/2017 6:42:35 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xe93b891cda866f0ca235697770d2486a3a9289ab5eff97b54bfabaa9f41ffaa9","3656225","1494012135","5/5/2017 7:22:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x8a8f1266c8491bf85bea9fe329a6d75088aac9f696a4ef04858ae26e7ff21336","3656948","1494023401","5/5/2017 10:30:01 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x21bbaa2163edf25646f1f3f35836cc2cf9d1401e","2000" +"0x179f9d49fcf72678ea948c387523b842b2ca8a198f2a5d8a2dc8fd751730af64","3657032","1494024976","5/5/2017 10:56:16 PM","0x21bbaa2163edf25646f1f3f35836cc2cf9d1401e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0xaf2cb81d2b46c7ae1649e3e54a6da0c5ff04756852522328f0df574a737172de","3657687","1494034479","5/6/2017 1:34:39 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0048" +"0x1db2415dead5fa474e36cf52707fe875641a5ea8bb151849cf1f94f43e1d3c9a","3657698","1494034709","5/6/2017 1:38:29 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.008" +"0xe92199d3b42d042b75294e0405cd5bfdbe74816f92d6e0470c4b2cc3bafd3e50","3657713","1494034906","5/6/2017 1:41:46 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.021" +"0xfdd943191ab8346becfa3d2586318a609dd23f3a3dee1005f26a8425bcd50d44","3659560","1494063215","5/6/2017 9:33:35 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x2e9aefb2b491928c88b947e18e25d75bc2ccadbd99c27871f1bb6dc5f7ff70bf","3659814","1494067212","5/6/2017 10:40:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","5" +"0x3b3df1e540d6776656e04576f1f51964de288450f839adc9fd51e231e894dc14","3659824","1494067355","5/6/2017 10:42:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","5" +"0x0e9665d65362632861409036018870f6599110c518011194e96ad8c2e1ffb3c3","3666005","1494161405","5/7/2017 12:50:05 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0002" +"0x2fba4942d555ff5a87b8a60a2e866c556e9e1d00a3a10b40c30b88b990f451cf","3666109","1494162950","5/7/2017 1:15:50 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0x534f0fe4022ec3910a8731680fd77f406132008c935cb227459200f8d7964b25","3666230","1494164653","5/7/2017 1:44:13 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0x18aa108bc49a852f1a9740ff0bcc92701ce6de4749df11eb71646701cdd85554","3668187","1494194237","5/7/2017 9:57:17 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0x9eb2bf4f6697a20dfa7ea68b26edeab3331a4020a802a42b952776da86d194fd","3668984","1494206623","5/8/2017 1:23:43 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x45bddfd03c15d3a34d684e579435581eef00bd522ccd442e6c10c865465023db","3669403","1494213238","5/8/2017 3:13:58 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.011" +"0xf4d39931a06f0180c5b94f4bc727e487b0cab5aafc92dd7fad7428437d823a21","3669413","1494213365","5/8/2017 3:16:05 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.009" +"0xc10271918b6fa984fefd70cd3cebab0b2ad912bdfeb9e93906e35db0ed0bde09","3669840","1494219815","5/8/2017 5:03:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd9f7127353985633b3419835a9d5b73508006938","10000" +"0x674949d855fd541961a233ae7e035458ef0476fec8eac40023d4ddff8386a0e9","3670456","1494229266","5/8/2017 7:41:06 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x9efcc4b40c973915b51386aa17109737024970ca8cfd964249783ab01807317d","3670828","1494234981","5/8/2017 9:16:21 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x93a603c268b9d03d774e0039c8960f92097be7033821b377c54a199192cb554b","3671370","1494243949","5/8/2017 11:45:49 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x7fd02b5c21a4baa8ecbbbd1a7134510ff122d4ddf2e12505082dd283e819646a","3671433","1494244891","5/8/2017 12:01:31 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001666666" +"0x2ec3cc6ed172bd24cf021b8d2cf54c87fa96c19601235acff3c8719a07259282","3672047","1494253640","5/8/2017 2:27:20 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7b05871146457978cbf834586ed2e422ca2d5e31","9" +"0x50551f84b1d7bcc6ce97fe671280029a8fc1758fcb44397729734007542c46ba","3672052","1494253684","5/8/2017 2:28:04 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9" +"0xf9c8327551f6d5d14bb4381cd85d6b712b67b9a0849f0123d42b77b54a8b0b19","3673108","1494269706","5/8/2017 6:55:06 PM","0x49edf201c1e139282643d5e7c6fb0c7219ad1db7","0x00de5f818693eb9a0b38f78866c43d1ff67218a4","1000" +"0x8f097953e1c68874277e540f50a6acc28bd321f40aaadae7d50337ba33901e8a","3673122","1494269931","5/8/2017 6:58:51 PM","0x00de5f818693eb9a0b38f78866c43d1ff67218a4","0x5b878ba97bae92fc0aa6133edbf2f58d52350d65","1000" +"0xdb1f716f6cdf23889a4984d0c8c60a27959305fb8a5e77e971c749d09f839420","3674208","1494286368","5/8/2017 11:32:48 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.000833333" +"0x45e395df3f4778068eea8392fd7b8f8a795492680a70d8f22dc81e5773a12226","3676296","1494317842","5/9/2017 8:17:22 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0008" +"0x4a30c7ce7891f8184646d57e1a4769a1c53ff70948afbb1d890a0bc5d0f631fa","3678964","1494358675","5/9/2017 7:37:55 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7b05871146457978cbf834586ed2e422ca2d5e31","9" +"0x64605e9876c3eb5db20b02acb75694cb94a41fc06abb47bf2b0e2aaccd4354ca","3678967","1494358777","5/9/2017 7:39:37 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9" +"0x63b0d0f3c7927e428735c5a36b527d0ad39c6a9118babd0e0e1e1f2c425430ec","3679393","1494365141","5/9/2017 9:25:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7b05871146457978cbf834586ed2e422ca2d5e31","100" +"0xfc1fc2b757c25c1309c446ed349654f0fc682bcec409eba4e6f2e6480c8fcc65","3679412","1494365365","5/9/2017 9:29:25 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","50" +"0x9db39a47841839fa03257bb1376dd5ae4a5e5b7ee74b7590312864aa0a6eeacd","3679419","1494365476","5/9/2017 9:31:16 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x0099f456e88e0bf635f6b2733e4228a2b5749675","30" +"0xc09d395efcb4bfe01c26589cd4fd3eb98d06ab09241dc1177bb3ea32f704fa28","3679494","1494366544","5/9/2017 9:49:04 PM","0x0099f456e88e0bf635f6b2733e4228a2b5749675","0xfbc3e43f80d0696a69d9e02575819b325a509ac1","15" +"0x1c4830babbfad600c2da986572ed52bae0d1632cb20118a7a4223161750e905b","3680886","1494387323","5/10/2017 3:35:23 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x72e62b8c335c9726814667db00447163a3c801e2","3026.4" +"0x5bfc3a4a63d1c42c9c62fddb90077f9e51edfd4428a9fc70a8141775af6a7131","3680938","1494388298","5/10/2017 3:51:38 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x72e62b8c335c9726814667db00447163a3c801e2","2119.134" +"0x7d6c48a971ffa0b7e211578c6cd320f8b28843c09899e8efc1d3e75e666b46f7","3682226","1494408477","5/10/2017 9:27:57 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001666666" +"0x486870f44310728b530a39dc347aec5fd07602fbb823802fe874bcef698362dd","3682624","1494415108","5/10/2017 11:18:28 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0xcdd2e0ab15bfa0b6d29689adbf84184b35d0f12eb4ce763d95a7e3796f36165b","3685165","1494453340","5/10/2017 9:55:40 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0002" +"0x38139cc050082a7eb4660e5c06d015933b1a925b5713ba479f82ee8a06fd7853","3685194","1494453714","5/10/2017 10:01:54 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0001" +"0xc920344bef939c1c5a74cec22177e72feeeda110a37424674115eef570bde929","3688845","1494509481","5/11/2017 1:31:21 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0.01" +"0xcf92f0a9b14a24b1e5ff8a99c364ad0d250b293211c4b951bb06718b8f7958eb","3688858","1494509688","5/11/2017 1:34:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc5ade67e26741e927bada0d3201286054c0a3cd0","166" +"0xf2b17c356b369f0c3d71fab75bfffe79322c123ae9cde24f8279ddcbd55c7006","3688858","1494509688","5/11/2017 1:34:48 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x9f88f350595b621a849fdc06967627da734eb676","0.01" +"0x660809e5b244c9927a00c1fb0d6b9c0c59bc03f7d9976fb4b9b6fd8f331e91f9","3688867","1494509784","5/11/2017 1:36:24 PM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0xadba051efdef925024b03499e05b86109b4851d9","166" +"0xf52e08a5566ecbaf606f91af206ade1c5d2c8075c04a9148865ab9339415c250","3688875","1494509917","5/11/2017 1:38:37 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0.015" +"0xd2fff3846842ea1182b55d4ffbff78669ffe8d22b48e831c2f48453d2043cbd1","3688882","1494510051","5/11/2017 1:40:51 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x9f88f350595b621a849fdc06967627da734eb676","0.011" +"0x8179f756634441e16ccdbf0b7c7e55d435da71783fdbab68b2204d1b7904167a","3688882","1494510051","5/11/2017 1:40:51 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0.02" +"0xad34b1001c2acdd882222f9c9b0ab5e32937984d474fd9c334c36161a2c0e20d","3688887","1494510146","5/11/2017 1:42:26 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x9f88f350595b621a849fdc06967627da734eb676","0.024" +"0xf0acc97ccb762be9401fe052ecf69cfa334cb4ad95fa74c4fa88ee898991101f","3688908","1494510405","5/11/2017 1:46:45 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc5ade67e26741e927bada0d3201286054c0a3cd0","843.57" +"0xffc7999cd7e81406114315775082455a0a8efd6a0338b9d3a43b6bb0481d67a1","3688932","1494510745","5/11/2017 1:52:25 PM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","843.57" +"0xfaa904a74855dcb37dd98de7b763921fcc57ae32636ff7d2510177e385e31cb5","3689071","1494512694","5/11/2017 2:24:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0.05" +"0x10a3c80b5befcb001845e75dc70be19541f7a13626c220272f0342b5740a262e","3689430","1494517725","5/11/2017 3:48:45 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x736ee08f14a9bf767ac277786e98667e50c99421","80" +"0xeb179c011fc71f50b848a52ccb2b7a8db4297474034c9006d75f1517f00e2e0a","3689889","1494524534","5/11/2017 5:42:14 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0xe02119f0ac973ba94b8568ffbbc5628478c335f2df21192d0f99bfc62b2a3d02","3689915","1494525008","5/11/2017 5:50:08 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","1" +"0xc0c0ad35a1dd6e0637ec779a0fa4c3f20b8922b112ad04392c6930e3dd0370f3","3690097","1494527653","5/11/2017 6:34:13 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500000" +"0xb653c667be1152a4ae698e64c61fe623c6743fdc45f460d112b5f5fe25d10114","3690798","1494538636","5/11/2017 9:37:16 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xfb633022d1aa3053d2fa12e6a28d6b5a69ccbd570447dde21bde887396b3887d","3690894","1494540151","5/11/2017 10:02:31 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xa02c2985482e1e7fd098c08ad90eb528d7b964b709a7780dd1ebf7c3080d4d91","3690944","1494540984","5/11/2017 10:16:24 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","341.144" +"0xa31a74725fd0689edd7af88a7e1be255529e3463b056490aff6d275e7ba92ef3","3691388","1494547430","5/12/2017 12:03:50 AM","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","0xe26fd1375535967504475bd07df0293ee5d41695","0.0024" +"0xf54f77bf33e3c5b2d4ad75729cf804e54c8b5d4d6de2db27144015b3173c85f5","3691675","1494552091","5/12/2017 1:21:31 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xdbfb170952d95ebb2549869f95f49c5a61638b22074da343ea79d2f47c073021","3693404","1494577753","5/12/2017 8:29:13 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002" +"0xde4fd073db557b75996886b1866e804ef6d683701af5a8e2950614621f74a7f1","3694090","1494588403","5/12/2017 11:26:43 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x2082a839646d0c9aed4e12c09a104d38aaa552052db562538a391cec36adcbb3","3694477","1494594162","5/12/2017 1:02:42 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc5ade67e26741e927bada0d3201286054c0a3cd0","1" +"0xbf68c878fde3314538edaf08241a9e8853b8a963617e535e9172ed073d40a387","3694479","1494594201","5/12/2017 1:03:21 PM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0xadba051efdef925024b03499e05b86109b4851d9","1" +"0x24b0c3bd8df2c3f24a8c404a12465f48dcd172b0f3254c85a4f1ad93cd318063","3695262","1494606439","5/12/2017 4:27:19 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x2cd8cd59e504e2f4bfc4ff823a0b0119cd09886fa73e99fe2ed26a442884927c","3695267","1494606580","5/12/2017 4:29:40 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x06d64c725237a6d881fccc0fb1b10dfb59e5f6ca8cab3fe96736200bd0d60ada","3695287","1494606805","5/12/2017 4:33:25 PM","0x736ee08f14a9bf767ac277786e98667e50c99421","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","80" +"0x6592c84732523f9ad594180bc635983792311719407ffbb93d05e3361d2a0cc8","3695293","1494606897","5/12/2017 4:34:57 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xeb601f3a29bbd02aafb6e77ec0ed640d8c5fc78395c8ee78df80cc817ac1aefc","3695771","1494614497","5/12/2017 6:41:37 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","20000" +"0xa4f1dad84a4945133863991477a888d30f6e6ea01199fb32ed202ead68142569","3695813","1494615050","5/12/2017 6:50:50 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","18800" +"0xbb574b698416c8e398be30b3012dde622da57f067bc86f735276801cc03fbcc3","3696044","1494618602","5/12/2017 7:50:02 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","20" +"0xb9a44d97d43a92d45007f4718e81c459a019b81c7426cb87827ffdff82a09011","3696093","1494619302","5/12/2017 8:01:42 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x16eee98e0895ebc74416ca1c92547a1d5ee49250","0.05" +"0x8ef0c8dc493ea73648291f2a98e0262fbf1fee6f326adea99ca05cac2be30073","3696097","1494619372","5/12/2017 8:02:52 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1185.237681753" +"0xd0f3ce42138b46babbb2124c744bcc401725f43e92c4d8a589fccbcaa1773c43","3696115","1494619692","5/12/2017 8:08:12 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.015" +"0xa67b6b416b5dcc62f213f3d819d20172760f2227c5eeca285c14b39ae82e7be1","3696140","1494620049","5/12/2017 8:14:09 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x887e601f4b3f69c74eae584c34257711f3285ed8ddd988da885f006e55c8b0ce","3696143","1494620105","5/12/2017 8:15:05 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x07d01e9ef5b660e4bc0174df95705df667e00d1f1a7186dba96e551c0946b7ee","3696281","1494622405","5/12/2017 8:53:25 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0xd8907b07f4339e6af889ee993e662bb52ea8fa35110af3200d58b565ee99ee8e","3696402","1494624177","5/12/2017 9:22:57 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x83e3e07516d848f0ed6342987c5e0ccd0e77d36b07559923f303fc63cbc73a2a","3696430","1494624579","5/12/2017 9:29:39 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x23d333a2f543f36d54b4c9caef8764c93861a133","1" +"0x543a9dab69a05ebfe02061628639d93c28d1030508df844de898e3cb14601337","3696490","1494625367","5/12/2017 9:42:47 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0001" +"0x49c74f06ee90a2d6a5a3dc48eafc75891df05143eb14dcc8b57d313abbaf4771","3696564","1494626457","5/12/2017 10:00:57 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x719b8be8e2c3f07575d41a2580011db702029e5b","9.9E-06" +"0xb293772106099288403c2b3a4aec8f778ce5d40789bc2d9cf3e1230e30ce4edd","3696614","1494627463","5/12/2017 10:17:43 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","0.0001" +"0xe231c8515f404d8a61e573acb484eeb6642267bc723fe89fbd3bfab458ea70dc","3697554","1494641828","5/13/2017 2:17:08 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7b05871146457978cbf834586ed2e422ca2d5e31","300" +"0x432b57250dc161efbf8261ab766e156a6aecfeecb3ee418022ae8a5f604ebbb9","3697567","1494642048","5/13/2017 2:20:48 AM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0xd038f9f7cbeebe755443052907e26eb13798734a","100" +"0x1af0720bd0fc2b860b2b67f9362f42c9fe4356eed46e21d5ddfe583984b4a42f","3697598","1494642442","5/13/2017 2:27:22 AM","0xd038f9f7cbeebe755443052907e26eb13798734a","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","100" +"0x3723c639847e38bb9aa7f7c71a2e365579013d20dcbcc076b333b806dc3107bd","3697707","1494644321","5/13/2017 2:58:41 AM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0xd038f9f7cbeebe755443052907e26eb13798734a","50" +"0x6bc62e0521587fcd2c5a6d2b4c02c1be06400048c4deb748c79a7bb1bbef2dc1","3697727","1494644641","5/13/2017 3:04:01 AM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","50" +"0x8a5d3aec699a43d44a88739096d95f2acfbbd9b09a3fd7fb8c9c36a8b5888d5a","3697753","1494644984","5/13/2017 3:09:44 AM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","20" +"0x5360ed05eaa5bde06bb2e7512c7766bc367fbd3c1419b6eec8fecccc9f123349","3699179","1494667019","5/13/2017 9:16:59 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xc6333a28cf6b963f98d25b765a156b6b41b19d7b640ba1e785bb709d2e05a922","3699916","1494678392","5/13/2017 12:26:32 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9e6200b1273174fd2856781aa7da85fe4b3c3bee","100" +"0x496486ca3dfdba257a4c7e16d8291e95f75b41d0568737d757baf0e3fb2e242d","3700079","1494680789","5/13/2017 1:06:29 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xa06d88f08b4994aca146a7ddb719f2771dca887f9fc5e5d98894ebee6587a954","3702168","1494712674","5/13/2017 9:57:54 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x644f44a7926efa3d86a7b1ca2381684b34bbcb12d9e8ec0a924e2ecbf453f78c","3705970","1494773418","5/14/2017 2:50:18 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0xc72bd32375f1840b14bb5c7ecad43b5fed9cd397ae26fa934162c06da7bd791f","3707016","1494789461","5/14/2017 7:17:41 PM","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","0x7b05871146457978cbf834586ed2e422ca2d5e31","239.99" +"0xd211b24f44fdd6a73804751d3fdd1281b524b66550de9f87f69054197a108e33","3707553","1494797887","5/14/2017 9:38:07 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","10" +"0xca9b4bb72af648803a6b11ef61dd4d7012876a5c1ee9b4d83887a4595e21ddbd","3707668","1494799885","5/14/2017 10:11:25 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0xa2e683f3d0943f69c6bac73f9eea6abe4768aa22360108b648049e55624e3285","3707706","1494800465","5/14/2017 10:21:05 PM","0xd038f9f7cbeebe755443052907e26eb13798734a","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","50" +"0xea0797cec788b67d3cd20ef21a24c2dd0b9cc83cbec190827368335c6dd42129","3710030","1494837822","5/15/2017 8:43:42 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","55.555555555" +"0xd15ac197ccde5a2bce80c79d2a76e43a0990a70e24dd506b0d5ca1b3b345ff96","3710034","1494837870","5/15/2017 8:44:30 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x67996da550f5e09144787487e90acb8a6a42af9344ccaa821aa7d9eb3edc9154","3711363","1494859282","5/15/2017 2:41:22 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","185.988151263" +"0xde192e9a63205fc63ad8845749713769009165968d3d8744b1c3cde5a1b6d901","3711376","1494859469","5/15/2017 2:44:29 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","185.988" +"0x41078c3faa7f28fe5fcac1072a8c70bffee4701a2ed00b2f4c6367057f4bcb88","3712937","1494884700","5/15/2017 9:45:00 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0xc8a898e42eabab669e2783e1b2acf7c3c47a330dbbe75789220b1a9754fc30ec","3713010","1494885797","5/15/2017 10:03:17 PM","0x7b05871146457978cbf834586ed2e422ca2d5e31","0x6d7d51e9e0d2ea30093e6fd1603d970696a263d5","10" +"0xcf44cb28970a909e50b2de380af6374d0d7a3a5af1e3c2d4a1669d44b47c007d","3714862","1494914938","5/16/2017 6:08:58 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0008" +"0x35a3e2f8abade05b06922625bb3cbf71476d50e195bcafe087b12da385421fa2","3715528","1494925716","5/16/2017 9:08:36 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.015" +"0x30c572d3a1e2608f61695486bdfa3e72c42fd3af0687bc9bf17e656ceab460a9","3716795","1494946627","5/16/2017 2:57:07 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7b05871146457978cbf834586ed2e422ca2d5e31","1582" +"0xa692a973bff13442bb6de3691bb7a4659be0f4a9cd2969c7b8ca0a781cc6b764","3717557","1494958008","5/16/2017 6:06:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","1" +"0x6d5d3791fa247e36146e72a9347f84cf42886babdbcbaee0c47ff56323d52da1","3718155","1494967593","5/16/2017 8:46:33 PM","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","141.142" +"0xf985c1b9a7e2d9b33826669f79cee465ef6c421ef99d0a981844e5084f0a23e1","3718155","1494967593","5/16/2017 8:46:33 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","500" +"0x20a3b9b68e3b87d206cd8de4415f24b270777af854650446f579f86f8c11847a","3720426","1495004778","5/17/2017 7:06:18 AM","0xd9f7127353985633b3419835a9d5b73508006938","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0x93786ce05d6e5caf8c0fec87bbaa70a06e9544b020f145f473d3f37524ef4360","3725796","1495090392","5/18/2017 6:53:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd9f7127353985633b3419835a9d5b73508006938","13000" +"0xfca153431a44a7f502f065cec2a772f4a10c98273873c4a9a560e440c441298e","3726921","1495108185","5/18/2017 11:49:45 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0004" +"0x3730de31988d9b58461fecaba41387ce76146580b71ce7c3343145a7c26d2651","3740311","1495320017","5/20/2017 10:40:17 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xda4adc0d4d59d5ba1957cde02daaf7186a8d2df4b2fba649b4f3cd84a2896b8b","3742899","1495361031","5/21/2017 10:03:51 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001666666" +"0x8a28c4a1bb46416619fc93bfed9af7b33a30dde29ded06ab1427740ffe145d26","3746505","1495418170","5/22/2017 1:56:10 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.004" +"0xf55e4c8e78d2564c7eb5f7548c7e685147d4d2fbb8a75109e6bdede66ca4d081","3749830","1495470596","5/22/2017 4:29:56 PM","0xd9f7127353985633b3419835a9d5b73508006938","0x186b7506c3399e42c9e8c434582f7b4a1212de47","13000" +"0xdd20897d1e4f9ded64a15827bccc1e89314627c841cdce4ae486d5629b46090d","3757820","1495598107","5/24/2017 3:55:07 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","10" +"0x15d12b0946d759cd654c71eba1878e64aee756b8d71d80dfcdc02328f27bdfd6","3761370","1495654631","5/24/2017 7:37:11 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0008" +"0x47cda5787e30c2fb43bc66992e66c1cb754a66035e1dc7a4917881c2b87435d6","3762696","1495676053","5/25/2017 1:34:13 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.003" +"0x0143c8e01e1640f2baa314dff51ab0883f4ab8a4360aec1e7bec58a831180479","3764191","1495699348","5/25/2017 8:02:28 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x47a7cc8d820690fc6ca262a154037db6909938ff57b2b3060127ff34511481fd","3777016","1495902087","5/27/2017 4:21:27 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.003" +"0x002e77765d41ca73880925cd337250dfed0d5d7f869c22929fb6e2b00c177365","3777086","1495903148","5/27/2017 4:39:08 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.010769231" +"0xc6aa3b7093289ce224f88280d9926a10a66aea444b4d3b410a3edd475ca1cb93","3797034","1496215129","5/31/2017 7:18:49 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0x2c792c67580f691ee06ac385687a8d4983ddb6f4764b6de877b60ceb2d5f1b80","3802627","1496305518","6/1/2017 8:25:18 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x78234117fb6688be10c1bd6d5c82a2f42a80ca3439ba21f4d3126d5150d19cfb","3828414","1496734739","6/6/2017 7:38:59 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x3c209f5b6dc5defa39b3c6333e092501298492725ff739fb2863d000f61af3f2","3850251","1497096043","6/10/2017 12:00:43 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xd5e758f57683d3cfe3e40205d3fb15761eb1358fe6ab053f8b4fdb1112b11a35","3850808","1497104904","6/10/2017 2:28:24 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x8cf9d2ed1d1c6cc94006fc17438d3a97acd39603f7706653e9f1dcc1539215ea","3851026","1497108595","6/10/2017 3:29:55 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.002" +"0xf37bbf53c7128e206a95b406d5277534788778f9dc4a48af08dfb749c7e23832","3851175","1497111022","6/10/2017 4:10:22 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x8c435583ef8c911eb1f2652c9398c9d062b8506e2b9d852d89c28ba429602732","3853787","1497153536","6/11/2017 3:58:56 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x986ad36ddf704c3350e6354327b0cbf140e332576fcc0414d95cb5396b0b5d44","3855300","1497178425","6/11/2017 10:53:45 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x63f12fc9d6d03739e326741eeb11fb8b911ca7c816e5d380240fe0ab5142d963","3856974","1497205378","6/11/2017 6:22:58 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x901cbb263df152f6f3f0f2684ba6fb1e0e280058fe3c5c384797849978cc3827","3859716","1497250917","6/12/2017 7:01:57 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x56df6a64f2387166418de4d3b7e52c87df6e13420ebab473f3279b00335ae52c","3863314","1497310168","6/12/2017 11:29:28 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0xe11eca3d2213660998c1c765f0d5fc9ccdc2f4fba851b3c98ebc9996c3871fd9","3863604","1497314213","6/13/2017 12:36:53 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0012" +"0x187ff7cf43c703999c17345b48365aa7cb09bc313d22b4c6fe918d6df58f2575","3865748","1497350005","6/13/2017 10:33:25 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x51c8242e314a66ea7168d7ddf7167a49047ac8a47fe8c97253228b0bf18d1221","3872749","1497464459","6/14/2017 6:20:59 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xd2d4b96e9bc18d5155132e942333d14be5560a5afd3e8410a721f0f2e1aae265","3875462","1497508694","6/15/2017 6:38:14 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x567221f768451625a3fef8bf03ba03be52269f82","1" +"0x2a2728b244ae6c3ebef16df28f0b45bb32f8911dc6bd142fb47bd913517c8b75","3875490","1497509137","6/15/2017 6:45:37 AM","0x567221f768451625a3fef8bf03ba03be52269f82","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x0317c2a3ef26f99cd2350846f5578cb5fe329b698f5e369016773b1a48fb3ec4","3875520","1497509769","6/15/2017 6:56:09 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x567221f768451625a3fef8bf03ba03be52269f82","1" +"0x98747b98ec70adb6ed43618c017acb3ae31501efed5750bba610930a52c09768","3875593","1497510809","6/15/2017 7:13:29 AM","0x567221f768451625a3fef8bf03ba03be52269f82","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","1" +"0xc010de01575f5f7a48bba3b9972e9758e195be6a02bdb732846930f8ea17dd21","3875636","1497511461","6/15/2017 7:24:21 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x567221f768451625a3fef8bf03ba03be52269f82","5" +"0xa0f567a44edbb1554e8aab58d36c2b99be029e5a86256cb33c300549e09f206e","3875651","1497511601","6/15/2017 7:26:41 AM","0x567221f768451625a3fef8bf03ba03be52269f82","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0x1a0d19028a6b212a279678f7d80368a95fea33c6e6faa8dc5b74e7be30a0ffb5","3878840","1497563483","6/15/2017 9:51:23 PM","0x0f7ce02f8af040579eb7a93549bdcc965fa8eb7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","699.999755555" +"0xdc1c6a6fb9be62874640f14d6706685c037b917ecbed591d6edf413f401acbe0","3881193","1497602198","6/16/2017 8:36:38 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x206f724b11bbbdfd7c4373a55ba84fee3a1fadb705d5ee4a24807ed2e38bacd3","3888169","1497714942","6/17/2017 3:55:42 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x2314df6953cd0c11dd06091fefe5e134500282a9de2cba370c23b45176fb49f2","3891926","1497775682","6/18/2017 8:48:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","104.6875" +"0x5c26df89c44e7f13ab82f6dcc2d6f3589ca849eeee8c8aa9151ab7e20af90d28","3892890","1497791074","6/18/2017 1:04:34 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xd0d20cda01cb1eb2092cd1859eaf21a31b400a79","0.0002" +"0xf5cf4a555a4630d5efde7d07407dc247e72fc8e6ef85e43241e8660c16f102c9","3893348","1497798135","6/18/2017 3:02:15 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xe0fdcbff6abcdea741449c7bce045975a143aa85e2fbf4af9098760d9c16c45c","3893515","1497800804","6/18/2017 3:46:44 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xe7949c98ac3a304dc4bbb1ebfe6729ed4e3259d999a4d825c7c2546255b74df1","3894992","1497825570","6/18/2017 10:39:30 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0xe05ea7024a1ed3ffa1ea6eb4ca1fff7bc2ce69801f09c49767f717e42822ba43","3897691","1497868812","6/19/2017 10:40:12 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xb10cc363465d1f191b490ab25f3042f6667ef9ed99048acb0f1659b855d9371b","3900041","1497906755","6/19/2017 9:12:35 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x8a1bbf1ab0b36f472413eda09acb5968dbfb0517db4e7226efc53ca2fd4676c0","3900086","1497907614","6/19/2017 9:26:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","1500" +"0x92afdc66e96220b96c261a680f86c800653a0dce0ef1361d3888a23051efa641","3900122","1497908069","6/19/2017 9:34:29 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xbb7f12851855498dda5c85c2b3fd1ffcc5110fa4cd9681e71705b53c4afd1a98","3902130","1497942971","6/20/2017 7:16:11 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc5ade67e26741e927bada0d3201286054c0a3cd0","5641.803970706" +"0xa5d233209be5268eb0d8ea95f8e6b0757cbb61ddf617946641b4b1f2d31ba428","3902149","1497943293","6/20/2017 7:21:33 AM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000" +"0xf0ebf32161b11f0091295fc6061e52453519a4c99f712259e6abf5532a83c805","3902161","1497943418","6/20/2017 7:23:38 AM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","641.803970706" +"0xd2605159733b5b2ebdd5a04754e24084429c7b1b6feb5a6fffa02b9e94d94803","3902767","1497954297","6/20/2017 10:24:57 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x40edd44a2531d0ea4f275bf1eb24b20755515ac012843750434b3c4092f3b1a6","3907706","1498040332","6/21/2017 10:18:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","6900" +"0x9109c980ef198534bdfec8880b44f240380d1b898c2bd39ff2eabd82c0dd1135","3908759","1498059009","6/21/2017 3:30:09 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","36.081" +"0x507bf7f3fd5a522db876b3a9a415eefa9e36606094689484a6366d693beca506","3908848","1498060449","6/21/2017 3:54:09 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x57b00c981363c67b11e07eaa71364bf20e8025fe","5930.072" +"0xf3775ded1c50de3755048f6086bf6e7b3233ce9f08fd5efa1f146eb810a4fc99","3909064","1498064350","6/21/2017 4:59:10 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x191ff26b5a2d1ee54dd0620c146b25f7d465badeb86f7c8a0b269208d13b8c8e","3909068","1498064363","6/21/2017 4:59:23 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xaabad0cfa8d1005ce3191cc700c9182ed59db57eb3b3e67466a09701d526752f","3909159","1498066118","6/21/2017 5:28:38 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3d48587aa16d91a2e37198b5b428674bdaddf038","24611.766589074" +"0xd36ff056485f423da935537f468db0982430d7e262c4647d3513003047541ee8","3911297","1498104143","6/22/2017 4:02:23 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0056" +"0x5ef44b3d085ffc6c61dc757e7bbd34a5d135e0685d0656b306c7e8d7ba8c7284","3911928","1498114772","6/22/2017 6:59:32 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x596cba3a699aebd2d49e62412b050822b14334408199870f3247e95b565358d4","3912887","1498131802","6/22/2017 11:43:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","1000" +"0x0e33a9aacf3e00e7b1f84dbbfd351c08e515b95b0ea27cc34183a85346fa0bfe","3913326","1498139613","6/22/2017 1:53:33 PM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x5d0d3850d0bbe10782e1a98d89d041e1a96717367f750109bd37a1f7de06310f","3915868","1498184338","6/23/2017 2:18:58 AM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10.688" +"0x85ccd6c65a74bc86ac1fb29d7d5dbe3f6ab3f1d3e9c236ee5e5b7de0b890fcb3","3916974","1498204157","6/23/2017 7:49:17 AM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xb9488533a22bb33dba746bd50f6b287d8a5519514858c74cff729c31ff574801","3916984","1498204315","6/23/2017 7:51:55 AM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","300" +"0x01772869651835f7a333f2b5d7a40a218f0ecc1be98e3bcb7c6ce8368387becf","3917243","1498208964","6/23/2017 9:09:24 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xb609faa956ca684554bdf180024802709760b11616f5ec7df31feffc7f228f47","3919274","1498244107","6/23/2017 6:55:07 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6e159c04db022e3630726c80bf8704b9a67a8900","70" +"0xe18f1b3b427a192c8c46a6e8907175f13341fa5b2d682d451d78a3082f945c1c","3919321","1498244951","6/23/2017 7:09:11 PM","0x6e159c04db022e3630726c80bf8704b9a67a8900","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x80f91138f3966e0008755e156d39a74eab14468c89153a3f95441c2ed22da392","3919325","1498244997","6/23/2017 7:09:57 PM","0x6e159c04db022e3630726c80bf8704b9a67a8900","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x5822fedf85baf4b320118803fb5a5f826c3a998b540f29eb6b207c7d08edcc43","3919530","1498248705","6/23/2017 8:11:45 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6e159c04db022e3630726c80bf8704b9a67a8900","2" +"0xdb7b61f8c4bbc0daac259429a9389cb64eda1c0c98541952c7a575f84ed9fd84","3923985","1498327314","6/24/2017 6:01:54 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd43d09ec1bc5e57c8f3d0c64020d403b04c7f783","20" +"0x428e49cd819c89eea60e2cc46100caf77fc22cd2214f108a387fed4b4cfee6c9","3924025","1498327932","6/24/2017 6:12:12 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xda844f3d4f90ff20f699ea25d3a426d4c117cc90c66ec7cd722805de1d7f1f7d","3927853","1498394409","6/25/2017 12:40:09 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5fa9282465258544428689f0ae62310764f5acfd","5000" +"0xe33d7ed0376175bd0bccf0c382108d123d50b2d16a7ac81a1002a4da6cf97df6","3927860","1498394526","6/25/2017 12:42:06 PM","0x5fa9282465258544428689f0ae62310764f5acfd","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5000" +"0x08e5c5ff1b0698ff6ad600d29b83aae36a7abbb001c94e8dc2227702560d99f5","3927900","1498395279","6/25/2017 12:54:39 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500000" +"0xff8326eb04bad355b25c25642f820c67d6d91bba39ed0d5a4cf7c25a01de0af6","3929194","1498418066","6/25/2017 7:14:26 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","10000" +"0xa88fea2e7a4e36bda6d37d41939eaaa2743920dfdf135ab09157a0fb29be5e14","3929217","1498418557","6/25/2017 7:22:37 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0x2bc446f3f231154e24d669d2ec8a705150cb48e1270b975d165bf5f11f26eaed","3929271","1498419480","6/25/2017 7:38:00 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x1a2c3c8a40494f61b757dc72d4433b5250c75a36745f5563d7583028fbc6f8df","3932082","1498468088","6/26/2017 9:08:08 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","100" +"0x3f59a4ee49bcd3e1606c056bf200a74768d2c05ae8cb7c14fa5e67c29e0b1942","3935039","1498519853","6/26/2017 11:30:53 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0xe68a5196db3c42dccbb156c2b90dd2a613fbb749afc1036ca0b6d0ce500a29ec","3937344","1498559768","6/27/2017 10:36:08 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0006" +"0x275e3de2af5448bc1e0630bc6e01041274636f2e5a03fd45beac9071426c088d","3937344","1498559768","6/27/2017 10:36:08 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0xd7d0827ccb266dad4dec0b09441f34482dd583e1d0b7c9a6819473b691830f06","3941263","1498626806","6/28/2017 5:13:26 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0052" +"0x9850f371a9146943d1222e59703367e6b22b8b54dd08a875515fb6b221e9265e","3941618","1498633234","6/28/2017 7:00:34 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xc22cf42a3f854d6a3917a05df15c8e3a2bbea0ef54a2e80d4b601d0d530342e1","3941668","1498634238","6/28/2017 7:17:18 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x8ee0ac80f18823c1753aebcdd1bfe5a849e744c8b50648aaa545b0dcd7ce1f15","3941936","1498639133","6/28/2017 8:38:53 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","7000" +"0x0ea317e4a3c0078b02ca2321e4d05045622f03c152df83223e0f964842b6d098","3941943","1498639231","6/28/2017 8:40:31 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000" +"0x6ce234a51c6a0a7c55ff5da9649f15c1fcd5007434b408df172f1269eb53e42f","3943178","1498661079","6/28/2017 2:44:39 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x71c450d0b981992ee94be49f1399e13644a4de1ac6ec54177ff53eb4a5d3e09d","3947181","1498730402","6/29/2017 10:00:02 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xfed95d103160bd1cffe8a957dbe5b630c81d7a472e02c4ae5681594fff4cde8c","3947581","1498737130","6/29/2017 11:52:10 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","300" +"0x967e51b3edb648a21941c490e179a71f36be2ac286c993f620b9c1a320040c75","3947618","1498737729","6/29/2017 12:02:09 PM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","300" +"0x134915038ab4694f26829a68434fae9b87189408d79d30ce96f83e8ec964d04c","3949594","1498771680","6/29/2017 9:28:00 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0xf2126c6613f691fbe74419194813094578d130ab2df1c63b42eb8043884d84c6","3949969","1498778426","6/29/2017 11:20:26 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","60000" +"0xbc079ae2bebe65a44afedab16cc22ca150b7f51348c5073a647a54d9c52e87ce","3953074","1498831836","6/30/2017 2:10:36 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200000" +"0x6f8d9d35ef15bcfdaf084c949520d6e12d595580ce4b5185e86f695e0593d590","3953314","1498835865","6/30/2017 3:17:45 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x7ae80fe68d0e69a57d3439da5f1b3bc389ab4906","26800" +"0x72c6bae54433e5d5e8c7ef7a8107b953384a18da997fd072ac8d4b030bde8f15","3953345","1498836470","6/30/2017 3:27:50 PM","0x7ae80fe68d0e69a57d3439da5f1b3bc389ab4906","0x5104efc872d45dba3a97bf02aebe240dfc283321","26800" +"0x52f4a7d2e2c82d0a03bc929a327c9884cfcacdc0b94b3138de7c4833f2b961ae","3953703","1498842844","6/30/2017 5:14:04 PM","0x5104efc872d45dba3a97bf02aebe240dfc283321","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0xe385dbf2934616e7033940b5ba111b7f59ee819413315678b6076bf6224f71b4","3955170","1498867516","7/1/2017 12:05:16 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0004" +"0x0eafa8c2c86dd8ae3810fec76340d1cab2578333bd6db0a3645b31a6aa8312a2","3955736","1498877428","7/1/2017 2:50:28 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0x3ad73499b8e9e2a9d282fe3f99b6ddaa1afe957b7d0edcf66515bae8635049c4","3956654","1498893322","7/1/2017 7:15:22 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x19fff3b449a3a58a48c7f1d838761f5721401d26","111" +"0xbbb2876ee1c4e1521ff86d1949ac6b922d19982b2b78a9a9cd1ad1ae542efc99","3956678","1498893762","7/1/2017 7:22:42 AM","0x19fff3b449a3a58a48c7f1d838761f5721401d26","0xe26fd1375535967504475bd07df0293ee5d41695","0.0024" +"0x2a10ad475c7ca543524098c71d8ebedeef1d3268e1e734578f492e6c638d65e2","3956715","1498894431","7/1/2017 7:33:51 AM","0x19fff3b449a3a58a48c7f1d838761f5721401d26","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.013" +"0xc68f1428bfe0f972c1209724b637c353ac78e75027e35526963b01bfc5d46073","3957351","1498905332","7/1/2017 10:35:32 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001666666" +"0x6635be774d1a9e3fe16f8177a615991e03c48d8b9f8198b6ece01f89eca73c1d","3957351","1498905332","7/1/2017 10:35:32 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0008" +"0x1cbb044669396cc606f5ca22c310a0bd6a90d90074be929f3a2b48fc7d1b1c0e","3957372","1498905781","7/1/2017 10:43:01 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x0a72ebae0321b78bf42b5846c57f90d714a5cb31","298.182" +"0x95812fc557b443135b04f66f9e97500c48c7756dfb6c9b3afd4d2ac9740bed63","3957398","1498906170","7/1/2017 10:49:30 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x0a72ebae0321b78bf42b5846c57f90d714a5cb31","809.525037494" +"0x32e169141733c3c72d58747f661d874509d4a65cc88015cc9e3fa46a15ae817a","3958018","1498916802","7/1/2017 1:46:42 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x769a5c7ad39361a05d39bdc8fb36e28df34ae0381f141cb4886f3c73d4c0a54b","3958205","1498920061","7/1/2017 2:41:01 PM","0x0a72ebae0321b78bf42b5846c57f90d714a5cb31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0x359ef381e47ec7fb4e438cc1a0f936d3b8dd30204ec55980bd18554d24e14111","3958250","1498920880","7/1/2017 2:54:40 PM","0x0a72ebae0321b78bf42b5846c57f90d714a5cb31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","700" +"0xa0e7a2ad401b937f82a5ce115c5193cc3156a82ff2c3c2058a920ae25fba1ea8","3959710","1498945663","7/1/2017 9:47:43 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0002" +"0x09a4a2a47e7a2b96b2b851aaac9b93d538cdfa42ff5480216ccecbff6ebe3fcd","3960307","1498956311","7/2/2017 12:45:11 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x6173383c1f0c66305a2e2471937a89f2faa8ab6d4eb66727e21033beac8b0864","3964530","1499028288","7/2/2017 8:44:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78ee8cc1aa98c8ff4d79236d18a26c1681862164","1000" +"0x18b99a2a1f4e66a6adf8e3738ef0e92d149247d302e7555adba9941802d6f904","3964559","1499028767","7/2/2017 8:52:47 PM","0x78ee8cc1aa98c8ff4d79236d18a26c1681862164","0xd3e7d4ed7fab244385b497197f453196e5462ab5","1000" +"0x822e8f78d64b3c2e606edf99a2c957010ccb8663ab2cf5952f7864b955b88774","3964988","1499036454","7/2/2017 11:00:54 PM","0xd3e7d4ed7fab244385b497197f453196e5462ab5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x4d29eab8424e17394e464e7b781687073223758c62e7bfb1093bfbcd634f3600","3967420","1499077697","7/3/2017 10:28:17 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x15a982e9e82c6d71a20d873abbf397a08ecdea6848e864e10ba6ae0f825535a5","3969549","1499114407","7/3/2017 8:40:07 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.002" +"0xbed53fd9896dd91bddfc6f6422d91a8f6c51a22b2322969250a830bcbab6fb36","3969764","1499118184","7/3/2017 9:43:04 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xc1dd3ccf25b6ff2325f1074b4cecd5711ec1d0c940281f764219fe501555408a","3970087","1499123444","7/3/2017 11:10:44 PM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4" +"0x6a485b6d3c4485c031627189eeace39f469b0b022a2cc577a6736e56eb429dab","3970679","1499133434","7/4/2017 1:57:14 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78ee8cc1aa98c8ff4d79236d18a26c1681862164","111" +"0x09e7f13ce9b6e6ebbdc55456c70e86ccf5d50a7af808c341f7a1c59accaed9ec","3972569","1499165839","7/4/2017 10:57:19 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","480000" +"0x9f95f42dc4779860b1b1b1ecc9b7ef34efb3d2e02ea2e10a4fe9d5b8117136da","3974981","1499206481","7/4/2017 10:14:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","37429.45" +"0x5afafd8791adc664646d96660204623b14e4a14efd3772b134dea8e7253cc18f","3974991","1499206698","7/4/2017 10:18:18 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","4700000" +"0xdd0ab3d32e69655aa2c221d97e604f316075203087f7a68495239c9c6b3e76ac","3975041","1499207424","7/4/2017 10:30:24 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdcf7584f7da8879636651e23615e6b62e4a15071","1517867" +"0xe24094efdb23e8101a71face5b5e8d5585f44231b7972c2a154c63b8d28d5d50","3975047","1499207512","7/4/2017 10:31:52 PM","0xdcf7584f7da8879636651e23615e6b62e4a15071","0x43764357c8aeb633adc6433e85e331d0b913fe79","1517867" +"0xa668707e036b516887393e67a506c3e1cfbfad064d55dd74473456a7c5c44725","3975226","1499210815","7/4/2017 11:26:55 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xba0842a5b8e61705637cbf6bfa1ee4d8a49006c23f1b4507010c94e26cd64850","3975278","1499211866","7/4/2017 11:44:26 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x3f9e6bd508be938a2eee59f751e80596012eef6b0a09f42c78ddc1dd1350230b","3975430","1499214483","7/5/2017 12:28:03 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x5baeac0a0417a05733884852aa068b706967e790","755.555555555" +"0x56fe37d3f49906f23b0096d0845a332360d2b561a344df3a60705ab931640fe4","3978189","1499262618","7/5/2017 1:50:18 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xab622a073efcabadcfba3ec0b80fd1866c71f1a95e59260ddbefd87483aa1e1b","3979867","1499291063","7/5/2017 9:44:23 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0024" +"0xf1d4d31d1cde2823f8f92c8326e3f6b7a7825f6087af6097fd579d1ea6abd4b7","3979910","1499291704","7/5/2017 9:55:04 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.002" +"0x9f44071eabf6c2977a7e5ebaf2207693dd1ceac17f8ee4ae35dc663883f6b30e","3979950","1499292657","7/5/2017 10:10:57 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.002" +"0xe57e184a73eae0a3c06e71fc2060088803c5db6310324dc69099519bcce00b34","3979971","1499293019","7/5/2017 10:16:59 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x8a5576a3ed26cc547df84fb866e8bbde7cf46fa01211096e1999e19bad734927","3980157","1499296347","7/5/2017 11:12:27 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0xfe9026ebe07f4585a2ef7b66957e504fe4fd8a19f573d1a1b1e985798384edb1","3980160","1499296442","7/5/2017 11:14:02 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0xbd289722b6fefea7ed15c6abae932b9ccaa3fce0e6fa4950c1e7f1dbf2ba1abb","3980176","1499296668","7/5/2017 11:17:48 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0x83679548e56033df23a284c3d52d99e4ca570228","2" +"0xe11c345a175bee72fe04ee6b47c91ee85e4a11f42ad29fc184c2429c54cd134e","3981132","1499313016","7/6/2017 3:50:16 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","104" +"0xa0cb5640335370a72e00cbf4658ed6af843508d538a68bd834a9bfb33b000592","3983511","1499353028","7/6/2017 2:57:08 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x77a6e548e8b17d6f630b6ef76f848862099c81aa7f1030f2cc95a9d31aca4c97","3983535","1499353301","7/6/2017 3:01:41 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.0046" +"0xac11e6d2b2d845b083d2ada5085dc02f5ce4d2e9c55c442268a9299b8a5a2cab","3983584","1499353966","7/6/2017 3:12:46 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x5a66fc57f4be46cb5af131306b021c5c1a72de8fc06d6d8eadd47c9609597645","3983584","1499353966","7/6/2017 3:12:46 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.2" +"0x5fef6f6fde3b680a7a7bfcf0cd05b318ebee813fe0400a4ebf0f945274eb35d7","3983618","1499354588","7/6/2017 3:23:08 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x8c8bee91c21f1a73d6ad623052a56a116abcbf2cf82a071334240ea4fec5331a","3983618","1499354588","7/6/2017 3:23:08 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x29489cfeb8dc440cecb8b03100392ddc81cd4b69192c058fa37b7a2e558f4491","3984002","1499361315","7/6/2017 5:15:15 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xadedeb6f3703b59328a79833d3e1a486f5fcb5a4b918647671a01645a7a7183c","3984107","1499363185","7/6/2017 5:46:25 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","118.286" +"0x197d2f5259ac2e788b63a3e2c614ae8ef69a60dae1112b5a533c7e26a74315a0","3984380","1499367889","7/6/2017 7:04:49 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x2b0f434c0869fd7fa6a21ed7d9cbba81f134e384e135fadb590f41852b77bc44","3984500","1499370257","7/6/2017 7:44:17 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xc517ae1c22d91adb4dadd0b6e394e860276d4c66047de73f4cf38cf4288f38ad","3984563","1499371367","7/6/2017 8:02:47 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x4b2960f800167daa3ad88056d1cedbd3eb548c1f59ffa6b71f8fd463dbfefbd8","3984968","1499378678","7/6/2017 10:04:38 PM","0x937bde1c62a5209123cf98f8f7a35e3365f5127c","0x83679548e56033df23a284c3d52d99e4ca570228","160" +"0xe0ec2adebd266dc2318e61df3aa106978641432f236abd3a85a07c197406941f","3987068","1499415047","7/7/2017 8:10:47 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x097501c95264ad3204159efaefdc5820783dbeae","364.126570643" +"0x96ed8531bbc34b9edfb0658908b328ba771ac623fbb50ed6f2250650411daa5b","3987212","1499417675","7/7/2017 8:54:35 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x966c9d7929d8cf80e1f64d97b9839611c7275bc947db0d09a8372a220c8daeba","3987300","1499419123","7/7/2017 9:18:43 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9009E-05" +"0x3e0de1af18d45a3b96db17c72c35d001336367af40b95875d57007ce466607d2","3987418","1499421059","7/7/2017 9:50:59 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x8d6f0c50ea836678745f4c8072bfb9106bd8e6b3aa29ce1336e30de19245dd74","3987447","1499421532","7/7/2017 9:58:52 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x3ea0479b0b6ea284810c19b89c28c738e2aabe1c1211930a381cd644236c218d","3987481","1499422213","7/7/2017 10:10:13 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","300" +"0x4b5dede56796d622be4c2f615f162992aa96b7160a8b4790039334a48c9eb113","3987537","1499423245","7/7/2017 10:27:25 AM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0xbf29685856fae1e228878dfb35b280c0adcc3b05","300" +"0x44d96fd8eddf9a79058f62e134a3ea6c2394fae2bf462d08ea2e85664adc1454","3987643","1499424998","7/7/2017 10:56:38 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xf8abe71e619dfa72ac61cb5e2734b09ee943ed43fd726f3b2792bbfc8b800ef6","3987643","1499424998","7/7/2017 10:56:38 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","3.9603E-05" +"0x3f9cb839aceea09977ca4edd3815a1b427f8b59733f357fedd72ff817d5c6097","3987724","1499426324","7/7/2017 11:18:44 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x78c1a6eb2179d36a329c0aacbb33a6f34c5fe0751757c43eb0d8a45f56c0aee2","3987736","1499426570","7/7/2017 11:22:50 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x17f9e5465482980225074c392ec2e0f0d782cc22ff21fe80c80c4c0b70e3c2b9","3987746","1499426699","7/7/2017 11:24:59 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.9801E-05" +"0x2d05d51549327bedb0296ef2236e76e6569f31c6dacfcfa6f17fbaec9f3deb9a","3987777","1499427290","7/7/2017 11:34:50 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x336b2cec1c069d439c56fdd9459e62baa1fc34f1","1.99471607" +"0x32d2c53b5490b0d859be31fccdea2e75ba750a118ffa6800e32ec60161d374d7","3987832","1499428022","7/7/2017 11:47:02 AM","0x336b2cec1c069d439c56fdd9459e62baa1fc34f1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1.99471607" +"0xd20c9561dbc03947813866706576891b8c437f1af47b54044ba71dbc06c01176","3988137","1499433137","7/7/2017 1:12:17 PM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","600" +"0x9ec0f033e599ee829d017bfc4659edd8de594317477b88bf0a1f485d6b197586","3988158","1499433458","7/7/2017 1:17:38 PM","0x097501c95264ad3204159efaefdc5820783dbeae","0xbf29685856fae1e228878dfb35b280c0adcc3b05","364.126570643" +"0xb9c99d29bf647f1f9860cec6bbaa1139a8379037b4930749dd5a121040ee8b0b","3988493","1499439097","7/7/2017 2:51:37 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0028" +"0x4a96c699b3e8f6e5baea3355e076580f21985657b4148d8c90383e0c57380e80","3988525","1499439568","7/7/2017 2:59:28 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.008" +"0x6a339ce240dce0c21b04cec863743a24b3877243a6bc23d3faa75bfffe3e68f3","3988555","1499439958","7/7/2017 3:05:58 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x18fcd153299b06976198a6a47a378095b5648f8bdf8c60e5d6554ea131981b4d","3988837","1499444639","7/7/2017 4:23:59 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xa6d7e074d533208b654cad6bf17eed2c71eb70632b529045bbccafe1099a2881","3988939","1499446194","7/7/2017 4:49:54 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.9801E-05" +"0xab87e713ef7a1dd24f21595da6932cf28894c0fee8295053c6e4425b1acd5daa","3989219","1499450921","7/7/2017 6:08:41 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd80e3f469b1e19169bb770852ac81d26a85966c2","0.8" +"0xef6761a6fe5134006a22bc6bb6011129b9b14c3e386a1fe3af6f793c323d008b","3989230","1499451057","7/7/2017 6:10:57 PM","0xd80e3f469b1e19169bb770852ac81d26a85966c2","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.8" +"0xcd6522fbfd8952c83453b8be1192436acc67eaa20b46f19411c4dcdaa488135b","3990327","1499469821","7/7/2017 11:23:41 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd80e3f469b1e19169bb770852ac81d26a85966c2","1" +"0xecbc678c0bb1bf395a6b60696d262fbae8dadece12fddcdfd7c3fe68ef836af6","3991073","1499483444","7/8/2017 3:10:44 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x000fdaff133c90a99d3d7e66585df70d48197bd804eeb690703cd5b373d786ea","3991111","1499484213","7/8/2017 3:23:33 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0.1" +"0xb4f68afc92afba7f5cf24f54fc99d2a950e2b6b3d233d4c27620bb2793145401","3991174","1499485198","7/8/2017 3:39:58 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0.9" +"0xb46fb9021879ae8420b528849d0db86790d78229743e3f865fa25355c401a4f1","3991682","1499493398","7/8/2017 5:56:38 AM","0x79747a597d680478ef726f79aeb74fed6d999d27","0x8ea628b49cb853475c958af545ecee1d29598aa7","67.567567567" +"0x4ef38a2d3c25f75214d0e3c55ebf057713456512a70d58fb01c5d3cba5df9115","3991737","1499494267","7/8/2017 6:11:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","1333.392392" +"0x6b8953594ca995c6a85744fd785b2ade3c48587d0b87c8f7e04d240c89af38a8","3991757","1499494618","7/8/2017 6:16:58 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1333.392391973" +"0x6c1d99c9e404eb1fe60ead19f3febe726dcb54ac6f60d2d257165de9e1fbf65a","3991830","1499495708","7/8/2017 6:35:08 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xf999d813b88b1dfbe4266320268a217ff6eb3448","444.566666666" +"0xf8b7da11476c322daba2388ae95ad29a0f422938387e71f2685d46e43447b67d","3991866","1499496401","7/8/2017 6:46:41 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x6e24a060afe37dea9deade18b5b92748b570fa58","534.811111111" +"0x3ff698fbb1c06994916dbcef472e28e50e3c75c9db511da4e45bb09cc16a2155","3991877","1499496692","7/8/2017 6:51:32 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","354.014614196" +"0xca51e70d2bb07441d0e05436fd2796f76a377024b80453aad1e7386b3c598c2e","3991901","1499497073","7/8/2017 6:57:53 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","1500.066441" +"0xdce6c7bc46aa5a03c10a5f0b26c10680835d2f53edb640c38fc49f09a77337ed","3991916","1499497286","7/8/2017 7:01:26 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1500.066440971" +"0x63a5c1688f8e8f47054cb960a9e4f7741cf017c260af3eab77cb3eb4ad2d0af5","3991926","1499497497","7/8/2017 7:04:57 AM","0x79747a597d680478ef726f79aeb74fed6d999d27","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","10.644281984" +"0xa5e290be57ed5505fdf3724e32c423b48b339d95180219e30e965490e1ff4725","3991941","1499497822","7/8/2017 7:10:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","15846.283868016" +"0x129c11bc676ea09f073d572ac42f282a2cd713de341905f7391c7ecfeb2eccf7","3991948","1499497953","7/8/2017 7:12:33 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x79747a597d680478ef726f79aeb74fed6d999d27","4000" +"0xe6bc8965042a685326aabe9d29011845316ea6f584a89ffac99f12c6f3493ca1","3991948","1499497953","7/8/2017 7:12:33 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x097501c95264ad3204159efaefdc5820783dbeae","150" +"0x1e3e96468b2f2ab0b838be09160ea67aeccaf42917f0308a9122e73b36482ccf","3991967","1499498280","7/8/2017 7:18:00 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","11856.71" +"0xd6815db5a30732df7e71cc56343d17756edb15fa00f61c7386e49187ae84f05d","3991989","1499498608","7/8/2017 7:23:28 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","20" +"0xf1cc68339a5295b4673854baeb9fbbd54373de979895734e54670871788c0390","3992030","1499499148","7/8/2017 7:32:28 AM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","17.8571" +"0x4a1afa7cb3619b58f1282a42b489e00679b8e29dd26f39d9e1a24570e3e42d2c","3992122","1499500610","7/8/2017 7:56:50 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","72.222222222" +"0x2732c7c6ade08d7b48d8f40cdf0a23c2aa82ec32eea572fa10a83b748eb5d255","3992162","1499501395","7/8/2017 8:09:55 AM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","6.666666666" +"0x3dd5650dd819942a0fd46a69412fdfefc242519b62773d5657e723ba56b1d9c9","3992342","1499504192","7/8/2017 8:56:32 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xb4de163c6d95675568755f5490ef2c03ee3e52d6","222.222222222" +"0xca5e759a9a24bd16e4e18a760ca9229a57a79f9a318963e03ac3194d75deaf3d","3992488","1499506604","7/8/2017 9:36:44 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.003076923" +"0x0a8e10275eefe42e519d96584a02c1ee822d6d0e2e0b777626f4c4ebbe9d245e","3992505","1499506892","7/8/2017 9:41:32 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x5c0a5bdbf6667a5909b53606c79d705963f11a4ea347b4e67feef22a277d0ef6","3992509","1499506954","7/8/2017 9:42:34 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0xdbd1316024b5abca41178a4ee5d4dde6bca95ff0b9d9a9348e8150e680560821","3992518","1499507123","7/8/2017 9:45:23 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xdee9243e8b7c10f1f875b3bfecf5f37228c09fe10fcf4002295038d639a41ddc","3992567","1499508165","7/8/2017 10:02:45 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xc2a27d2729134af216d66326f98451933a2d0ef1d4c69223a99f4527719fd9c5","3992609","1499508949","7/8/2017 10:15:49 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xb4de163c6d95675568755f5490ef2c03ee3e52d6","1111.111111111" +"0x5bfeb5639db019f8e191dfacd20b5e5ab435ce8c342eded0c846e368b2a550a3","3992646","1499509629","7/8/2017 10:27:09 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0.1" +"0x3efacdbed3566a0f22abec8722bd62d070043de3792b1b3ff19589f603104eb0","3992646","1499509629","7/8/2017 10:27:09 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xdfe96aab887f12e65e554e0024156c818031dbff3783f9b40939301d76faa61e","3992846","1499512671","7/8/2017 11:17:51 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","1" +"0x53d5bc2f59b70ae28957c5a56e3ec177f424c2571c7152a1274a8f00a7c43d48","3992901","1499513499","7/8/2017 11:31:39 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","77.777777777" +"0xd774b286b319aefce633082ab0c0b6902305efa9f9dbc51e1f8ba846da6c540a","3992943","1499514072","7/8/2017 11:41:12 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xa9f2683aed0792e199a0bc98c3ff19f4bcaeb0a98d38bea3c0393a64e02a4196","3992951","1499514188","7/8/2017 11:43:08 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","16.733107639" +"0xa825cb345241e7437bd4e1e6756a50e82d04f09213c544bb594fb05ca3940b05","3992964","1499514414","7/8/2017 11:46:54 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","3.333333333" +"0xf64eead8e52dab4ed16d5f0627872637086667a5e85dca93aab497d03b525ce8","3992968","1499514463","7/8/2017 11:47:43 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x2ce31a2a6e95a3c67682a7977a3926e4357fcea0599f21c7c7fa3dfeae05bdcc","3992989","1499514776","7/8/2017 11:52:56 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x91e6ef63e988577c0a1161e712f73894774bbce7345cd58f7c938098bd433191","3992997","1499514959","7/8/2017 11:55:59 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0.133333333" +"0x4c3c7b577dd2a0b388c620da8c6a3a644b56251c8150e31d27155de9a7e49078","3993024","1499515421","7/8/2017 12:03:41 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xf3da45c8b0bc0dd64db5b1a1b05a948e852ea7d984d7183cf0de7ca31f32ac9d","3993029","1499515547","7/8/2017 12:05:47 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","3.333333333" +"0x5e16fbf0bff2a26932a9a865753d2616bb4eaa3486228a453192c0fd7e258d9d","3993069","1499516177","7/8/2017 12:16:17 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xf80540c200046e807542bdfb71ca36c9de736f7fe73ba562e4a308a7ac782c20","3993069","1499516177","7/8/2017 12:16:17 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x1a0a50c590df6a0af967a9f79d406f742edbfc02d50aa7f675b00c5e2c5a56a1","3993109","1499516828","7/8/2017 12:27:08 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.006666666" +"0x22dfa8a14973f5eee0de345e68f2616d528499262c4540828ded6d3f0f828e27","3993109","1499516828","7/8/2017 12:27:08 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000117647" +"0x6a379b904ea9d006ae3826af0d12bd7d0de883fea828816198855aef3f9a228c","3993134","1499517229","7/8/2017 12:33:49 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x494a2c384a8b94dc4721694d3a060a2b5bdbea1e247c46f83a6210652b05eadb","3993168","1499517813","7/8/2017 12:43:33 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x41c16065d2e10cf8973b8e8111aa6ab0489841df52696007c72554114151cca4","3993339","1499520796","7/8/2017 1:33:16 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x4f56acb25fb2c89ad70a293096f1f4b59a653434884e87a4516b8044ba4b777e","3993439","1499522777","7/8/2017 2:06:17 PM","0xd80e3f469b1e19169bb770852ac81d26a85966c2","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x4be0c3664a2dfcb146357cf2f32e1a03a5e513a565e1effd8d96ee24d35fd9ad","3993584","1499525246","7/8/2017 2:47:26 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","5" +"0x042c6ba12637ad622dd83e1e582ea6cfd1c9da09a50853b2a15b1eadac00e3b1","3993589","1499525302","7/8/2017 2:48:22 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x65a288f7c1938db726b2df983cc4e800c97634d93ba62add66466c19c9886324","3993958","1499531638","7/8/2017 4:33:58 PM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x1ace00299561c582c1ace4cb4f91bf1ca3e4abeccd27c60885dfb3b23a2bd40d","3993980","1499531985","7/8/2017 4:39:45 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","20" +"0xac135f4fd82a9b3d22ec6336533e24cbfdd4549268c0907978c683922b4d06a7","3994007","1499532398","7/8/2017 4:46:38 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","12" +"0x9d892e9d16c5afb4ec9ed9fb0cae887b6f35b9abb789f0f51d881e0e28832371","3994141","1499534917","7/8/2017 5:28:37 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","1.666666666" +"0x0e0bdf0f2e3331d2c8330a914e2410f1da0690442c83c6629ca9db1c5092749e","3994153","1499535130","7/8/2017 5:32:10 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","1.7857" +"0x10b41e2116b64629bb1a9d72d885b9ef5cbe43ae4e9b12cfd496440cd1b89633","3994174","1499535372","7/8/2017 5:36:12 PM","0x79747a597d680478ef726f79aeb74fed6d999d27","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","2.972972972" +"0x56d45453deb4a6f850b03f5827406ccd353ae77d7e0e5f00a2a4c760d54da9c6","3994183","1499535480","7/8/2017 5:38:00 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","2.933333333" +"0xb0572bea9333e0e581e2e34236282891f144b0f3f647f817d3909ccf2adacf0b","3994187","1499535640","7/8/2017 5:40:40 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","3.066666666" +"0xb5f55892d8fd94d69521e4cb6ba5b4bbabe74219cd3b7d544db912c1f2e60213","3994187","1499535640","7/8/2017 5:40:40 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x14d0168a41df2d445c0f5d9f97725ec150a331bcc2bec31f75019dd3a078e6b3","3994197","1499535749","7/8/2017 5:42:29 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x7768e8a1144014c3b4b17e39825c347d0503fb3635170f8a3096a9372063abc4","3994200","1499535772","7/8/2017 5:42:52 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","10996.603204685" +"0x9aa8e90d7f54aaacd2a62aeb435d9a38545071dce692b7ab10904429ef2410af","3994210","1499535894","7/8/2017 5:44:54 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0.153333333" +"0x229da34e79261abf17c0c439c676e30f30394653f772ad3de9966da6fa5cca17","3994220","1499536056","7/8/2017 5:47:36 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0.051111111" +"0x7566cd139e035957a714291f5088d2ae44c75a8d7143cc5e42260805b13e5ab7","3994226","1499536265","7/8/2017 5:51:05 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0.006571428" +"0x1e5a29f6cfedf71ab9defbc20825f99eab6a389b1ef561d5c341e1ac817b3e20","3994238","1499536392","7/8/2017 5:53:12 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","104.9" +"0xd580d1b4dfc914c861290e2e63df0093365cd51d1ddd9d6ff1423a8b38637b0c","3994239","1499536417","7/8/2017 5:53:37 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0.004153846" +"0xa45e4019d50cf8ed114116941c12dcfb645fe6f02610cf98811cf343a816141a","3994254","1499536618","7/8/2017 5:56:58 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","104.9" +"0x61d5d98b32e8e9fbe5784d740dc28fb2d5db04b932b2caa4167b85fa9e22d022","3994255","1499536686","7/8/2017 5:58:06 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1687.574746093" +"0x0b830a23ea86c1e20ea16ffa9b3679b17a445f64f7c7bdef1fffcc26ea9f5299","3994256","1499536714","7/8/2017 5:58:34 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","6.666666666" +"0x179df704dcc7d103585325104ca3bb6506a0fa2a9b0246ad15510a2a14968208","3994258","1499536729","7/8/2017 5:58:49 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xc32dab2a4d26f1faddadd607c6fa358709986d10","0.000833333" +"0x4e3b6a846f47cce11029477adda3f09fdfe874d318c60bb6ec870a31abbe6deb","3994351","1499538167","7/8/2017 6:22:47 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x91b36569d0850430885ff11ae4aeb70399e3421eef4eecc9be1d94beb2f75953","3994424","1499539415","7/8/2017 6:43:35 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x213b533aa4db97787d46942184d52be52cb73c772d027f744da3d5ffe39e8dba","3994454","1499539720","7/8/2017 6:48:40 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x516dbcd038ea68337c582e8ced9a06589d30a030","15.833333333" +"0xdc62983f1f4dd25268476da71f4ab5d1d7ea0fd3266f405dbbb8c2f5d3fb9df0","3994467","1499539945","7/8/2017 6:52:25 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.004" +"0x873aea4fe5ba6b78f53509b0a6f3cee428a7f909596c57a11c1503809a6cc042","3994471","1499540056","7/8/2017 6:54:16 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","27.5" +"0xa064bb97cea0bd44da988af581bc8ad61cf2f4b0f691453af60a0cd29d2d34ac","3994500","1499540545","7/8/2017 7:02:25 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xa3ad07a62790c3243100c957ef7c457af8fd2061d2ab0949c6eb791f944202d7","3994795","1499545289","7/8/2017 8:21:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","100.1" +"0x34e2b383bb8fe02d079d7c1d1a7bae8eb87abfe46c7bd6bc9d89d33485b11131","3994802","1499545409","7/8/2017 8:23:29 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100.1" +"0x7c045eb09582dd8aecace93ca2679af9a9bb8138f569b97ad841b81b3ed03b4d","3994810","1499545621","7/8/2017 8:27:01 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","7500" +"0x0d69afad6691769023fcdb84e3e54b3b438b1bdccbc76dfd7f3626dfe6042880","3994819","1499545725","7/8/2017 8:28:45 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x5f7622cf7b1b8964e42099baa72c9af1dd80893933878ef9276f974a7aa0b771","3995037","1499549525","7/8/2017 9:32:05 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","188.888888888" +"0x18b67fbc5c0e52fc7e2953f184756fd9d3bb1ed6fc37257a7d8228dc0e6b271a","3995040","1499549588","7/8/2017 9:33:08 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xc9f66c2cb4889fed6e298b92735ab488d00c11ed77e88733d768e48da3e3d673","3995074","1499550396","7/8/2017 9:46:36 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xad76a77c30161ad35f4f41c51b52afff17e8393229f2f36985a3198fb02fd320","3995074","1499550396","7/8/2017 9:46:36 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xa71b82be4441a1bcea2bb64bbacacea2216c3f3856a9e84c95f46c90fb27d6cf","3995074","1499550396","7/8/2017 9:46:36 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x9b04559833018910c1e27754fced3e28a87c057adc966aee8478c1b28a1b1937","3995286","1499553621","7/8/2017 10:40:21 PM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","30" +"0x25a52e23be61715496a47788baa00cb48afd079a0f2dc66acad47742cb5a04e0","3995292","1499553694","7/8/2017 10:41:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","150" +"0xd253bf4bb4f59abfbb75f4c644b04a09a6c804b94bdc413517e4d9283f290f0c","3995374","1499555093","7/8/2017 11:04:53 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","200" +"0x9afca793435297f2ba63bbd5189aebc38ed8e6efe7cbabcdd005468d5da10ebb","3995376","1499555190","7/8/2017 11:06:30 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200" +"0x4ac695f7de709225d25c5876f4758a1482aa020b626b972536f34796146b4f91","3995557","1499558891","7/9/2017 12:08:11 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x8ea628b49cb853475c958af545ecee1d29598aa7","10" +"0xd546f1d59e68fbeb56c1c8315e6612e7e0ad91ad892251bb668755c258e2b70e","3995712","1499561275","7/9/2017 12:47:55 AM","0x15dedd9133da5b0d01e93cb897b466a714902f75","0x8bf97c47f4e8e95e3220d75f3438ec7b54f002d7","420.794621311" +"0xeff5656c3f69ee540867e9827474c8c482479eb7389f83fb2c77133da912b2fa","3996988","1499583265","7/9/2017 6:54:25 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x0edb6fb76a8082629f9584738f1a33f97ef3b8d9","55.555555555" +"0xd88864d3f6a978779f81e0a6afb591c477deaaecea2f221227dde122d36d810c","3997061","1499584343","7/9/2017 7:12:23 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x0edb6fb76a8082629f9584738f1a33f97ef3b8d9","277.777777777" +"0xfcc3547fe35c4eda48653d876e27e19a24a10f29d0a82ce97a4636b0a4f03bc3","3997089","1499584815","7/9/2017 7:20:15 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001538461" +"0xe7d4aa3e55f6c2bde1232511f054418223703a144357e84fc85cf6807797b881","3997124","1499585361","7/9/2017 7:29:21 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x6daa99dca0c1e561cc3ecde941441d76d308ad99add9e09e3f954de083a2d0c1","3997147","1499585798","7/9/2017 7:36:38 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xc32dab2a4d26f1faddadd607c6fa358709986d10","0.0004" +"0xc997b073c5fc9b8d95deb3efa01df18a4270325d0f3dbfd30e0977f21fda33b9","3997200","1499586726","7/9/2017 7:52:06 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x69a95dacd974c1686191aa7247d4966777b4e06957cdc6ba5e8d85b255b894c8","3997328","1499589037","7/9/2017 8:30:37 AM","0x0edb6fb76a8082629f9584738f1a33f97ef3b8d9","0x9575276150441422003d48d33cc139e65f8f6949","33.333333332" +"0x3152471ec8429aaa8332fd779ce5db1fc0f9bc5c7f30c37d47fa13b497a869e2","3997367","1499589664","7/9/2017 8:41:04 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x0b293f42f0e5d8720b145586205698fb50b7c26c205690f0efc56614efb142f5","3997414","1499590432","7/9/2017 8:53:52 AM","0x9575276150441422003d48d33cc139e65f8f6949","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","33.333" +"0x24a64ac60d911725a09a81345cb2cfc040b5b39cdf10c10b57c71ec6fe3c83c7","3997663","1499594625","7/9/2017 10:03:45 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x7148fe976d99fab9e9c564dc1e8e9724df374777","3" +"0x1ca0740e9325c9ef2fcf59fb96c44bf4e311b3960532f4f23192081c46bd1550","3997671","1499594772","7/9/2017 10:06:12 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb0214109c7f4c4354dc67b715986f23b9eb4ed59","0.9" +"0xd02760a466ec05188afb52819e9b1e887c599061b6f7038309fde0969f4b52bb","3997681","1499594880","7/9/2017 10:08:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb0214109c7f4c4354dc67b715986f23b9eb4ed59","0.1" +"0x0ae03d482303781327d0673d4333e47330fe24d03e76febd807c5a4a00f1f115","3997733","1499595734","7/9/2017 10:22:14 AM","0x7148fe976d99fab9e9c564dc1e8e9724df374777","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x33db17c5b4bf5d1a987de2d26d6e0dd0e413dd695769cd9553530efdff9a326a","3997852","1499597824","7/9/2017 10:57:04 AM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x3b4fad5764aca94b903e660045802cb85326fcff","10000" +"0x1d471304ef67aa729d2fc3f5c2f43829bc863b5549818dcdf1ee7cf1653997b8","3997885","1499598603","7/9/2017 11:10:03 AM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0x81b927562039679a96cd72fa0550806ed4db8d813a6e1165dd07ce6fdec135e7","3998183","1499603666","7/9/2017 12:34:26 PM","0x7148fe976d99fab9e9c564dc1e8e9724df374777","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x7527a1d35d45eb5a56598ccd4a7d6e68f836737483c40260a654e3ead8f30d93","3998423","1499607961","7/9/2017 1:46:01 PM","0x7148fe976d99fab9e9c564dc1e8e9724df374777","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0xb820faaa9d0d34390e2de1628f7c08be8f26be08c56c6a288d2f255c326c4f14","3998434","1499608137","7/9/2017 1:48:57 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3b4fad5764aca94b903e660045802cb85326fcff","4500" +"0xa6efcba721d0f1cba4dd5e72021c29da75048dc3f8f002e25cfc84dc2fbd4dc3","3998471","1499608788","7/9/2017 1:59:48 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0x03b29b3ba685b445eeca0188851aa1c563b0045c","4500" +"0x581875538a82ad5c91ea4bee4d35701c21802b6f5b33720053215d9154ea3b61","3998528","1499609852","7/9/2017 2:17:32 PM","0x03b29b3ba685b445eeca0188851aa1c563b0045c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","4500" +"0x94d444ff49433c0c3ec3febc758178d98da9e2ad9c181ecd92ab0d2d8878fe1d","3999048","1499617874","7/9/2017 4:31:14 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xae01fb5cdd85cebb3019e552f8f28010d3892d8ae93606d778ab4cfb86c51cd2","3999488","1499625582","7/9/2017 6:39:42 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x21e0696df6e29e31b0b023ab88487d9a8c46a765","7" +"0x7f643c3126b60505b419481a3e39e9f5e085c260f574f6e88672bd2b709a6f02","3999503","1499625733","7/9/2017 6:42:13 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.007" +"0x1cc9842bc6340e60616529e5fe1944f54e1e266924682a511d92ceec62cfb5de","3999515","1499625947","7/9/2017 6:45:47 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","587.5" +"0x3c4698d3da7fc513c0e66f96047e27ce5ed4e5af7f9d3ddcc43a9cbd0382fd55","3999535","1499626273","7/9/2017 6:51:13 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.005" +"0x700c5c1cbb6f8c2ea44dcda9597ca1087021a1c19dda3042a6c1d23349811c08","3999543","1499626465","7/9/2017 6:54:25 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xe8b97450c9b50d03f46fc8c9f820e6f1ed26e7adf2b63fabfc605c24d46e765a","3999559","1499626695","7/9/2017 6:58:15 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.9801E-05" +"0xa3015b6f75d660b2cde3b46ee861b8fb2554ab2ebbc833a84c10a4c2a6861b34","3999598","1499627299","7/9/2017 7:08:19 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.009246154" +"0xb00e4c2425ec30df0575aab00d10e9e224af1e8afcb9e60c7c605fef0568efee","3999631","1499627601","7/9/2017 7:13:21 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.44" +"0x49e4bae4628b4dca7037453cf37d3d2c1d64f0e71f276ff7bcd13a34e0381d7b","3999711","1499628601","7/9/2017 7:30:01 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0x81aaa99403f2ce27c849d0f60e373fc1fd369114b2856045e61322128367a4a1","3999802","1499630024","7/9/2017 7:53:44 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xc805ff5c9547fc3793e53a0e8fb35428b7a5ec177ae7d191bb28d56c5b9c90fd","4001154","1499654460","7/10/2017 2:41:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","25" +"0x127d3f414c6f22bbead1ad7682f0215724121ccb7df5af84caf9e834dc6adce0","4001166","1499654721","7/10/2017 2:45:21 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","0.01" +"0xa10a1fcfbeee664ce3895c126b7bbf90dbb7c98cfda7b1d13e8b64b65dacf186","4001215","1499655874","7/10/2017 3:04:34 AM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x38522985b9e2a8ed603fa1b98f12a3223555dd3b9319b48fddee59dde1290b43","4001477","1499660717","7/10/2017 4:25:17 AM","0xc0435dced65f0858b32b43278af293c21680bd98","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xdb790d86b40829713ce279af9be89a5cf6dc54fd0284cce64678f6b27a611284","4001567","1499662073","7/10/2017 4:47:53 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xd45cc73958bed26da7c4c8098e8d1a4a5317599ecb44e845bac6fca2b930b501","4001583","1499662427","7/10/2017 4:53:47 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x78b0e4933f5b7d90102367e28efcde256998411e","70" +"0x7d7c2a081d438355f0e8a1f54e2ff3a44b43029b42f61acafb28dc79d42e8fd2","4001590","1499662549","7/10/2017 4:55:49 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","35" +"0xa5802c2e99a333918cff777d6eb8d77325fab425b4c1d0fbc6bd0ce6e9850b5f","4001593","1499662617","7/10/2017 4:56:57 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","35" +"0x46252284ce08f769c0f5a279fe187fab44b5a6e3059ba886f3ff856a1c9798ef","4001598","1499662666","7/10/2017 4:57:46 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","70" +"0x4b2d1092e75e8590295019d84fe36d18f7d420bb17979f9ef91f0bf3b23e347c","4001604","1499662810","7/10/2017 5:00:10 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","100" +"0x5e0c3cddb4b47ff9d944077fd78022914c1bc59dbb64bc0498866730fcce6afc","4001647","1499663437","7/10/2017 5:10:37 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xd07cd91d913622f3a2f1e58e58794e3288074b59dd43a75ebf0f2ee38d66fc5a","4001697","1499664353","7/10/2017 5:25:53 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","56" +"0x1eead5dca28fa1248e43de2d38174ab6bd29c187900f3346f04c6ba6b630c558","4001743","1499665349","7/10/2017 5:42:29 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","10" +"0xeb763f5a827db8fc57bf056f724a94566216858f1d464180889021a73c221e88","4002877","1499687100","7/10/2017 11:45:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x7148fe976d99fab9e9c564dc1e8e9724df374777","2.999996" +"0x6a1ab4dd20abd5b556981f46d81c2191ba32a3176384941773a3402e3d6069f4","4002907","1499687755","7/10/2017 11:55:55 AM","0x7148fe976d99fab9e9c564dc1e8e9724df374777","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x1ecbd4dd462ec6bf208b9d67f92f2093932c297b956fdc2f317bf15b42afae33","4003639","1499701032","7/10/2017 3:37:12 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","300" +"0xfb225108be9cf4cef599266a9b554694a483016c4feb32162a49b9e738629ee9","4003641","1499701120","7/10/2017 3:38:40 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","300" +"0x187907b8642c59fb623b6912d4f10b9c82d831b4fa87d360649dcf2e30746cc8","4003879","1499705801","7/10/2017 4:56:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","1000" +"0xcb87fae1e47cd4e7500fda101f8afc75fc59758634e8bed609c5398425db2bc5","4003883","1499705893","7/10/2017 4:58:13 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x1d812abc0fc9384bc32558a29d257321d0353ce489bf27210e49ed9b8aea8f8a","4003946","1499707294","7/10/2017 5:21:34 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x3b4fad5764aca94b903e660045802cb85326fcff","10000" +"0x37552addcd87e00da08a63383c31b9d98436564d90b2a41dcd2550de2d84012f","4004285","1499713784","7/10/2017 7:09:44 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x457ee0cc68a81323162da8e917bcd255e0b3dcde","400" +"0x756eaf72139f3e6f1b4e98ce6778cbad4afa221d503c2ef3ad8c9e7ff6eb1b03","4004758","1499722522","7/10/2017 9:35:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x457ee0cc68a81323162da8e917bcd255e0b3dcde","500" +"0x80684acf9971f66f40ebcaf218772a75f396ef13a2723158f7342491e74b6f2e","4004935","1499725721","7/10/2017 10:28:41 PM","0xb0214109c7f4c4354dc67b715986f23b9eb4ed59","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x9f64fd402c53ef2394d5cd182dfa681a59a7fa946d1189637217f7875a5d18ea","4006624","1499758211","7/11/2017 7:30:11 AM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0x5fdcf20c19d12f35e150782160431f9b16bd5055843dd90cedc735870e94455a","4007301","1499770949","7/11/2017 11:02:29 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x153685a03c2025b6825ae164e2ff5681ee487667","10000" +"0xc8c251f199c93a480344eef28ab623ae513e93796b6ce750ea3452a8d4af8986","4007305","1499771027","7/11/2017 11:03:47 AM","0x153685a03c2025b6825ae164e2ff5681ee487667","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0xbdc66f52fb79720003460de757cf65483104c1a829e7de2029a0040d4e8953c6","4007337","1499771583","7/11/2017 11:13:03 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x27bd48bd6358b6762eea8b72235eedb7ce50a504","101" +"0xbb85cf26cee0625bcaeb1fbddfdfb419f095820c65b4eb8b98ce8e85ffcbcfb3","4007342","1499771694","7/11/2017 11:14:54 AM","0x27bd48bd6358b6762eea8b72235eedb7ce50a504","0x7c5ffe298a227bf168a75ba181d6da7b85e1050d","70" +"0x5cb36574ef4b9ddd5763e7e01881748967f70852e1e036aa06ebf4824c09f8f5","4007349","1499771842","7/11/2017 11:17:22 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x27bd48bd6358b6762eea8b72235eedb7ce50a504","70" +"0xef18229cca75622421d77a406a97eb5e65d18ffc59f52763b651b523a2e1bac7","4007353","1499771898","7/11/2017 11:18:18 AM","0x27bd48bd6358b6762eea8b72235eedb7ce50a504","0x7c5ffe298a227bf168a75ba181d6da7b85e1050d","101" +"0x6a4978f9d549159cb0c8fdf847cabc9fab21e751d1a62a05e58a5fbdf1c985e7","4008037","1499785383","7/11/2017 3:03:03 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xae8550640666dfb3509198f2718b472d73a6f205eaa056015204693c28d9256d","4008332","1499790870","7/11/2017 4:34:30 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xcb38627872268e67bd1757b95e5b124c36c3ca629ae2c4ba3358f98683dcfa10","4008412","1499792202","7/11/2017 4:56:42 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xe8cc57cc10a58fbfe0a2591c90a8dcd816745580fd342c677eec0e367bbca3d7","4010002","1499822958","7/12/2017 1:29:18 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x01b2f6622b0815194b805df29b053c13a75f7363","99.69095803" +"0x23911c77bc2ce68159c045e0da749a2bb2e3eaba5369d8a958a2d61dbf734a7d","4010300","1499829096","7/12/2017 3:11:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","67.368909879" +"0x25ce7646a0da9e879acee7e4fa8e7a9ce16b7c455f2ca6913b8f50ad9fa4daab","4010302","1499829200","7/12/2017 3:13:20 AM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xaecdac96a7b893b7b838a788aeed2ea2696dd22b8de429f9806ec9191ac9c85a","4010347","1499830047","7/12/2017 3:27:27 AM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x42db70be2a252ed3c5be790c102d5fe3e55ad85392461eca82d7e9cb224cf314","4012093","1499863438","7/12/2017 12:43:58 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x67c74fb0b1d15a48a897b4f8a647245064294d4defdc086b4d669ee199228c4c","4012889","1499878625","7/12/2017 4:57:05 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","50" +"0x175e0072b9304568e2c128227c69645c1b499c96e12a8c2349f175a067826857","4014283","1499904641","7/13/2017 12:10:41 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xece97806201e34759221ee39e68000820ea0f1df","398.76383212" +"0x2e0563acd2955a0a267c49659362fa73b9482b90beab48228aabfcc5d78882f6","4014370","1499906309","7/13/2017 12:38:29 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xc6aece2e1866a40c09f3d6c32d3e5882dd9bdb937fdf0292a8f442606b41768a","4015163","1499921722","7/13/2017 4:55:22 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0028" +"0x331beb0e272f6a56fe1d7d818a699723fe404619c8db24b2d2c36ab3a20c6795","4016089","1499939169","7/13/2017 9:46:09 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","4294.917" +"0xbc9a3fe539877f89b700c3977d04541b4e55588996a5d05f6b76ed3442046b17","4016503","1499947694","7/13/2017 12:08:14 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xf669b4309c19c66cf0f39350dcec84615c7a6f9f7b240eb30dc8a4185b574fc2","4016535","1499948197","7/13/2017 12:16:37 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x476c2740765f8ffb163edc809f0e00f4b58f6fc4315cdc8bfb40b0c03ec3148c","4016563","1499948853","7/13/2017 12:27:33 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x3b4fad5764aca94b903e660045802cb85326fcff","60000" +"0xb6709b06940c9a3fffd87ebe1dc79e302d77eeb8bc27b3c73ea32857f734df59","4016616","1499949796","7/13/2017 12:43:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1000" +"0x76f60b4f7d2630075482c799ee268bf9135626837a3e3f8165d67b37908e547b","4016638","1499950148","7/13/2017 12:49:08 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","2249" +"0x5e0e49cfc84b6823d767c83ccf72e1220d6184404b327ba5d8460a219655d089","4016649","1499950375","7/13/2017 12:52:55 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","60000" +"0x1b1aefab16a43d145f8388a1b12fb59e853a5e2216039353f9ef821f0dacc1c8","4016790","1499952685","7/13/2017 1:31:25 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","800" +"0xd6efb2874a1d68dec9358dd32bf58273d33e5b4c6a6dadc0a70386fa0250b10c","4016850","1499953894","7/13/2017 1:51:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","350" +"0x411d57d6f6f05a1cbf0f1ffd7234a8da8f20c0af636e0c8a9854c92ff3b1ecf7","4016858","1499953999","7/13/2017 1:53:19 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","390" +"0x815ceb13f4d61f87c3a3393d7f068af742431828f7a5b99d5b69ec72625020c0","4016898","1499954688","7/13/2017 2:04:48 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1000" +"0xed9e1b0e5a173fe470aeed0cf069c12100680b28c63119138d281b97cd58de48","4016944","1499955550","7/13/2017 2:19:10 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0xf6153c7cbcd8bd855e208c5b7a470868fba56ca2be1d980433d8499d724f494d","4016951","1499955648","7/13/2017 2:20:48 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x33fe500ee682fc6736b06e47121ff43c6f9ca9813d1d6da9f699345c7414e8f8","4017310","1499962470","7/13/2017 4:14:30 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.005" +"0xa18085922df45942079133f51eee06fb2ef67f71831393df7bd05e9e3e8673f7","4017365","1499963202","7/13/2017 4:26:42 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0.460921844" +"0x9df01bc3452d2816631b70698c0a27d0d3c2b14e0df52406a808840c78f8a226","4017382","1499963574","7/13/2017 4:32:54 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.004615384" +"0xce8f0a3bb0dce736be7fd54170d2e186a0ef51ff1de97fc88816c9ae49574bd1","4017410","1499964199","7/13/2017 4:43:19 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x8f0e85778efe235090172d6b089180e080340781c9fd6ec5e12666932aa3e6c2","4017434","1499964640","7/13/2017 4:50:40 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0x4531e269670ef56d0cf1588c027f3fb59069567e725bc8d1e3dbe24b168b4233","4017451","1499964821","7/13/2017 4:53:41 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x0a26c701814420fbc3ab701b2357ebe75d1fb731551ec68a89a4c779c137e10f","4017455","1499964912","7/13/2017 4:55:12 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","4.609218437" +"0x67ccd1648bc348f3b6c2cc735e98daf20f733252da68ea3b73c15ef65e1f15f3","4017507","1499965796","7/13/2017 5:09:56 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x156afff2c47dd054912775abdb7e947dd496492d8644147a1172a889ffed6912","4017639","1499968208","7/13/2017 5:50:08 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1744.444444444" +"0xaa1451fe69b87383d226115fa183fc878e9a2967ea446417465718837dec9bc3","4017660","1499968571","7/13/2017 5:56:11 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","7.777777777" +"0xd43c312805ed4c7c0d12c10035bb455a356812a55b8c1c519af762eda52a89f9","4017894","1499973077","7/13/2017 7:11:17 PM","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","0x697261a8d6c983db69b06be10d325bd2f2aeb861","0.000774244" +"0x0ad1ee39322e334ec0be5194d518ef2e6bc2891e24e5ea256a03f66c5d4ab44c","4017906","1499973309","7/13/2017 7:15:09 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","3290.084" +"0xbbf4259782ab351f28e3e6a635bfe0f660fbf95149f1c668bc1599a1a51725ae","4017913","1499973467","7/13/2017 7:17:47 PM","0xf550b9c092bed1bf3405e8194b2d0cf792e39e58","0x697261a8d6c983db69b06be10d325bd2f2aeb861","3290.084" +"0x90bf0ee7878439f1ddfcf8db4e3ada083a64a40bd7f37bf87f3308adda04c28c","4017932","1499973936","7/13/2017 7:25:36 PM","0x697261a8d6c983db69b06be10d325bd2f2aeb861","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3290.084774244" +"0xa9c684a1463c227c1ec4f1772b4d16470e88aaa68e68575ba416e6038b84c27a","4018055","1499976081","7/13/2017 8:01:21 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","836" +"0xa5a31546a57b0ee6f2b4621af60978651e54317a7a37c0e26659da31eeffdfe5","4018215","1499978983","7/13/2017 8:49:43 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","3000" +"0x5b956987ca7cf4097ea1668d88e7f5a36f409c75cbf18d5d672a0f773064d22f","4018218","1499979103","7/13/2017 8:51:43 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1971.25" +"0xd612d8aec84f7c76b7b49c0c241834a4a8fb169aa8990fe7ef6da8221200c7de","4018366","1499982505","7/13/2017 9:48:25 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x69501ebc74b14f0d4d2d28c9dc3f5c821d4ad5e4c5a92b548b50cda30c702fac","4018640","1499988207","7/13/2017 11:23:27 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","348.998" +"0x025762f9c75f2f8676881f0c880fa7fc00c7e2303fdb0d6ab973e1038f8fb51d","4019775","1500010003","7/14/2017 5:26:43 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xea56310ff6f36dd89e978b59af6b4759055ad5e4814a265492275963cb3161d8","4021398","1500041457","7/14/2017 2:10:57 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","797.52766424" +"0x651e921850f2c180e12541172dc705bd41e93417acf61e086e5c9a8053d19cfc","4021461","1500042965","7/14/2017 2:36:05 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","1362.829693507" +"0x9573fd3724e55437776bb0cf1d71ef1dd07be4216c8cb88afcc49c39822f29bf","4022176","1500056337","7/14/2017 6:18:57 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0xbf776c23875b47ff54ae65bef3aa14de5f617c80d59d0ad6d95a4547eca78a61","4022208","1500057002","7/14/2017 6:30:02 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.022222222" +"0x39a091036850e3748617dcebc4ec73323fb1b3aa1946dba1cfd5835acd30f208","4022253","1500058068","7/14/2017 6:47:48 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002857142" +"0xf51853b95006055a826529bca1362dcdc067280dd53434176110d067c07dd2a2","4022268","1500058275","7/14/2017 6:51:15 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x694159893da86e0b0dd202065ee171e51498950a770ce36ce7887be4b55cdd98","4022436","1500061507","7/14/2017 7:45:07 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xaa990c1f307f76f253eb61f9b23c68afeaec1dbe521beb65dc7e1f53f324f54a","4022561","1500063721","7/14/2017 8:22:01 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x215ad2e940659e69eece6777169308d570fd853769a16923a7e11ee2af07388e","4022565","1500063780","7/14/2017 8:23:00 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x27f0baf305f6486dfec3560bba44f3d9574f5d00","99444.895" +"0x421a93df5f7f4d75eec46551b2cc5996fa83f383cd2cf0b2dc8e9af2b247844f","4022783","1500067567","7/14/2017 9:26:07 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf918611db915c56170e657a537558f08e4b0c8e7","50" +"0x1679cc6a82412d7b36cdb33b22643963c7eca05ffd653f824e861ace902a23b1","4022936","1500070330","7/14/2017 10:12:10 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x0bd3dcd354509da4ca85e16baa1ad513f01a3c0f4cbe4be59465e9cbe604fc27","4023074","1500073001","7/14/2017 10:56:41 PM","0x27f0baf305f6486dfec3560bba44f3d9574f5d00","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x8dccbce3e85e416e37a7975dbdb56c7becb2f50edee177b057bbe8b0ed598b12","4023816","1500087105","7/15/2017 2:51:45 AM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2000" +"0x6b8421148708a717f0195731a49968fd6e76a3bf377e200f50d655fc222aaf5f","4023906","1500088735","7/15/2017 3:18:55 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","2001.256" +"0x250ad765ad6f686adc1c7c4c655b13201656e13d2535f58a1370f8d85491d7ed","4024457","1500099646","7/15/2017 6:20:46 AM","0x7c5ffe298a227bf168a75ba181d6da7b85e1050d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","6" +"0x734178a0a6cf2dfcb88f60516ba11250989dbd28f19edd937808c70f872cc276","4025781","1500124635","7/15/2017 1:17:15 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","1000" +"0x836efe2e918c9f42e8ff93e9db17ea6837d0b82f52b11497053dad61649e12c3","4026393","1500135800","7/15/2017 4:23:20 PM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","600" +"0xc754f78522499ce6fc2d484ace59aab78a9df77c1ca16c482e4366a437dd8d81","4026414","1500136138","7/15/2017 4:28:58 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","600" +"0x5d24024dc9a1725d2545e6d0f3adf3bc5e3e0f1961c1cdfb3dbc7961342d6d5d","4026465","1500137657","7/15/2017 4:54:17 PM","0xece97806201e34759221ee39e68000820ea0f1df","0xe9fce9d03d337cb57b78fa8223aa60d53f3b5c95","10" +"0x3c4814bb2bb837ec2fc05dfbed5c1a3bd9c92840dd3fad69fa509026a993fd3a","4026529","1500139335","7/15/2017 5:22:15 PM","0xece97806201e34759221ee39e68000820ea0f1df","0x39cd732016bd7d836fae91201761e432c96f85df","5" +"0x3e8021385d48e7ebd048fb13f7fd85b0f511456ce06e6d7f04d4bfa1c09207a0","4028254","1500170311","7/16/2017 1:58:31 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","836" +"0xc859fe37c126cce7147c2f643c0df46d529ebd6e532cf76f069a35f321f1bb08","4028345","1500172161","7/16/2017 2:29:21 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","5657.474" +"0x9e99a5d036b712c24bf46b0ad171e9eb7c4dac4283e19f9bd206208ad66e7125","4028383","1500173036","7/16/2017 2:43:56 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0x226f825c62dba48bee9062f296a831723c5860d31234347c1b688f1393c890e5","4028410","1500173406","7/16/2017 2:50:06 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","100" +"0xbfc0f7c3f81ab3a7d3afa152c6f7c002792a9907e3476a8defb7938b7acb4d1c","4030109","1500206025","7/16/2017 11:53:45 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","998.773" +"0xf8d5136f79395ab0f71416a3a32328066aa64ec5b3b934a5205d485468467476","4030134","1500206571","7/16/2017 12:02:51 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","897.307" +"0xde94d18b756854ce7b833c70daf7c038e73af02ef6d749cdb62488197dcb04c5","4030267","1500209211","7/16/2017 12:46:51 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9f32d6ae376aa483228c35e961d75030474c1c7b","8" +"0xbd7d669d6d11d2fb5208b757af2a105dc8f0a88a1ecc705d31666327fb8937d9","4030330","1500210124","7/16/2017 1:02:04 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0x06f81686b9b7ef5124cf7eea0c8a0d1376dd49c813a3b8e704005f75b63f084a","4030592","1500215021","7/16/2017 2:23:41 PM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50" +"0xa53900fad7640064a6b3cfe74d1729a17ea6f3bcd7e32bfb8d3ae1ab04a04182","4030649","1500216169","7/16/2017 2:42:49 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xec1e79a0ced3aa05f9934ce128f34a14728b353566e5ff7d5573a353f5392309","4030670","1500216681","7/16/2017 2:51:21 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x3e1671e6d04c7d94b8902091dc9a0c5790c98f7a4aa01f0adfcec3f76030a364","4030690","1500217064","7/16/2017 2:57:44 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0xf6bb3d10e6ac00d679bb67c1e040df54c8d6859762976a2d66c98cbd534c588e","4030869","1500220331","7/16/2017 3:52:11 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","1" +"0x2f035a686be61d1546eb253c4bb49919472d19a395164d7a6e70ab229b139918","4030885","1500220570","7/16/2017 3:56:10 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","1" +"0xbbd74b2e6865c0504eaa50d807ac2a087215e200f6374d2ee0e6c8064238c614","4030886","1500220619","7/16/2017 3:56:59 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","1" +"0xf638d3ebd4099a77937f8ffec6f19bdddf5eb91ac3e0742e81996adacd2a7ad5","4030887","1500220680","7/16/2017 3:58:00 PM","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","1" +"0x61e04d4b4bce856dd49e96a085b7532cc3535fbbf0367bb2c494e82b5446a7d7","4030901","1500221046","7/16/2017 4:04:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","1000" +"0x0af8175b794b35a542973a17e55d7af95ebaff7fa18abb7590b165aa6b25278c","4030903","1500221151","7/16/2017 4:05:51 PM","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","1002" +"0xbd7bf30a9918cf5e6db1f9227dd051a248aa56caa9a1e1ec6f9242a9ebe42456","4030925","1500221555","7/16/2017 4:12:35 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","1030.219" +"0xf750c7bbecf0e39cb03ab94e16e66f162fc1ad0215a222569937ace4153ca71e","4030925","1500221555","7/16/2017 4:12:35 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","698" +"0x1945ee34c719bfde309f66eb677183ca5983647bb604d1e1a246b491f2f2b99c","4030931","1500221727","7/16/2017 4:15:27 PM","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","1030" +"0x320e2cfa7d15a398a1784ef919e012ce7d66e6b9f45c5097272532e3c0674b16","4030939","1500221835","7/16/2017 4:17:15 PM","0xe8c5d46e0f28b5b7d9de78c6c792b814a1cbd04e","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","0.219" +"0xf2f03f2f3059262c5fbcb61aa49db859ee2e619c8e9ab5022e3ab536b00ca7b9","4031012","1500223050","7/16/2017 4:37:30 PM","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2033.219" +"0xefbe64103c6b27332c24d72a311d8e6caeb0543801ac4e684b8f775f4acf1f48","4031041","1500223646","7/16/2017 4:47:26 PM","0xece97806201e34759221ee39e68000820ea0f1df","0x005ffa09846ea6057f74f4585b14923057ab6139","383.76383212" +"0x532021ea0ac76c451551cc3fcf58e9dd81dbb56a59b58e0874c672f4581623e4","4031362","1500229877","7/16/2017 6:31:17 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9f32d6ae376aa483228c35e961d75030474c1c7b","292" +"0xd8e337f1d02d6cf585387bc4d6f6969885d812ed4c7d2ac1efa7f7fff6cc316b","4032225","1500245781","7/16/2017 10:56:21 PM","0xc0435dced65f0858b32b43278af293c21680bd98","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20" +"0xc5dbcf7c52e8a80ce4cf965c2358485b5b29371f92b843910a4b2f15730f547d","4032378","1500248321","7/16/2017 11:38:41 PM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xfff080ec82e1d4c40e0058b6559da07fe66a99082b40396c4ab2aee4348cf6df","4032441","1500249567","7/16/2017 11:59:27 PM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0x2cb4b0bea53539d25dba5cd5c84b40ab54dd31f7459f60d9f81f67d5d11739ab","4032485","1500250405","7/17/2017 12:13:25 AM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","61.287" +"0xe5990d2a9709079d9a384ab69afe30bb4ce04658e5ac71955fd2f47fe58ae7da","4032529","1500251132","7/17/2017 12:25:32 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","60.284" +"0x89078dbd7dd2ab19c1cffffa164b2443498d617ad74c6c2edb91fc6e2cfb8a48","4033093","1500262574","7/17/2017 3:36:14 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","50" +"0x1fecb215460f4fe04d589dc480b15203f93404f40ca5b66dae45b4a7667c9467","4033349","1500267465","7/17/2017 4:57:45 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x949bed886c739f1a3273629b3320db0c5024c719","2" +"0x4b044aed0923acf744ca8f877b0a2e8e4c6b7a72a19c47370afbb117e331203e","4033392","1500268357","7/17/2017 5:12:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","1" +"0x8817bea11a41a0b931300a5a99dd97a00daa25caead6ce173dae67317eca1167","4033400","1500268491","7/17/2017 5:14:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","14" +"0x5d188fe6e5b10b4124260c0f157dcf7cd71dbb0c0556c22f1ff7483cd3cc5bff","4033524","1500270999","7/17/2017 5:56:39 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x949bed886c739f1a3273629b3320db0c5024c719","2" +"0xfc2337f106f1aa8f33d160fac846170af538b78ebc7e58b6b753d22d8a11b6d3","4033529","1500271099","7/17/2017 5:58:19 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0xe135b017db11b45274882b72f2adc6b3644cc97f1e9c82f654d80b96cd541e71","4033564","1500271734","7/17/2017 6:08:54 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x546ae86296827d42f23e3d62b986a65e1f6f00ce359166dd637d1845bf762ac4","4033611","1500272657","7/17/2017 6:24:17 AM","0x1df8ab4fdf7a259850cfeec0b21037bae699e108","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5.9" +"0x8f16648a5a53f0571585a1a17c8b2c0b52e6c76614428fd9076964487cef8105","4034282","1500285029","7/17/2017 9:50:29 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","20.455" +"0x3e7b298485da7f2c4ab9639ebf06e0471e6e5d96de90193d39905b1cb9b7cefd","4034334","1500286052","7/17/2017 10:07:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","10" +"0x47c58c653cb2d52558268ffa02ca6ed12c4b2f53a4b0e3713b3b06fb9d4f7c47","4034347","1500286236","7/17/2017 10:10:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1" +"0x1513eb882b93894343e6b673495034b8b5c17571f2ddfa06b8d0ce22091cc568","4034675","1500292901","7/17/2017 12:01:41 PM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0x3da500528bb7fe2a7b860479927da50aaea10e258bcb81a8183e51e76764892e","4034773","1500294779","7/17/2017 12:32:59 PM","0x9f32d6ae376aa483228c35e961d75030474c1c7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x5b941af24e1a63ba4d356d6d0fc20fd4e56414b86bb3afe0a02b8a949b542c0a","4035071","1500301186","7/17/2017 2:19:46 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x8e0e86d9c4705d7ea6420165ebf3673cc9f1458e6797f16aadb1fb5ab01ff6fe","4035075","1500301352","7/17/2017 2:22:32 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.693" +"0x796bf179aa45f92df38977b2aebf781f9a62466967722953a58f10a18e8831c3","4035368","1500307062","7/17/2017 3:57:42 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","1.999" +"0x30aaafce6ace2ab5ea2a9e404f0311db5995d2ebac386664fca833b0b1721119","4035437","1500308314","7/17/2017 4:18:34 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x23ed392c2e88aa3edd9efbdd13ff4fe6a0582a2796a7d5032a930036b5a6dd35","4035497","1500309304","7/17/2017 4:35:04 PM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0.1" +"0x2ae31ada9c0674bc580476a805b49f1985b2a53ca2a0f0e1880e036c0953cd34","4035500","1500309358","7/17/2017 4:35:58 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","62.283" +"0xc41ee28e2493107d691768a7dd012c8747b7a09cfa15432fb665170b64d1db1b","4035515","1500309607","7/17/2017 4:40:07 PM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50" +"0xc4a7f56d6dc4210d24daf4902cca4c8780ff3209d0381b592127894e6f571651","4035528","1500309982","7/17/2017 4:46:22 PM","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","62.283" +"0x263d69ebd6501c5a10e089b5045e6efdd64f538d6aab7555c451393422e49905","4035653","1500312510","7/17/2017 5:28:30 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","1" +"0x5e09e78cb06b5c4a38fbe034cd3e67061d745ebb1d8da0d3bbebc2292ffb2f18","4035707","1500313468","7/17/2017 5:44:28 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","2963.35660325" +"0x58b70f40525c9239cbefd49c9606d9e94591b6b4dceb88dd89b87810fe369489","4035737","1500313995","7/17/2017 5:53:15 PM","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x919a29a532083a348110604d60d8257aaf63dbecffcddb5b5df763673b3f541d","4037880","1500354803","7/18/2017 5:13:23 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","469" +"0xd105732511600e4ee44f4d60f0c72582a60d9013afe80b8a977021c1217942ca","4038669","1500370129","7/18/2017 9:28:49 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","1.514" +"0x87f6ce4acd3c77884a1e6252d72d7bf070f7a1f397f918c5f39f7b19834630a5","4039036","1500376712","7/18/2017 11:18:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","50.099969004" +"0xd8bd81309996316e8fed35c6d2b717d2df3272e888e7cf592f745af7ef305c10","4039746","1500389447","7/18/2017 2:50:47 PM","0x7c5ffe298a227bf168a75ba181d6da7b85e1050d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0xfd9873d3d798448d8fe521a42909c624c87c2f76fa558f82cf8bfcd615edfcaf","4040109","1500396436","7/18/2017 4:47:16 PM","0x9f32d6ae376aa483228c35e961d75030474c1c7b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x597910215c0d31a503a17063910ee4a073f236b072f2232d2818c62d15b629be","4041060","1500414487","7/18/2017 9:48:07 PM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0x77a77eca75445841875ebb67a33d0a97dc34d924","100" +"0x3741464eea7a8580fe7f68ebaebf279693781ee0a86078cce7b88d28df87ca91","4041189","1500417435","7/18/2017 10:37:15 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0xf07d43fb48824c3e7cc83f5df659a49eefb8841a1b9b5c8398dbccf820ec2a2f","4041379","1500421065","7/18/2017 11:37:45 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","2" +"0xe8d4d1f4d113039290dd9a04f2cd8b005dcb54ee12c8b0b680e1156249031077","4041389","1500421249","7/18/2017 11:40:49 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","10" +"0x0b4b7bcaef00fc90d83c60b4601bcb429f56a8658358987300825e83f9b65505","4041417","1500421742","7/18/2017 11:49:02 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","20" +"0x0d4841a3892ed17c0c64623d54371a6d1cb4afef0d46741372f0c4499539124c","4041606","1500425553","7/19/2017 12:52:33 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","0.236658956" +"0xc4ea088482110a0108501016212283cb32a097d3374a72216c2bcb68866a303c","4041680","1500426984","7/19/2017 1:16:24 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0016" +"0x423aa86424535d3deec46c04941fe9155732ecb7bd64ca669299a07c6241e4f1","4045064","1500489700","7/19/2017 6:41:40 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x4a55d4d22de8bdb3aa196743c18263464b138e64d5a3825f5604342c6f84cdf7","4045069","1500489782","7/19/2017 6:43:02 PM","0xc0435dced65f0858b32b43278af293c21680bd98","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0x74426797648d141dd992015b9e7c951e8f5b27cb0c169289b2a3afd23578f23d","4048341","1500551866","7/20/2017 11:57:46 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","308.361826959" +"0x696fc83da74b5da9f53adad1da070b4816fa51ef622a46063b3a1ea48fd84b9b","4048351","1500552040","7/20/2017 12:00:40 PM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1308.361826959" +"0x6994da92fc3bc535f3e74c26b766a16ce83d4340f5e1631442c5332fe30b498d","4048552","1500555753","7/20/2017 1:02:33 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","10000" +"0x2fd78fb19964f1e7cc1519f8b31f038a7d6aaba8ac5444675af4074f7a4dbe6d","4049464","1500573015","7/20/2017 5:50:15 PM","0xc0435dced65f0858b32b43278af293c21680bd98","0xbf29685856fae1e228878dfb35b280c0adcc3b05","90" +"0x6fc86810cecf1feb465936cd7e5e4a83e507dfae1c8794445858f8f71529f84d","4049577","1500574855","7/20/2017 6:20:55 PM","0xc0435dced65f0858b32b43278af293c21680bd98","0x74aee9a881a87b62dd2a912ed1709d8360bb0efa","50" +"0xd9c1e0b168466be00758eb9b7d20a6649121ecd17e4f3d9e1f211581a1ea89e4","4049825","1500579467","7/20/2017 7:37:47 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x9c600b06127c432fc284e120f96aca45f6b5ea70eed0d6691e3e70ae3c398769","4051016","1500600869","7/21/2017 1:34:29 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2339c6f3b957a03f6684385a854ca7a414207929","3308.360594856" +"0x5fbfc2e101fc007187c83383a82cd0d022571afcd486d49b44874d6bf142b8d2","4052776","1500634476","7/21/2017 10:54:36 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","4000" +"0x3ff4e6e1c2843b4d587e0bfb29a1121406f6e98bec47bc4bca407fc946b7a2e2","4052803","1500634978","7/21/2017 11:02:58 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4000" +"0xd1b6e7dc13335d6f0a104ac68ac64626c0ad29bd8f569d58b85cd8ec78026734","4053336","1500644624","7/21/2017 1:43:44 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0x4dce525bc1d0932137ca655c38bd5ed0648b1c4e1f029dc5583b30a9393be2a2","4053339","1500644663","7/21/2017 1:44:23 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x758e8cf9813c45b8da460b08570c19032bf69c0a6630cb31b572b0b8dceb9d44","4053595","1500649443","7/21/2017 3:04:03 PM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","505" +"0xa9832f4820b5f501ebc1f6ee5aa344f7f372b2d88fe47433a53cea5ac6387056","4055509","1500686560","7/22/2017 1:22:40 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.003" +"0x55b39dcdcce8c808236685a9d14c1d02fc6a54e506005b1da8bf6cadee90579c","4055526","1500686868","7/22/2017 1:27:48 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.004615385" +"0x90ec7ff198b1ac914ce3a4d4006fc36410bcb3487e7c5f63bb89fcc461662b7e","4055541","1500687313","7/22/2017 1:35:13 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0xdde3093b67112e50d404e55fdfc1d2ddb377c0df6f4d3b336b994303ad21b543","4056455","1500704310","7/22/2017 6:18:30 AM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x03c8063ae04e1671a9d44494a113da5620f6e7890e9a0f8121fc3213655352b3","4057555","1500724324","7/22/2017 11:52:04 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x7beaf567032b76d3a1acd1acf3bb2de7d22cce3b","111.111111111" +"0x2353d36947a9e01c6df584fc30d9ce56ff1815da506cca17b913c22e1d9072e9","4057793","1500728879","7/22/2017 1:07:59 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x1a75d445b9cf9db222bf7f9a29ed29dda6605a0e43de3f0119150d65ea34d79e","4057802","1500729051","7/22/2017 1:10:51 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xdbf9356c09f9d2d2f9bb4e4411267a793ecd44c4698a862fde94b904efc785b7","4057835","1500729766","7/22/2017 1:22:46 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1.693" +"0x86668e06f7b460d0d8ba4f5793b2022b7a89acfa173443afb9fe02a49833ba7c","4058046","1500733530","7/22/2017 2:25:30 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xb3272f9ad488c94da4209b1e0cd3da498d6c3dfac6209005265685dbaf59ff3b","4058054","1500733605","7/22/2017 2:26:45 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x20cb2258fe4a26a52e9d10bdf42a2688243cf5e61ec0cf07666fd271df3d0a68","4058130","1500735126","7/22/2017 2:52:06 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x7beaf567032b76d3a1acd1acf3bb2de7d22cce3b","1111.111111111" +"0x1ec8bc29238449cdc79c56dc7c74379180c54660f5304a14d79251e76b345b10","4058137","1500735262","7/22/2017 2:54:22 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x1f9a75c775ba7d24f952f0fdf87de7ece429da4ebb994e70bda6cc7312682c0d","4058229","1500737042","7/22/2017 3:24:02 PM","0x457ee0cc68a81323162da8e917bcd255e0b3dcde","0x3793963e9d6a4e0cd843fd7d2bad650565ac8e95","50" +"0x2911b4ad8a7ccebbbeb3a709782b0f2546e6fbe9ed5fe32f6987f596079bd948","4058797","1500747292","7/22/2017 6:14:52 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x9abef00d02a5d3b97a90b099d706936f500e66b64055b7ddeb77210840c614ca","4058797","1500747292","7/22/2017 6:14:52 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x7738bcc6010f09334101efd70c03ea6309dc99abbf63386d03cfdd03f9cac268","4060061","1500770436","7/23/2017 12:40:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8988156d003068f226aff6d4abaf8fc880a84c47","35.603913582" +"0xf0e2cc5eecfb5adf5d50b705d19529ec9ff6617d10a551b66281b3a0af4269dc","4060062","1500770442","7/23/2017 12:40:42 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x2339c6f3b957a03f6684385a854ca7a414207929","111.111111111" +"0x812a25813188347df85fe0b2183f0e6fdc6ded23656f348d9024a9d2afa4a257","4060099","1500771239","7/23/2017 12:53:59 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x2339c6f3b957a03f6684385a854ca7a414207929","222.222222222" +"0xa9a49d286d6b7ad4dfca3cf7660fcef012438116acacb4bc1782a356bc25535c","4060218","1500773505","7/23/2017 1:31:45 AM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0x433b0030abfed9f5b2b71b7bde9e3f244ed45648be49b55a6b7f6f68d32c04af","4060277","1500774609","7/23/2017 1:50:09 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xf2c8218227dcdddb9e5d0f9ff4b6f5cbd0077ca650784fc18d8e9ade9a26545a","4060960","1500787736","7/23/2017 5:28:56 AM","0x7beaf567032b76d3a1acd1acf3bb2de7d22cce3b","0xe506b2bd39fccc59d5d44a5532aeea623a4ebfe4","10" +"0x4e2c76649bc26fd6cd09c3272e2247c9fd5e02bd57c0869fab81ebff49411a75","4060967","1500787891","7/23/2017 5:31:31 AM","0xe506b2bd39fccc59d5d44a5532aeea623a4ebfe4","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0x06714a6c916adbceb0ed8eaed4dfce6a0cf62ff65d84a4547640b89748bd67ed","4061323","1500794502","7/23/2017 7:21:42 AM","0x8988156d003068f226aff6d4abaf8fc880a84c47","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0xd961f34e9f7384435fe25e7b9dc0723b0bbdcce2ff4089ce4334490a5da0d797","4061394","1500795732","7/23/2017 7:42:12 AM","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xae9e22e9236d47b2ae1fcad56f136ea3e9e43bfb367652785b92a08421f74fa3","4061439","1500796745","7/23/2017 7:59:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8988156d003068f226aff6d4abaf8fc880a84c47","18.105" +"0x0a5baa9b2a819ab651f85bd046577c1ba25ef25ee974eff892e6d7eb17ea5887","4061450","1500797005","7/23/2017 8:03:25 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x2339c6f3b957a03f6684385a854ca7a414207929","416.324746097" +"0x06b0f2c45cf9a6fbe0fa9a9dfec89119cb85c43cad4853375fe74d3233110437","4063136","1500828228","7/23/2017 4:43:48 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x321880810709671ccbd07c506324aa35921919b48be34a5affe2f9e67b7608b4","4063727","1500839435","7/23/2017 7:50:35 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.003" +"0xad4cfb1b6f80e7e0a75befa3aaa9b1faf1dbd6b8639255bf17aaca571a6fd56a","4067453","1500909182","7/24/2017 3:13:02 PM","0xe9fce9d03d337cb57b78fa8223aa60d53f3b5c95","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0x7b99e677bb84754d98b978677039d75bf884a50cb6981fe7e0979a06f48c1858","4068870","1500935482","7/24/2017 10:31:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc0435dced65f0858b32b43278af293c21680bd98","122" +"0x9bc366b9c04450568745dcbb3ca9c71d15f8e2d2e6ca49ad68a7d941daf17fe3","4068941","1500936650","7/24/2017 10:50:50 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x14af12c11fa2fc702add3a5f65143bc1158871e4","1206.894688698" +"0xeafe5f1cf4fbce82ca1641c68e9176c6da5044cb6dbf69c39e124f44b7d93cf7","4068950","1500936772","7/24/2017 10:52:52 PM","0x14af12c11fa2fc702add3a5f65143bc1158871e4","0x32eee22d8de5eb05a2ec8a4d6513517708c7bc04","206.895" +"0xea815008b0b219a897fd4e7ad382f1eefb8ec6f5cf56923278e71822a6994636","4069009","1500937937","7/24/2017 11:12:17 PM","0x14af12c11fa2fc702add3a5f65143bc1158871e4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","999.999688698" +"0x221c5bb364de1d2ba206c5e690f0693d712a6ea80877c054b408993f49f04fc5","4069040","1500938670","7/24/2017 11:24:30 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8988156d003068f226aff6d4abaf8fc880a84c47","28.053948332" +"0xe99c1f054619bc89e7081866e85030353c81a746fb5011ea95cff173b3e3330f","4069370","1500944433","7/25/2017 1:00:33 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","1000" +"0xb948a60ec5160f608b7ba4078d908a124d34a8781d48be7550279878b8b7f7b3","4069376","1500944509","7/25/2017 1:01:49 AM","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1500" +"0x7e9f01bea490604a9eb060a0ec725100d0c5624b8206b3479e55851fa1df703b","4070871","1500972585","7/25/2017 8:49:45 AM","0xb9b70665aec0fc778184fa4dd7b18a74e3a646f7","0xbf29685856fae1e228878dfb35b280c0adcc3b05","450" +"0xa8a99e9e778b8487cbf7e6354e13f41939d4332e64a0eb3bd50154bad78b4abe","4071436","1500983549","7/25/2017 11:52:29 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xee4c5a552d0a8e9cc77258e791ec81cf89bf0c83","6.666666666" +"0x4a7a0d33d9d7993b528a732548c86b1ca1874e38a3bea8f0655ceb99893e10cf","4071506","1500984623","7/25/2017 12:10:23 PM","0x32eee22d8de5eb05a2ec8a4d6513517708c7bc04","0xbf29685856fae1e228878dfb35b280c0adcc3b05","206.895" +"0x3cf176d75aa56ad3f792bc072a41061d955f911d9a82b1993bba710442ff8909","4074125","1501032156","7/26/2017 1:22:36 AM","0xc83ce4e0d62c3497dd8b4eb6250053d5ffc024b8","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","100" +"0x21b68eb67ff66f5be25e72766e3359f812f3c1796253a6a31dac819c58dcdbe3","4074132","1501032328","7/26/2017 1:25:28 AM","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x498174014dfccfac951ce6765f22197be1edafdb971e63abb6531b90c722e3e8","4077198","1501089649","7/26/2017 5:20:49 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x7fc076889d7e58758d0a717adce6be17a4eb66b11a85c9854120622f3e0b5257","4077827","1501101233","7/26/2017 8:33:53 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100000" +"0xad177b3e1a8f0abe5fc0a84f206d4c28bb7030423aa73fb34ec270d6fd6c96d3","4079893","1501140225","7/27/2017 7:23:45 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x7adc303097bdc1ed2269a1b0569ac165c9585a42","2" +"0x155f5a13b3a3353c2d22f8bdae6004232df35e0f721777505165c62a561fccbe","4080063","1501143334","7/27/2017 8:15:34 AM","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","0xe21f4c8ff53f790714f70e96fcf685aa0e0b9b58","10" +"0xffd8f9779163bd0d4469910d36a8fd9c40183599f613ac984fe993e9b4d4b0e0","4080809","1501157424","7/27/2017 12:10:24 PM","0xc0435dced65f0858b32b43278af293c21680bd98","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0x60028eec5a619a5b782ef56fb8beb14241102049bee4967d67f887b1c59c5e41","4081387","1501167409","7/27/2017 2:56:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x14af12c11fa2fc702add3a5f65143bc1158871e4","1000.000688698" +"0x681151d815318ce3968f682c54a0e577cbaaff2de69213d2b76d4666f54a840d","4081918","1501177469","7/27/2017 5:44:29 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x9a0d22289287c6676f147ffd77ba3c70b42375658a9e766f2df4f0a69588441e","4081956","1501178313","7/27/2017 5:58:33 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x855b3eb899d9dca24f70cfa8466442859994bf5a774c5a96b313d9dbfe3af18a","4081968","1501178740","7/27/2017 6:05:40 PM","0x7adc303097bdc1ed2269a1b0569ac165c9585a42","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x7b2ad0ad86439116463d08de5709671ba5f18eab2cb5b610cd3181e219d928ac","4082863","1501195369","7/27/2017 10:42:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8988156d003068f226aff6d4abaf8fc880a84c47","150" +"0x51730e94cac9a4c541ce79f3250e6e75eab855bb50f9f2455436f6865787fe31","4082886","1501195683","7/27/2017 10:48:03 PM","0x8988156d003068f226aff6d4abaf8fc880a84c47","0xbf29685856fae1e228878dfb35b280c0adcc3b05","26.763" +"0x3d426d6cce94aef444d7ea6af626ddfc1918d2481eb3609a9d69524d399e8858","4083526","1501207298","7/28/2017 2:01:38 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x32eee22d8de5eb05a2ec8a4d6513517708c7bc04","206.895" +"0xa2ed9ef066ed985d7607d25b96263b8c690dee155af45e7196231ee7d60d0637","4083568","1501208070","7/28/2017 2:14:30 AM","0x32eee22d8de5eb05a2ec8a4d6513517708c7bc04","0x14af12c11fa2fc702add3a5f65143bc1158871e4","206.895" +"0xf64f619f197e1b3274b0a564da42757371eccc5691be95211b6adbfea72e3f0a","4083718","1501211034","7/28/2017 3:03:54 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8988156d003068f226aff6d4abaf8fc880a84c47","31.763" +"0xff383541580d55950fce21a4d387460f0deef45d3246bd29cf7a2434b2e90169","4084210","1501220190","7/28/2017 5:36:30 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","20.8" +"0x2fee7d287fb06dfea13f37309b80170c4fb845b6010d24bd3d5f7d197458d865","4084314","1501221953","7/28/2017 6:05:53 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","20" +"0xba4aa865b3422068d43fc6f971d434d887344c6fc92257a0eac25b16a9146924","4084362","1501222905","7/28/2017 6:21:45 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","950" +"0x739209de2e2cc336ac05dc7a7f4d015b2678538ab0ef5ddd83b64785c95bbde7","4084372","1501223199","7/28/2017 6:26:39 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","21.8" +"0xeabd7fb4f45800937818742be4dd254a8cba1e6d00196a8a2a61064795304805","4084372","1501223199","7/28/2017 6:26:39 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","21.8" +"0xb5a1ef6af2e078488c1b75c037d3e776ecb9933bec0d562ae28edccb1c05e3eb","4084389","1501223426","7/28/2017 6:30:26 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","21.8" +"0xfc07592dd9b4d8a37087572ba2841952218bf4ebf41ba4d6ee8f8c3101b3c6ee","4086340","1501259897","7/28/2017 4:38:17 PM","0x457ee0cc68a81323162da8e917bcd255e0b3dcde","0x5b49ea5eb7ff3eab10bb20e7281442707aa833d2","10" +"0x0cd3a081cf43ec5a4e1063140740385777c47c04a53aca7e1e7f153b1b82ed45","4086868","1501269720","7/28/2017 7:22:00 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xdfaa501121c0427e452258377f4f90f9e8aac6e6546f7966943c2617ee56ba9c","4086993","1501271920","7/28/2017 7:58:40 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdbb13df9c7435fb2f7d0b32685d25fafcad09ae7","990" +"0x1f2c333f6e7336a8d1ff0757ce29b83abec2d2f07d15468f664eadeabc8d7011","4089037","1501309683","7/29/2017 6:28:03 AM","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500" +"0xe1b5bb2d23f171b5ebc54a8be4037fb2b444bab8733da791266997d488dfab13","4090038","1501328599","7/29/2017 11:43:19 AM","0x01b2f6622b0815194b805df29b053c13a75f7363","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2.1" +"0x72dbe5184d7d35f57bec1b274e0f78fdb9890ed94db35a782317ba12316379be","4090041","1501328657","7/29/2017 11:44:17 AM","0x01b2f6622b0815194b805df29b053c13a75f7363","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2.1" +"0x1d45092e34018de1b66fbca6ad2c6280c89cc28f90ef3db29fcfc5fd29f871c0","4091974","1501364334","7/29/2017 9:38:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","1000" +"0x95564da8b1abb9c80fd7ad57d6b255ce9488be2447ba39c66b4a79cf3c313295","4091979","1501364459","7/29/2017 9:40:59 PM","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","0xf684e8997311e988cd89e41a4cc91f4166e1677e","10" +"0x61ab110d97c8309cad22d3ed8c971f3c8e6bc0900948dd0a5f42469346bbe2f1","4091985","1501364618","7/29/2017 9:43:38 PM","0xc7f69616492dc7aee96fea640fb99e6fdfd7ab52","0xf684e8997311e988cd89e41a4cc91f4166e1677e","500" +"0xfa797c8f493ca527957e2079066b2a55d574bf09ea65f6ac4ff6b5ea81492df8","4091985","1501364618","7/29/2017 9:43:38 PM","0xf684e8997311e988cd89e41a4cc91f4166e1677e","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0x5203239e2a2d2e5b45a4409ff8fa0199dce2e47f5697b88c38223302f35b0172","4091987","1501364676","7/29/2017 9:44:36 PM","0xf684e8997311e988cd89e41a4cc91f4166e1677e","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0x06aa70251d3d496d4c1b81ef1d2861e93cacc6fb15adbb355eaba3365994d1ef","4092473","1501373143","7/30/2017 12:05:43 AM","0xdbb13df9c7435fb2f7d0b32685d25fafcad09ae7","0x4376c8e9a5d4c9bb994761bd30d106eb378a33b4","100" +"0x4e1f6c485bb7880a6f9d481fb60036fc523ea5dd398831941e03a2bcdc83e654","4092800","1501378804","7/30/2017 1:40:04 AM","0xdbb13df9c7435fb2f7d0b32685d25fafcad09ae7","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","890" +"0x2cfe593c6a5b7394083d66f7097d1759c323d59416a03f31e4b8484bbf6f624e","4092939","1501381138","7/30/2017 2:18:58 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","300" +"0x4ce77ad81b0b8cc31ee78ce510a7240c2643f9e188f3e46276ac2064fb007ab2","4093107","1501384344","7/30/2017 3:12:24 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","5" +"0x13f6fbf7a41c5b13f2dda041a02172888300185d294d270a6bf4f73edfcf0741","4098562","1501484862","7/31/2017 7:07:42 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","1000" +"0x9fcd00b39fd5c35780fff8778dd62e3d5851ea2a79cbf7f5930a353b6aa8185b","4098669","1501486887","7/31/2017 7:41:27 AM","0x9f24eeb3cba38b77ce6e230f9c5cb0f249b95da5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","400" +"0x5bd5e727c35ef426967a0a957fb8702b4f2e528b6e71c2950d48edfff23fbb2e","4100543","1501521922","7/31/2017 5:25:22 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","16.666666666" +"0x0180c9da54729242b89c5f89f96a1751e5bb90b037b038eeb3cf2d3abb2c2356","4100569","1501522290","7/31/2017 5:31:30 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","16" +"0x60a1aa2fe63d44ade4feebe0875a8eeeea5cb07a763f265a3a3bda5a892a05f7","4100575","1501522445","7/31/2017 5:34:05 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","141.666666666" +"0x18090a2a4b6e40646396dda2a2e8c0a7e645cef2796cef9e4e9e0f7c8a4a07cd","4101348","1501538556","7/31/2017 10:02:36 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x5a1706fdb218f5aeb405c5eadbefcb0babab5222bf67c85a95fafe9aad54a477","4101686","1501545442","7/31/2017 11:57:22 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.002" +"0x503c84dc69c71c22ae1e784fbd7c0c47c45711c5aefdae512dfd34f90473cda6","4101881","1501549334","8/1/2017 1:02:14 AM","0x14af12c11fa2fc702add3a5f65143bc1158871e4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x2f42282b043c01b6d93d40031ca1b606563344b4f5f51012df2701230b805911","4101900","1501549789","8/1/2017 1:09:49 AM","0x14af12c11fa2fc702add3a5f65143bc1158871e4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","206.895688698" +"0xd825e463d52b0b673d119cbf2865ba2774c40ecbab6752037b745c15539f08c9","4101945","1501550720","8/1/2017 1:25:20 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe9fce9d03d337cb57b78fa8223aa60d53f3b5c95","1" +"0x0ee07a71a73fb117db3b68b58ec22f721b0886b865d1010c3fb35126a985a3f3","4102891","1501571547","8/1/2017 7:12:27 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","1100" +"0xb772a1ff84661801647de50c9c5908ad856812e272a6b1e277778366e97dc0b6","4103509","1501584518","8/1/2017 10:48:38 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","5" +"0x2a6b1fc4cb6b22869ea342c172eb2feb099357198596b244b8ca75df13dbf370","4104374","1501601948","8/1/2017 3:39:08 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x455aea28026b803887edd57677d9e0ca782180dba6b3978075ac706c37b58a94","4104891","1501613694","8/1/2017 6:54:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2339c6f3b957a03f6684385a854ca7a414207929","8000" +"0xd96c03ea4e7a78130c69744dde58839b3d0676791873f0e01fc92212bc0cdc59","4105647","1501628508","8/1/2017 11:01:48 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xe4c52b031282b1043d1b8d4b472d2f359995a952e3340b5293691c336f76d85a","4105686","1501629670","8/1/2017 11:21:10 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","30" +"0x8de0967ef6f8a5494f7ad872bd1ff0fe7529f9d947f61463a732a85cdd7fc652","4105924","1501635173","8/2/2017 12:52:53 AM","0xe9fce9d03d337cb57b78fa8223aa60d53f3b5c95","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xd3c849e6af38fca03a5af1c8de987a74d173b3a90c44778407f39bf255e96033","4108720","1501695271","8/2/2017 5:34:31 PM","0x8988156d003068f226aff6d4abaf8fc880a84c47","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xbf284dae445734e6c2075190d3b720c7c66bf85d38891df50d7a8d155f4819dc","4108901","1501699105","8/2/2017 6:38:25 PM","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0x9817fbaede0284151a1447beac2ff06125a9445a07fcbbff78948bb68609bb31","4112694","1501781082","8/3/2017 5:24:42 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100000" +"0xec916a69a50f7279e1267e1b4723945e2f8ec98b303ea2ec3c5daa970e700c52","4113315","1501795012","8/3/2017 9:16:52 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","62.252" +"0x8c9dece76e1bf674d6cef7a1eaa438cd724bc4436b913cbf9fe5f38f468e3946","4113320","1501795153","8/3/2017 9:19:13 PM","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","0x6dde54e205be27704ee69fb6f7a99441f2f1a5bc","62.252" +"0x69723df40aeae28fd32fda3b89c05a9e2cc8d2483eff81bc3730f18d020b888a","4113432","1501797475","8/3/2017 9:57:55 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8988156d003068f226aff6d4abaf8fc880a84c47","10" +"0xc117c0f94c975ebff25be71c4b526da8d455aaa68ef732de49ff45541014608e","4113993","1501808742","8/4/2017 1:05:42 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xa7e4f8b9fa52c6b94826b52520b4918b850ede8507db9c855710e4684f181a4d","4115226","1501835736","8/4/2017 8:35:36 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","50" +"0x98edabe77c90efb0bc16cb17ec955953d582bdceefe289411004ec6aa952ea91","4115250","1501836126","8/4/2017 8:42:06 AM","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","0x6dde54e205be27704ee69fb6f7a99441f2f1a5bc","50" +"0xe2212dcf99573ea3b8e2154b10fcd43b69f3a49cedb4fa23b7232d5c75b7d6e2","4116156","1501855419","8/4/2017 2:03:39 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x5d8da62f974b30dc19d629b51d17f0d8064ef3b9","16.666666666" +"0x5e696c4563ee9081b3e9faae1b5cd6d66d80fb715ad89eab931c9992155777a8","4116289","1501857993","8/4/2017 2:46:33 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x526f731712d4428e4467ca1ce5ad7b5a4dce57d252528399165b9283f177b400","4116617","1501864799","8/4/2017 4:39:59 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","3000" +"0xd27b26ba31549a2cdfabb2749997f93d46382ecb2f6aa014b383c6692bc987c0","4116621","1501864896","8/4/2017 4:41:36 PM","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","0x6dde54e205be27704ee69fb6f7a99441f2f1a5bc","3000" +"0x44d8134017d3624e9e12eb004ef2b6cde416b5cafc8a7ab415683656774fcbb2","4119116","1501918182","8/5/2017 7:29:42 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1700ee184823584631bb00ada7b7afb3802fd081","30" +"0xe88f6a73219a89c01908de2a575865c022b92fc14fbd7e93ef6b2cbfe56dc922","4120342","1501944892","8/5/2017 2:54:52 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","100000" +"0x7f09521c93e169d504cb6216e67147e46872d5580afa5179fc44d05ac16c2c30","4125720","1502059752","8/6/2017 10:49:12 PM","0xa10cefa3d041e48d2889f34c0341560929b43e39","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0.12" +"0xe016493e5127a60a8a70ea2581e41c3dbf83e8efe282882c216c67c48d0e3299","4129482","1502139140","8/7/2017 8:52:20 PM","0xff723447d3a4da1bc4bfd6ee7ee112dc6bf1dd08","0x276945229535f83f7906b3a210b01a1060ffb0ae","350" +"0xd87d73d8d4c797ad08c2b4f1036271f249596f735be8f29ba6722126523d87ca","4129604","1502142042","8/7/2017 9:40:42 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000" +"0xdbf23d42a7209b5a23f2c29f6f5753dbaad54df899b6d1443049823250f1393e","4129792","1502145972","8/7/2017 10:46:12 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x8fffe2b48dbf0135cfa51677adf2a630426fb67a6a1699adee7bf60fcea40282","4129859","1502147397","8/7/2017 11:09:57 PM","0x15dedd9133da5b0d01e93cb897b466a714902f75","0x276945229535f83f7906b3a210b01a1060ffb0ae","500" +"0xe8abc6aeac2933bd7b25be05fdea083eb53bcf2f270f197e5be5731fd943acec","4129935","1502148900","8/7/2017 11:35:00 PM","0x8bf97c47f4e8e95e3220d75f3438ec7b54f002d7","0x276945229535f83f7906b3a210b01a1060ffb0ae","420.794621311" +"0x645c4086a8484741102d9306d61038f1139421793486ebb937e48f898adb1cd1","4130548","1502162392","8/8/2017 3:19:52 AM","0x8988156d003068f226aff6d4abaf8fc880a84c47","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","31.763" +"0xddba8d2302709022ae04157b42ecd445108ce6d892a6abf74235470ab6232d35","4136794","1502293830","8/9/2017 3:50:30 PM","0x78b0e4933f5b7d90102367e28efcde256998411e","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","1400" +"0x6ee65accd617f66ae077db78520f30c8b25389352b18f4e6edd7f9d8911382de","4138146","1502321942","8/9/2017 11:39:02 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xf20fe329d67dcb8a462f47792da34e23319552e5ca27474fd5909ee806befeb4","4138893","1502337850","8/10/2017 4:04:10 AM","0x8988156d003068f226aff6d4abaf8fc880a84c47","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","199.999861914" +"0x9cb3a856387a863044df3188ba30abbf76931e7765fec1fcf466399f82fa089c","4141874","1502401272","8/10/2017 9:41:12 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","1000.000826959" +"0x13249c985a7b043fa6a33a951c60868fb4315c18d938f30dc3f314e696b44fc0","4142043","1502405295","8/10/2017 10:48:15 PM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xfb22e9c5a24ca2abba500ae94ea77d923b895ef5f10b6533f3121c6f5b693d3d","4145766","1502483978","8/11/2017 8:39:38 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43130148060f177c78825cbd5a0d0a18879b18bc","1100" +"0xfbc47b526477f618df2c416da46b39c839f7b6aebd381d143b104a6583e155dc","4145782","1502484323","8/11/2017 8:45:23 PM","0x43130148060f177c78825cbd5a0d0a18879b18bc","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1100" +"0x9a2c53681f935cc45d9ac7aa27a42756a1944c054ece816f41936197a88bd905","4145992","1502488484","8/11/2017 9:54:44 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.008" +"0x71398d433b8b83b1b7c62d6ac338ab487c8de88e2cc6ea58344f2959a0b7361b","4146042","1502489912","8/11/2017 10:18:32 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x43130148060f177c78825cbd5a0d0a18879b18bc","750" +"0xd9cd7ba34f82a568b5ad2a3edc71a735811b0dc4da6fe24b756192f4da3fc474","4146188","1502492676","8/11/2017 11:04:36 PM","0x43130148060f177c78825cbd5a0d0a18879b18bc","0xbf29685856fae1e228878dfb35b280c0adcc3b05","750" +"0x25e31b9210647ef0accd1e49a904f017c355e3cea79a40d0d28f5ba3f065c144","4146273","1502494526","8/11/2017 11:35:26 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0016" +"0xa4f78da3388ce7ea3ede06bca7751c92c692346ac9ee11ea3d006bf5303ab88c","4149982","1502572080","8/12/2017 9:08:00 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x66a4e99923ff534c41936d0b28a13980b0a942f0","1990" +"0xd7a5cf38aea2e4a6c1564b7aef6ff649ea7a301134f1080ae4f07305d67196e4","4151069","1502595815","8/13/2017 3:43:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","225.361" +"0xffd1a95b075703cfcb2519ca409cb669dbab338876e33072eed770401d47ab58","4153191","1502639776","8/13/2017 3:56:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2a1bdeeccbd37d492cb022fc9a20bfb0fd2e35e7","300" +"0xdff81b5475d3237a734ac37507e51a20ba79861ef1dd7d89a3d5161c4e521cad","4153504","1502646843","8/13/2017 5:54:03 PM","0x276945229535f83f7906b3a210b01a1060ffb0ae","0x2b80633452a773159fcccdd31e538d8e7da49d67","1270.794621311" +"0x0914fc2541a991f59e8831b0c47b3d242183297983b7ac63c01c7b18b1f9e85f","4156218","1502703039","8/14/2017 9:30:39 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc5ade67e26741e927bada0d3201286054c0a3cd0","4999.979909004" +"0x13f71390cacda47e2f0dfb9dd0a4a21de97e30c8c2ea159882a272562206fc06","4156227","1502703199","8/14/2017 9:33:19 AM","0xc5ade67e26741e927bada0d3201286054c0a3cd0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4000" +"0xd979b0c1fdb72fc7aac6cbcf7422d09c38354228a95b2e6261774c9b86b475ae","4164567","1502877305","8/16/2017 9:55:05 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","1000" +"0x87af698f0a00dd5b9d268f777be12059220091826d9e0b0d183580f59c9f01d3","4165265","1502892425","8/16/2017 2:07:05 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x4f9c4158fa287caf2f167451670eefabfa02110f5d9e082f32b8eb6ccc7451a7","4171334","1503018152","8/18/2017 1:02:32 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x093610f7b70c9809b12c84011ac0476b76715c2b0d21567ab2463e8eb1d7e5be","4178857","1503173543","8/19/2017 8:12:23 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x77d2dad3fd05120ea977e656a99bf3d65d85d03f","227.995" +"0xc93377b8b60ba7d9f63f281ab9a55b0131b56293f966935c4dd6baf401527a95","4179029","1503176858","8/19/2017 9:07:38 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x77d2dad3fd05120ea977e656a99bf3d65d85d03f","332.325608487" +"0x190a30113b1b917409213bb0ec29f7ec94ad5a83787e1d57116189b672babfce","4181387","1503226303","8/20/2017 10:51:43 AM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x579e37ae04a895e3b8e2339d7388e21c488217f2ac09a1af2d475891fe581bd3","4182034","1503239403","8/20/2017 2:30:03 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0xa757a7e2bfb675effa521626472315755807bc4aee2cf4e5896d32cc3ff62a9c","4182043","1503239581","8/20/2017 2:33:01 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000" +"0x9f9a114e22df70a226dec565000200d68a398525605ef8b17802442320ce4686","4182061","1503239962","8/20/2017 2:39:22 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0x3f449dbff7fb918f51d6f2c14471c7db851c2df6b97b1049a422b718898dbbcc","4182068","1503240086","8/20/2017 2:41:26 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0x58daa635a5e29a7249ac2269f5bd826fb344f0907c59cb6fb1938a7bd40d3131","4182339","1503245461","8/20/2017 4:11:01 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","13202.944140526" +"0x25e8dd238da9325e8be67c5d04b022cea79c1ecc6e4df9dca42d53167a6bbe4f","4182355","1503245871","8/20/2017 4:17:51 PM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","6216.401" +"0x896f95c22ac601a8e98a55536d6a8a83ffd9f12f8574463da1bd37bd56cf831a","4182859","1503256640","8/20/2017 7:17:20 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","10969.144760715" +"0xa76716158c8b6720ac57117bb4b214a53e15f98d39456ec022d151afeb9cf8aa","4182914","1503257883","8/20/2017 7:38:03 PM","0xeb19e912a51eb267cd423dcf0934d1a7f971ad66","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10969.145" +"0xba858b19c1a75df5ae12cbb36f378b606d2bd98306c939822d6bd63f79a9ce39","4183480","1503269506","8/20/2017 10:51:46 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50000" +"0x9d7f1eea2debbac50ad5d9d7573ea4f9a7ab01d2699d47d0c64b3c59324efc8d","4183879","1503278232","8/21/2017 1:17:12 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x02b05e7182d9ec84d2b16814db9c2cd82cc13eebca708c2eb2673842dad1442b","4184572","1503292696","8/21/2017 5:18:16 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x98bec43abc83b87064091b2a59ea3b76d020687f151aede43d938395a210c42f","4185131","1503303637","8/21/2017 8:20:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","9969" +"0xddaf6544dbc33246f042c7563e9589e02c2219451e8c208ab7f9011102903569","4185143","1503303842","8/21/2017 8:24:02 AM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x1bf546e7e42ebc76c270f84dc9f5f3e2e8e7276d","9969" +"0xb1b33194ab33affff97d604bd84c8428b4a78c5e3a7d747eb2614cd50f177ac9","4186172","1503325116","8/21/2017 2:18:36 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x3294c9db56b3faf9620e94a721b1eeb52d224823a5d0cc0d0ed5b5ae0b1aaa5d","4186293","1503327851","8/21/2017 3:04:11 PM","0x1bf546e7e42ebc76c270f84dc9f5f3e2e8e7276d","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","1900" +"0xbdbad30100fab0bb6a96b7b2e7ac04556612d65273f9f2c7f7550dde929442b3","4186307","1503328077","8/21/2017 3:07:57 PM","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1900" +"0xff12985c7c2b16f76f8846477981e8282ffb41abcd54b3a20c44835b139b7432","4190800","1503421139","8/22/2017 4:58:59 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd24082e884c0c5541dce182010053941ce6343bb","11217.999815959" +"0xfecb9a21ecf3a6f7e19a00f0080d1ffad0a7e9b440a2f2e5460f1d9c5cb7671d","4191191","1503428822","8/22/2017 7:07:02 PM","0xd24082e884c0c5541dce182010053941ce6343bb","0xf49600f6675134cd402ff4e48060b51fe5a6f9e9","10000" +"0x1f84f361588fa5bacad93c6f913ed75038413d55175e1880b7a5d94b3d899bdf","4191775","1503440085","8/22/2017 10:14:45 PM","0x66a4e99923ff534c41936d0b28a13980b0a942f0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","90" +"0x208fb0cade1ab5c5224439f45c8265380a9ee100a337d9714dadad5bf8b161ed","4191976","1503444542","8/22/2017 11:29:02 PM","0x1bf546e7e42ebc76c270f84dc9f5f3e2e8e7276d","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","3000" +"0x73b8c8168e7ab8190e191291a3ac0c57a23c934569b80173b2b73622b6eb215d","4191989","1503444774","8/22/2017 11:32:54 PM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3000" +"0x6ee161aa01016383e377d33edc30fa0c6b794d4de424133c5b5e39a88569b3d3","4193416","1503474056","8/23/2017 7:40:56 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","3000" +"0x2cf972442e654758be497b0ac71851768ab48eaae7710810a4231f2dc8d36260","4193566","1503476897","8/23/2017 8:28:17 AM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3000" +"0x8364065ea3899c8b7494d8fcd339e35109b1bfb2286e41f00d375c8e234cce2d","4199169","1503592047","8/24/2017 4:27:27 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x83d226a75f53f25ef439b1f43fd411ba534947983c7873f9bea20e392b952120","4199561","1503600433","8/24/2017 6:47:13 PM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x7662e6d3bd66a2f4dd70a2c902c6de2d771d563e","6870" +"0xba11e2733aa42e30cfc02ef4407abf6aad7ab7d5f4b6c20fffe187d9aed76974","4200034","1503609672","8/24/2017 9:21:12 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","20.56191" +"0x6dd95f0ab59284a80af4a893009e52d4763b8f36f099a8a52bbc7f67b368145d","4200039","1503609848","8/24/2017 9:24:08 PM","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20.56191" +"0x97a6b720eb61ad22c09dce9a8b3317f7e2ded0470b9a2d7ae057c84ca217a278","4200067","1503610495","8/24/2017 9:34:55 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x658dd9d0049d5db2a27bc033de29020d764033910079abea2869baabf46266e9","4202988","1503680356","8/25/2017 4:59:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x31d807e1ed35f84248341461c6a2c44db722877b","1.111" +"0x9ddee002730349a48483c2742ab6e4e051b774a2c6487b245a26c4f2edaf466b","4202994","1503680506","8/25/2017 5:01:46 PM","0x31d807e1ed35f84248341461c6a2c44db722877b","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1.111" +"0xcf669889024aaef1fc7c5bbf13a573f3fa982629959cbca071b5e2d2bc0ee4f3","4203748","1503698913","8/25/2017 10:08:33 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.002" +"0xd389c453a2961db22357cd96e8426ea6d192e997ea96ed9d49b8e5d3333815fd","4204134","1503708516","8/26/2017 12:48:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x31d807e1ed35f84248341461c6a2c44db722877b","11.19894" +"0x08c13d814cd8cac7ab57e79fc5497259afd0bf2ba85ac92ad93e4e1fa3a04376","4204146","1503708819","8/26/2017 12:53:39 AM","0x31d807e1ed35f84248341461c6a2c44db722877b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0xb3f27048c5830a1b6e30158d0461b383399e104f3c911c4177d4cac3b7a151d1","4204553","1503718606","8/26/2017 3:36:46 AM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1950000" +"0x63725d510927de795d01ebe0efadd798cff3f0df9483e2753bea605de98d9b81","4205744","1503746997","8/26/2017 11:29:57 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xb0356e019469e03b0e420c9097712e977304f096","800" +"0xf5d8257182479fe7d1c66a2a2b206ffc0b1d48cc851e6147fcae3e41aeb71c27","4207877","1503800877","8/27/2017 2:27:57 AM","0x6dde54e205be27704ee69fb6f7a99441f2f1a5bc","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","3112.252" +"0x5202eac27038ad03394a38a22dcff4c47567ba1b5e2ffe5b7d39cf127880e053","4207885","1503801101","8/27/2017 2:31:41 AM","0x8b054206be33aa74fdee8daa3e340d63a4861c0e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3112.252" +"0xa0c61dac5fa3a2a8033f44ae0c534db0cf7c1428c9daa1a62058e2046be7ad03","4209704","1503845576","8/27/2017 2:52:56 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x8836fbba64cff6a7f01fcd5d020f74e2e43564bfb56c142c1df5ff1d374c9b4e","4209727","1503846073","8/27/2017 3:01:13 PM","0xd24082e884c0c5541dce182010053941ce6343bb","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1217.999815959" +"0x1b0d8eeef5c95ed9b63b3ed63d999c6f2b389c61d7fe88027523b79c80faf31a","4209777","1503847442","8/27/2017 3:24:02 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd24082e884c0c5541dce182010053941ce6343bb","1217.999815959" +"0xbcd7b1175061c33b73b8263dc971e6c8c76dd932c1e70cf5b343392e1d8bbdf3","4212613","1503918260","8/28/2017 11:04:20 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x734e5bf182d6b1a74e68b9b4b850208180779a1d","55.383865572" +"0xdd029a65048a5f96c1319f1b400f30b1dc57a29516619e68c07d3830ee57cfbe","4212666","1503919540","8/28/2017 11:25:40 AM","0x734e5bf182d6b1a74e68b9b4b850208180779a1d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","55.383865572" +"0x3b5adc935d9cb3d91e01ecd283e02438d99cc5647147fce3b6a101c7d38d8003","4213684","1503945222","8/28/2017 6:33:42 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","3" +"0x492ad27b0f5fca50b34695f82a3a8c23e2a35a8ecc6d2276206dfba533526e3e","4213691","1503945419","8/28/2017 6:36:59 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","100" +"0x8d4dfa46bd8c4768351920a94df482ba1cb7323ccf5d69589e64ce50af721678","4213701","1503945598","8/28/2017 6:39:58 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","884" +"0x83bae34aacb5a9c1cbab802d579a02ae1ff94293d0b1661b51e40f1c4cd70edd","4214064","1503954598","8/28/2017 9:09:58 PM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000000" +"0x0812b78d117e3916ddbbd346850a50ed6cb8adf0459d95aa3273dcc8e671fa8a","4214525","1503965443","8/29/2017 12:10:43 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xf88e8ceb4a3a5a928586067ab7a4837e2b1fd2ee1f8db7e260c058588e16fbc5","4215758","1503995845","8/29/2017 8:37:25 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","649" +"0x8886453f6ab9cc324d8059fb06e357c7fd827d80eb64da35fd903144c2315ac9","4215836","1503997944","8/29/2017 9:12:24 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x951eb1101ba23381ed384ddca5dc2014364811e3","2000" +"0x32dc62a929c2dff033e0c7252495517959b34be0c254f45988db20f90dd8aca7","4215892","1503999155","8/29/2017 9:32:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","775.374" +"0x447a51cb949e1e689d1a9e459dd1bdadd9a8c4fa0f2dfe6ac6507bdf55abb2d1","4215900","1503999333","8/29/2017 9:35:33 AM","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","0x1db2d944a9185a49bb4070087f669117acb86fd3","25.574" +"0x7c240b1bbb96bd52c65a5b0814dd2cc59c9326ba5cb5fbb2220bbfe3dafd394b","4215919","1503999822","8/29/2017 9:43:42 AM","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","0x1db2d944a9185a49bb4070087f669117acb86fd3","749.8" +"0x9eb9091fd86441564bc669cc6e11ff83852f32d7c28bc4e28951418677965fd1","4216628","1504016785","8/29/2017 2:26:25 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","9658" +"0xb4911e6863d2632d2ce73f80daffa05a02d8247d92170570c444582ed8452116","4216711","1504018701","8/29/2017 2:58:21 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","80000.01" +"0xf544c4d31f63df711b499eb89a6f39113a3861bd74836fddcf42dbdabeae8c40","4216739","1504019533","8/29/2017 3:12:13 PM","0x1bf546e7e42ebc76c270f84dc9f5f3e2e8e7276d","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","2500" +"0x72bdc8aab235c115ee9908275a79a2eb6804f69d5c15fc686f9e9b0d529a996e","4217267","1504032255","8/29/2017 6:44:15 PM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2500" +"0x3edb6acb3cdfd409dc41bc84a4484f79d1115707027fa4f84b49a4d67e023708","4217616","1504041512","8/29/2017 9:18:32 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","2500.25" +"0xb0f01b326803637ff349c4ea9529329d12c18f4c1ec3968e55ef4f7512508a5e","4217621","1504041630","8/29/2017 9:20:30 PM","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","2500.25" +"0x2ad9fb6f2c0cbba87d929e495e62974a31600fcc4b5f682e82980816b6b19c4c","4218229","1504055913","8/30/2017 1:18:33 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.004" +"0x8acba0610390c7b1aee4ef1b00d25e81741502bdb04b193788feaa487987a9da","4218685","1504067199","8/30/2017 4:26:39 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0008" +"0xbcb28cd5f7e9ae01ef54c1b4cbf294a9af3b187112f2c0b077e8e71840e33527","4218858","1504071423","8/30/2017 5:37:03 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc52357d707c1ccde1c3cbca101310d5464491365","30" +"0x95ff01907aeb2b0b3c69f99d64a18890e70c9c0729fd3c4c7105752f9c249f7c","4219009","1504075058","8/30/2017 6:37:38 AM","0xc52357d707c1ccde1c3cbca101310d5464491365","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","30" +"0x998e1326f02c9f93e3de0d737a6cfe60d092b939f754173cd2d2a8bdcfc8d44b","4219126","1504078187","8/30/2017 7:29:47 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc52357d707c1ccde1c3cbca101310d5464491365","3" +"0xb34356843d89dad78ca2001742a11213d3ab90377f826e6aae280010a87869e2","4219138","1504078433","8/30/2017 7:33:53 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc52357d707c1ccde1c3cbca101310d5464491365","27" +"0x37effdc08a56bdcc2bcda78ec66586a66d5f7eaa588ff074c71f69f2f279e869","4219337","1504083433","8/30/2017 8:57:13 AM","0x097501c95264ad3204159efaefdc5820783dbeae","0xbf29685856fae1e228878dfb35b280c0adcc3b05","150" +"0xfc859ddadd3a170d7fe7f94210849f0b02d2a9f270a8ecf15cf7358a50d6bab5","4219390","1504084709","8/30/2017 9:18:29 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","833.757983584" +"0x410a0859a4d6773fe14b118e9aaa36d28bf416532e4550ffcfab6ef86fe62632","4219478","1504087043","8/30/2017 9:57:23 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc52357d707c1ccde1c3cbca101310d5464491365","126.28594" +"0xebe9d7583c5d71fea943dec209c668ab8cd400df76da3facb19368b4bdeb3aa5","4219484","1504087262","8/30/2017 10:01:02 AM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100000" +"0x9676bb1f629ac9ac9e1d7f1e51a0c82966522ca5bc0141f461454a37f45a1d86","4219706","1504093003","8/30/2017 11:36:43 AM","0x31d807e1ed35f84248341461c6a2c44db722877b","0xbf29685856fae1e228878dfb35b280c0adcc3b05","6.19894" +"0xe52f8a1654756b00d1e0fff1e2191dba99cc021c06cc4989b9e236955a631a4d","4220459","1504111526","8/30/2017 4:45:26 PM","0xc52357d707c1ccde1c3cbca101310d5464491365","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xf48ba8eb8492e002b96b289ddbb7fb9613e76617ba081ed3d485d83dcb913f53","4220520","1504112838","8/30/2017 5:07:18 PM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0xed2d370174652281610fc590d798c40c27ae1d32291ea3275234cdbd056cd95e","4221231","1504130429","8/30/2017 10:00:29 PM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","300" +"0xbc87252a8ccc04bf364a0a270cc33cb892b4762f1a702a0087a8087364a3b16d","4221233","1504130475","8/30/2017 10:01:15 PM","0xd5ea174f56e3c2ea31ccfb8a3ce2b7fa21b405d8","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200" +"0xe781da12f1781582b3bd40508971421df0d053ce936b8ffd17ede4e739074413","4221879","1504145625","8/31/2017 2:13:45 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xad09e337d7045d117957b12f90fa139abab2d2027f501d1597f10d9e7cb6df08","4222186","1504152964","8/31/2017 4:16:04 AM","0x1db2d944a9185a49bb4070087f669117acb86fd3","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","5.374" +"0x0a658ad06d544511ff087adbf2b51102ed659f1a3fd9c843a24b3b8671c69182","4222206","1504153392","8/31/2017 4:23:12 AM","0x1db2d944a9185a49bb4070087f669117acb86fd3","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","70" +"0x200abb305a3f6965fb1a3002c641232eb477b3b647c7e635ac50661a03381f4a","4222206","1504153392","8/31/2017 4:23:12 AM","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5.3" +"0x827b9522db4fdd547ef9f2573a58811a8fba89684c44c42aaa1b284647adf092","4222353","1504157182","8/31/2017 5:26:22 AM","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","70" +"0x06e25fcb344ab9a0449d04a5860a96eb03f5be043c2ee7fec6e21d616d78eee2","4224638","1504214345","8/31/2017 9:19:05 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa30b9bc2f8d6cf8e46cde66c666991ea1eb53d0e","5" +"0xb9674f6e1c48f449e88803f6c1f1a83954d627487e13822fff8a1f42bbfc0d1b","4224720","1504216447","8/31/2017 9:54:07 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x3de17afe209057928271439ae3bf9dcffa9f1b3cb38311d255623c817fb3ee01","4224740","1504216892","8/31/2017 10:01:32 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x31d807e1ed35f84248341461c6a2c44db722877b","5" +"0xf1228e22216ef8c98fbc254b215162f24fb2ab463ff1d739f6c4bba3e5ca8bef","4225729","1504240614","9/1/2017 4:36:54 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","1145.836975376" +"0x349d4b52bd1874dd403a2df5448dc29c614731098bcbc860f6a9f8d3280808d8","4225881","1504244106","9/1/2017 5:35:06 AM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1145.836975376" +"0x92a09e642ba1f92b3cb8d346fcb58d90dfb94bd0bd24fd8553ae775d9e66beb0","4225941","1504245529","9/1/2017 5:58:49 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xff64f34e8511693e3dffa0e1fe037a6a65f3937b","18.182" +"0xc1f6b7d5b366c337fe0e9551136f38023eb50c79b0db3fb7538a0caca2872507","4226008","1504247315","9/1/2017 6:28:35 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x18a08366c318eaa6710bf13571b6ba72d00bed640886326dc1d805449399154d","4226285","1504254615","9/1/2017 8:30:15 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","1145.836975376" +"0x5991cd72f376eec32b7cc117f62ab84259b996a2acadec5cbe42e8389289127f","4226422","1504258033","9/1/2017 9:27:13 AM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1145.836975376" +"0x0a4272c4f1ed466672c6dda9c0ed5993e52f27927bf1fc2b36a8ce24283d9bf4","4228327","1504304820","9/1/2017 10:27:00 PM","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2.218E-06" +"0x86c5ab7bbeea478a418fc3088832a6d0b79a9fc59ae83e75a0f2490c1450c97a","4228346","1504305201","9/1/2017 10:33:21 PM","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2218.365337142" +"0x1811c7bfdf6497f3e4ec1a774f312db9055c3c3e6aca8d457cc486213dbd77a6","4228581","1504311035","9/2/2017 12:10:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","8000" +"0x3d6e2803a75718f68e04b322453bd9a406f97f7eb98daf0b0fc9982261158231","4228596","1504311237","9/2/2017 12:13:57 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x3b30129158fee103c179661694d47940d58d8185","8000" +"0x3c0be0660b696c66f3543cabc36e339f9f4dbbeb6b5da26ca0aca6f56ae8ad83","4231073","1504371962","9/2/2017 5:06:02 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","3779" +"0x539fe73dc756d719a103f51c2a7731d5aa2925334ea027a30cbe701388df3c7d","4232046","1504395480","9/2/2017 11:38:00 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0028" +"0x249dabe97c4bf98f52559ff93a5ba390b9ee13c90201e6eddce361077b444a7e","4233084","1504421280","9/3/2017 6:48:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","1145.836975376" +"0xbd682edff65652de1f9b2b9f3954e7599445bd7c8efe16c8b3eea8885c338bed","4233089","1504421383","9/3/2017 6:49:43 AM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1145.836975376" +"0xf8ccf1a3428c8fc653bcec5ec6cc8605db4f2bc5e8bea5302914c3810c8f1068","4234145","1504447060","9/3/2017 1:57:40 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","16900" +"0x4a0cd9b0ea1c022634395aa44d3a0d940ae64309483d8834cf2c6462e15e8580","4234187","1504448061","9/3/2017 2:14:21 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","16900" +"0x9577e8d7bd696a52fdb6d6dd5f3a530a051a30cf4ae4ea8d3b726d3e5436d489","4234835","1504463842","9/3/2017 6:37:22 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x9257967ac40bf901fca34813a924dd6eaf49078b926301000c6c43f04ecf2a0d","4235033","1504468270","9/3/2017 7:51:10 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","1113.190975376" +"0xc2ab51c24ddf0be717f78c393869b82b9491ff4735522c83f38d805e5f8aa9a2","4235063","1504468920","9/3/2017 8:02:00 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1113.190975376" +"0x165e3447646fb59dc728cd8d1894f42cc6a3947c18c610b68d79e8bdbaa693f5","4237346","1504524611","9/4/2017 11:30:11 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x91474fe2592b19d14904d91edc57a81072b47998","5000" +"0x2a3454f52911628287f18074db8f51b67fa20e1553a02ead820555cc2a15f67e","4237401","1504525889","9/4/2017 11:51:29 AM","0x91474fe2592b19d14904d91edc57a81072b47998","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5000" +"0xb21519fb88b94447cc31d44804df1f0bbff6d0ddeebbad704feb226d8a6591dd","4239287","1504572877","9/5/2017 12:54:37 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","450" +"0x16564bd9e901496681db4597a714150427ec5dac7dace421dcbbbad7426976fb","4239314","1504573553","9/5/2017 1:05:53 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","465" +"0xce17bdea48ae35dea6da31a4c00f594bd48c45e3eec2cd88614e45c0a3f1375a","4239365","1504574773","9/5/2017 1:26:13 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","2722.991558268" +"0x3122f0b65577712248ec54d3ea9a5770fc3e0f1ce59fe0088dc0afdaa63f871b","4239371","1504574906","9/5/2017 1:28:26 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x6330e828d7b19533a02cf38e0ddc7935acff4125546e2c478d14fe4b317fb861","4239391","1504575397","9/5/2017 1:36:37 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x57b00c981363c67b11e07eaa71364bf20e8025fe","4500.450592232" +"0x33d089742e5fa98bf59a01e6811fa6f5f3248d3c98225dad34b15d6033835224","4239395","1504575454","9/5/2017 1:37:34 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","623" +"0x65145109c7074441e3856938956c0b735ac3f93593afb9305050522224fcd938","4239879","1504587049","9/5/2017 4:50:49 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa56b9cc4629ca32885d185b6851934ae0cb5f23d","300" +"0x6b93a3df4f0dee76528f2544f6c4e771777dca8f0d553b7c7bc6ca3b3144649d","4239890","1504587267","9/5/2017 4:54:27 AM","0xa56b9cc4629ca32885d185b6851934ae0cb5f23d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","300" +"0xebf61800e5a04a8864dc82fbf287568944b69d6ffe779520d8825661772097de","4240630","1504605276","9/5/2017 9:54:36 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","99.99999" +"0x5e0cb60f5af5b90ef09461d6dcc1d4e8e7f68321782651d8f6f84d695e23adf4","4240644","1504605505","9/5/2017 9:58:25 AM","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","99.99999" +"0x065d9d12f253f6e5c0aa885f8740937a24a88c5bb3f9baba293db88f7ecbac05","4241987","1504638875","9/5/2017 7:14:35 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","17000" +"0x15f1d9a52f1f71535810cf3c18b6bf41f4a0e292b6d325de52b9486b2ba67355","4242003","1504639293","9/5/2017 7:21:33 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","17000" +"0xd4a0c8f6ba53ebf18dc7cbae7ea40ca57b58bca6232253d8fb918f55cc9cfdde","4242540","1504651595","9/5/2017 10:46:35 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x5c480599a60d8a047fb470d9eeaff21f410079205865ab8741d3e4dc0799c426","4242744","1504656570","9/6/2017 12:09:30 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","99.99999" +"0x7251044a9f884051e5c481ae451605d3c80d1401bfc625cd26321a7c8b9175a1","4245396","1504722391","9/6/2017 6:26:31 PM","0x7225633c13d3100a759984d3d3f19277ea2ca5b0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","99.99999" +"0x55f6cdc3666fba635ca1043aae164d73cb820c2f6467eeba9b5ccd118d0dc1fb","4250085","1504836114","9/8/2017 2:01:54 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1" +"0xa8352d02a0e515709568f80d922e9f893a68138553bc3cf180dc680e46036b8f","4251089","1504859939","9/8/2017 8:38:59 AM","0x2339c6f3b957a03f6684385a854ca7a414207929","0x22a2b6e8bdd4d109ecedc0786ef9d505bf0a866b","12058.018674286" +"0xc004037a13404c4580b604828fce9abc857406ded573aab2754955f7f5966112","4252653","1504897784","9/8/2017 7:09:44 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xe651d581b2e13e737a6e684f63a0d0f094f403117f4b9ddb62aa943fd0ca9c23","4252783","1504900611","9/8/2017 7:56:51 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa54ffa43d11698bc300d924781518b71dd10f0a8","10102" +"0xb510dae94f4caa657efd16eff52ac1cdfb397efe115097f7481d468b6f7db896","4254004","1504930626","9/9/2017 4:17:06 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","3000" +"0x9cc360379cbddd5922583ed6753d1d049a5d3fdd655c990fd64c678b94be7b15","4254909","1504952576","9/9/2017 10:22:56 AM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3000" +"0xc8dcc94147e1a014a4fa8a9b592f57ae834af63ea6b078c2360e6922fdcf5eae","4255048","1504956085","9/9/2017 11:21:25 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","4985" +"0x4a8258ef9982b5851d01ab962a152c37d8b7c18ee08331f8a45860950ff5768a","4257351","1505012170","9/10/2017 2:56:10 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","500" +"0x7ac2294bce14ebf9c232163b09ac334badefb81f545e473c1a60ad3b28363ce8","4257354","1505012223","9/10/2017 2:57:03 AM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0x31536957d4bc815968310663d4f712834e885f49d2fa9da4c4c6ec79cdc65535","4260070","1505077510","9/10/2017 9:05:10 PM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0024" +"0xab1bc0ea4852fe4c44dc52595a469bba68d96c956312c470669dd9271cb68c85","4261241","1505106607","9/11/2017 5:10:07 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xac281fa5361618e37803c75a8416662c4f5ac680","2.9" +"0xbdb151cdf852022656f813db2ee927c29f1b5e65c80f5e017d72e3a27480b914","4261278","1505107638","9/11/2017 5:27:18 AM","0xac281fa5361618e37803c75a8416662c4f5ac680","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2.9" +"0xafa2a4e114d3009fc614e8ee9688a1125ab239e17db482a9f9a6e0927c7d88cf","4262745","1505142585","9/11/2017 3:09:45 PM","0x83ce340889c15a3b4d38cfcd1fc93e5d8497691f","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.001" +"0x05fb388bc7e0647d797912b7a4d8fdd0073d0659f5956bc179bf857dca7a8d59","4263154","1505152828","9/11/2017 6:00:28 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x3fa8c84d0a92e2bbb670302dd615136f797856ccd800dc2dc84393071d40db75","4263588","1505163255","9/11/2017 8:54:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1b22225e67bf89f0155ba00cb6a345b2962e501d","2900" +"0x8332283b2649d19de37cd1cedd454b6c388b764849324740bf17cb681c490453","4263697","1505165748","9/11/2017 9:35:48 PM","0x1b22225e67bf89f0155ba00cb6a345b2962e501d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2900" +"0x372c8097bb65ad4fe28164d29c5f15cff49472b81bcf8467380f5147e8247980","4263894","1505170234","9/11/2017 10:50:34 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xac281fa5361618e37803c75a8416662c4f5ac680","2.9" +"0x159f36b74370e094a6e17a03d32f2c1481dd32dee2a277cb96dac873b607495c","4265732","1505214603","9/12/2017 11:10:03 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","5019.93" +"0xb1392b8cffde71b81f7a40a88701de1af6d35b84dff38420cdd1c96abfba14d9","4265872","1505218154","9/12/2017 12:09:14 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe506b2bd39fccc59d5d44a5532aeea623a4ebfe4","10" +"0x8f737488d360e8cb32c76df664d8b571eee2856495b099a596b16ba2761b221c","4265876","1505218198","9/12/2017 12:09:58 PM","0xe506b2bd39fccc59d5d44a5532aeea623a4ebfe4","0x84971bc13103c5b1643b3ce7154dcad162d0d6c7","10" +"0x96b0a98e11b6fc30319ac8a5b7314c4e1e78cb6335ec1ea052b135cc1ad62487","4265975","1505220288","9/12/2017 12:44:48 PM","0x22a2b6e8bdd4d109ecedc0786ef9d505bf0a866b","0x2339c6f3b957a03f6684385a854ca7a414207929","12058.018674286" +"0xcc7f65a663e012b5d08f71cc41e51c1c4045bc0a432aecf9a6db0685641fe8f3","4267006","1505245269","9/12/2017 7:41:09 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xcdd35bb7677527913a20222d3f37b85a51fdc6adef50a22eef5d4f213c68bb18","4267440","1505255424","9/12/2017 10:30:24 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf791134fd5df3672bf42712de661aef43ead19bd","4444" +"0x511d62d35bfafbf2cc4435f20b3e4be68d33f0273ff489cc3f12708c7b55c775","4269454","1505304612","9/13/2017 12:10:12 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x3b4fad5764aca94b903e660045802cb85326fcff","30000" +"0x7c0847c21d7a35f886a415ae900a50802cac908519dd31f715a586ad3508e814","4269467","1505304884","9/13/2017 12:14:44 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","6500" +"0x3eb092f649fc956ab2f12bb4aed90727790fb2bec1bf8441e33d38b7e7e58e58","4269468","1505304889","9/13/2017 12:14:49 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20000" +"0x86fee38a886921ebed1265a361c11ea31a88270c9e4e01653d9b299edc51b8e7","4270634","1505333122","9/13/2017 8:05:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0.04" +"0x008c084ebd05ece6608924da70db72a9ca9a1a263970c349bc22fe3fd9b5a37c","4271031","1505343262","9/13/2017 10:54:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf791134fd5df3672bf42712de661aef43ead19bd","1743.299" +"0x17e1968ca70c9bc1c30cc34d14007c17f21c754a4d576d73879bfdd85263b503","4271229","1505347793","9/14/2017 12:09:53 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","498.45479015" +"0x2cffb093fdae69554709009c7eb185082e35010fe8a6f006e1615df8eea4b5d6","4271246","1505348255","9/14/2017 12:17:35 AM","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","0x006236252fa3fb11d31e337c0e4444851666c960","498.45479015" +"0xb9534ef129331c57f25855de3c5de764425e3cc3b2b0fc7c0c52dfc862a827ff","4271268","1505348906","9/14/2017 12:28:26 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","211.892977249" +"0xc9a2bc0fcad6086f481118d6b0c4ce866d970a2419d6fd4550339aaf1f7f23fa","4271272","1505348968","9/14/2017 12:29:28 AM","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","0x006236252fa3fb11d31e337c0e4444851666c960","211.892977249" +"0x1d8306502b1c59edb4fe7b36ffb2c3a410962e3576a15dc8c50e60188dd8b013","4271848","1505362445","9/14/2017 4:14:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","100" +"0xabaedfefd67afb0b85e12af850bffb8732fab7d7f25ad62a9ee0b821dec82e6f","4271870","1505362947","9/14/2017 4:22:27 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","11921.87" +"0x39978a1e8a58e85215ff0b66d4d81fa0ef474965ca05a4f71e8ea8b82302569f","4271874","1505363053","9/14/2017 4:24:13 AM","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","0x006236252fa3fb11d31e337c0e4444851666c960","12021.87" +"0xa6e685cf029e9833cefe01f313ce6772029faf957c81130f3e0de3652a6d23ab","4272004","1505366675","9/14/2017 5:24:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","0.176" +"0xf27ed979210ba1ced3eea5d5d2204cd2194fddb7beffacf821e43b535042fb23","4272008","1505366745","9/14/2017 5:25:45 AM","0xf0febbb8627c488ab99a12d3895e38d5361e58d9","0x006236252fa3fb11d31e337c0e4444851666c960","0.176" +"0xcde4363d4d830b864faefaa40dee65ecad3b8c7405533f4c0caecc63d00b1307","4272056","1505367762","9/14/2017 5:42:42 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xae39b50d34f916506a0a8e85dddbaac142b1e6ad","2931.572" +"0x14d1af08ed7102f53294ee77ec8d7013999748c2739087f4f3e2ff777727235d","4272090","1505368519","9/14/2017 5:55:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xae39b50d34f916506a0a8e85dddbaac142b1e6ad","0.132984779" +"0x5b47aa5d688b1ea2c309cae38d8921c2858aeeb5feaac7939e6fc919f84de112","4272093","1505368641","9/14/2017 5:57:21 AM","0xae39b50d34f916506a0a8e85dddbaac142b1e6ad","0x006236252fa3fb11d31e337c0e4444851666c960","2931.704984779" +"0x8c499b3d06f6bf4d44dc546a951ea517eb6c1d8da17a15c332040ea804a65964","4272418","1505376420","9/14/2017 8:07:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x004b0024a719d4ab8f0266ead0cecab30c41f798","498.45479015" +"0xb2b0d2092aea8fb73b8b091e58bf58175e69ed7d4db4477a345f36d9c7c980aa","4272840","1505386543","9/14/2017 10:55:43 AM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0x00b422bbc8b8d81414bdf5bea330a75d1742b594","1" +"0x880f0c261b02236eae6c6f1705e3800d05cfdc29cdd1dd91d3431e5bbb4d3819","4272885","1505387611","9/14/2017 11:13:31 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","9.969" +"0xc5b6f7e4f962d63c82451d2384e7333da8a442319e5a528375fd369864e160e9","4272901","1505388096","9/14/2017 11:21:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0.001" +"0x244a72092bf10379eb27bcdc4fbbd40c405587e4730a2bb87e93ba866dd8b263","4273271","1505397259","9/14/2017 1:54:19 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","534.731851418" +"0xfa26c23f38b57d48a699ecc49da73ad07e590aabf3d169199f0e14f83a13f360","4273288","1505397626","9/14/2017 2:00:26 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","221.654" +"0x51e3e266b3206f9fd88ab08a2c5cc48877d21f0b0dc1e8237719e2bbf8c27f9c","4273747","1505408651","9/14/2017 5:04:11 PM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x5bb093cc41c73dc6d7c9c61a0ceb74c49006d2c524e64c34a2221dddbd4e2b9f","4273749","1505408734","9/14/2017 5:05:34 PM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x824441d2b42055201cf730f4dfb1cbc760c2675ef2e1ccbe77320c9d3f48f19b","4273861","1505411223","9/14/2017 5:47:03 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x700ea70cebdcc3645a89e4f8031744de71a5a931","2" +"0x9d781f4c97a2aae4a85725061b6ec4c49a75b4f69d0dd9d715b6e8691f828e1c","4273870","1505411388","9/14/2017 5:49:48 PM","0x700ea70cebdcc3645a89e4f8031744de71a5a931","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","2" +"0x2a8673ba1f9bc4669664f966e6d57c704ddd6a9926014ae0fff655eeb332a801","4273962","1505413414","9/14/2017 6:23:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x700ea70cebdcc3645a89e4f8031744de71a5a931","6" +"0x8fd491665a8b4bbe96f149af6ce33a50311ac8d7e8662ca9c43254975a64f3ea","4273965","1505413491","9/14/2017 6:24:51 PM","0x700ea70cebdcc3645a89e4f8031744de71a5a931","0xe26fd1375535967504475bd07df0293ee5d41695","6" +"0xe2537f23411cb67c1d3914fd9d1910f956ec7a3cd504217a464fb55aac3a6dd9","4274020","1505415164","9/14/2017 6:52:44 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x700ea70cebdcc3645a89e4f8031744de71a5a931","1000" +"0xa80ed60e4540d0913d20cd4c7a24b91646e0714309e4250e4a004a6832554a66","4274021","1505415210","9/14/2017 6:53:30 PM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200" +"0x269dee341ce1d5d602607c55821a2694e4ed1b9cf4194810f1a28b985f1945e9","4274033","1505415605","9/14/2017 7:00:05 PM","0x700ea70cebdcc3645a89e4f8031744de71a5a931","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x60077e2c6d2bf5bf5668b55ea8311ba915e8d9ad28c4b1534530686c8255337b","4274131","1505417693","9/14/2017 7:34:53 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb4c299040afd7f6a5a9bc3183bf5ae49f02f1d96","6" +"0x506ccc2594779ce6510be23424a5bcbb12f70c2e4830dd936953cab13bddb6ac","4274479","1505425864","9/14/2017 9:51:04 PM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x035392de57aa4fe343d86494103dbe1b068a56c6","1400" +"0x00ba35eabe2d7476f785f47ff4b087f61f02af8546d7ce1d3b497597904a7428","4274489","1505426205","9/14/2017 9:56:45 PM","0xb4c299040afd7f6a5a9bc3183bf5ae49f02f1d96","0xbf29685856fae1e228878dfb35b280c0adcc3b05","6" +"0x38d7641f877219802d15cf86b01e8387fae1a3383df024dc82f68edd0c5f1989","4274726","1505431990","9/14/2017 11:33:10 PM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1400" +"0x3aca569a532433d6202f10387555218b150b256dd90a001e86f16c37a51ce29b","4275004","1505438185","9/15/2017 1:16:25 AM","0x2339c6f3b957a03f6684385a854ca7a414207929","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","12058.018674286" +"0xbf2d2095f9fc691cc359064c9d5bf13e215305353838a2f1358fb9b0b856ef15","4275065","1505439404","9/15/2017 1:36:44 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0006" +"0x68e6b54afee271e4a906695a7e02226779512a08934dd5b288a036602291cf25","4275202","1505442811","9/15/2017 2:33:31 AM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0xbf29685856fae1e228878dfb35b280c0adcc3b05","197.45479015" +"0x4c111b19e529baaf8cbaeb0be103d88c96b5e0a31df565454e60be9078d123ae","4278096","1505512375","9/15/2017 9:52:55 PM","0xabb3613d01388a8d3c79b86fde98a50ae685b1c4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0xb95f58e984dbc57c60867e184a859e17bd855eb89d0e9d5e767136a73dc735f2","4278250","1505516179","9/15/2017 10:56:19 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0x9ea05f555d38a6302716e9bf814a386ba0373d98a777b0f36f5aa0f43127c8cf","4278278","1505516685","9/15/2017 11:04:45 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xc625cc112658df9e9a0ee98a83e9abbf990287478515feb313ed12c25b8d6c83","4278278","1505516685","9/15/2017 11:04:45 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x7382715addf5246866b5ab2a469969ff21825cd1d43956a70d8be500e101d329","4278861","1505530808","9/16/2017 3:00:08 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe537f6b5091f05f648251d524553d426e613c289","200" +"0x0c9ec90a724a2bfa71315cbc5a096659cf6dc5a2840c1e3cbae397ced8e315be","4279920","1505556733","9/16/2017 10:12:13 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","10" +"0xec90a58cd7d3b0a1dabd26b24805082210008a5d55790ca309128a8317607330","4279972","1505557958","9/16/2017 10:32:38 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","500" +"0x7f8c9d3325848d88f84eae740227b8055cc75611c7a2024d88a6e5a37e630ddc","4279999","1505558741","9/16/2017 10:45:41 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","200" +"0xc74ee73433892abbe8a4d5d1650df3a4252749ba9d1ac3cbb606b7495eb598a1","4280064","1505559797","9/16/2017 11:03:17 AM","0xa54ffa43d11698bc300d924781518b71dd10f0a8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10102" +"0x3da6208e616e216b4cf827733e1da84f64594d52f3e87738a47a87e7c262d041","4280778","1505577231","9/16/2017 3:53:51 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","233" +"0x52f30bed75996caff9f55ee7d59f015bdc578191bb3a00d9f5a54d0f5d46a80e","4281126","1505586064","9/16/2017 6:21:04 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x59ef24c2aaea89211ed249811fac36046b589369","20773.224668408" +"0x1b7bd3cd57779cc3bc78cf8ba32c3e74142a35e1df129b097eef0f3c1e714d67","4281130","1505586271","9/16/2017 6:24:31 PM","0x59ef24c2aaea89211ed249811fac36046b589369","0x5242dc2114bb40ed7482adcfab07384d069408cc","20773.224668408" +"0x7fedcf65b89bd9458551e73635bca004a85b6380e98aa3a8dc3d02eaaf57d093","4281714","1505599903","9/16/2017 10:11:43 PM","0xe537f6b5091f05f648251d524553d426e613c289","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x60ca021f09c7a2874df0f8726e35057daa517e93d77cf68a9dacc231c13c4639","4281839","1505602134","9/16/2017 10:48:54 PM","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","32" +"0x640e27fd39d4e208ea2ab6672b7a4367d44aa2052f38b49cb6c6abf0277d743e","4281858","1505602760","9/16/2017 10:59:20 PM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","32" +"0xb06416951656b6f296beca6388825c5c0268b98316e65528c60db8ae99923a94","4281893","1505603491","9/16/2017 11:11:31 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x087402d2cb7922d5d394daac9e4ec98aaf54f8ea8a3bdbca33c6445fda61f530","4282167","1505610123","9/17/2017 1:02:03 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","10" +"0x760c8f6825a7fe603acd99f018e5297ed01cb31546a2c14957a1520954b1debf","4282169","1505610175","9/17/2017 1:02:55 AM","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","0xb236b907580361fd4f87b759de68ca5c206644af","10" +"0x8446d1d3da6b0bb12930a00a9b5957d00639b6412cd87e2672f364dd36d594a4","4282228","1505611541","9/17/2017 1:25:41 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","5" +"0xdf0a8fa787d9c101b5899e5d3a8ce558fe1db4701f7f8033b82d47f4eb7c5cd5","4282266","1505612389","9/17/2017 1:39:49 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","239.20763" +"0x42abc8ecf34dd4ec2a12d775dfa487363f4e61522015fb240c59eade1d327402","4282268","1505612435","9/17/2017 1:40:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","6398" +"0x583d6b4a411d8733324f61f5b150ed8b6aa51b31c7d2d4807eda0245da83ec64","4282268","1505612435","9/17/2017 1:40:35 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","486" +"0x52420da89a51fc8f8ff887c3d5d61b1792db3f6419ffaa7b96863d68881ac5e3","4282269","1505612453","9/17/2017 1:40:53 AM","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","0xbf29685856fae1e228878dfb35b280c0adcc3b05","236" +"0xfbc14afbf392ca6f9854a516af0d2198a42d9c8475ad6b5870d551fb157d6538","4282291","1505613062","9/17/2017 1:51:02 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","6398" +"0xa2483d0afc85ba1b5a2bcca76c1b01a586bc27a566994ae15e5816c016bb34dd","4282324","1505613912","9/17/2017 2:05:12 AM","0xb236b907580361fd4f87b759de68ca5c206644af","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9" +"0xf368cd383c8f422c7c2a154cf2a31b6db6063bf079e3ee6931a7396803afd77b","4282357","1505614664","9/17/2017 2:17:44 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x035392de57aa4fe343d86494103dbe1b068a56c6","5000" +"0xbe8a87c8b6adaf6fe744dc5605ebd19387c92970cdc3a0a237348e17c899522b","4283512","1505642065","9/17/2017 9:54:25 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x25bbb24fdbea92c3757155b25f0f92a7364ea5a9","4102.724" +"0xf88cdf8a5ca8bfd38ba476e25e7a29cce579321c9c7954c8537b3093bf4f9a87","4283522","1505642369","9/17/2017 9:59:29 AM","0x25bbb24fdbea92c3757155b25f0f92a7364ea5a9","0x295b15b9c55cafd918aa5311de1fc05b0f230bd4","4102.724" +"0x0670984852fc9f080e9547426aca428d8edaa1eda29f5ba665012c84e2c94ca8","4283835","1505649750","9/17/2017 12:02:30 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0003" +"0x8aaf189939dbbdcbf0c1768231cfb9d32749053f35cd69831a580ec4fd003415","4283893","1505651171","9/17/2017 12:26:11 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x66363a03d92b46882f142c992c4fea42f9bc2af1659be40a57889b39e02e1e86","4284116","1505656468","9/17/2017 1:54:28 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","70" +"0x8e70e78d9d64f3740468e99eb81198f83c57c03d9752883d15fe8401990bfe18","4284175","1505658110","9/17/2017 2:21:50 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x004b0024a719d4ab8f0266ead0cecab30c41f798","30" +"0x063235e8f53d5e3a19b413d10bb3704bf8cc4641e88a2a62b207a4e3e70653d3","4284182","1505658246","9/17/2017 2:24:06 PM","0x004b0024a719d4ab8f0266ead0cecab30c41f798","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","30" +"0x8106793d5d03bab8fa0c141e904249eb113f438c26d894d855ee752fcdfc4776","4285021","1505678628","9/17/2017 8:03:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0609929ec6f8fc39d75301b180e4ab94cac7aee7","10994.432" +"0x05c57f69955b5c450c24125dfa882718eba525047967fda2e6e53572d44ad3e0","4285031","1505678937","9/17/2017 8:08:57 PM","0x0609929ec6f8fc39d75301b180e4ab94cac7aee7","0xbc43454e4b5c4cdbb2099449b76e11664307a1f2","10994.432" +"0xd9bbf42d35b0f1aba66bc97c2caf040dde46aaba9d9e29f53e017f206548f0cd","4287283","1505732887","9/18/2017 11:08:07 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","355.616" +"0x3396aee9e4789c51935231bc2c59fc71eb1579977fa9e9041ad35a981a1a8288","4287465","1505736760","9/18/2017 12:12:40 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3500" +"0xb1cb317683dbbbf83dd0ebea2a8fa0fd2ab7d5fc5cee738370f7a9046f4ab85a","4287552","1505738957","9/18/2017 12:49:17 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x3b4fad5764aca94b903e660045802cb85326fcff","70000" +"0xd22200e917691df14829b47cbfccf5baef649718b20698c4876245e00b1914f6","4287865","1505746953","9/18/2017 3:02:33 PM","0xbc43454e4b5c4cdbb2099449b76e11664307a1f2","0x0609929ec6f8fc39d75301b180e4ab94cac7aee7","10" +"0xa3ae0065ea540bdd25ba20fc3d7557a4db8593a6bd129440fa5851a755de4cff","4287883","1505747543","9/18/2017 3:12:23 PM","0x0609929ec6f8fc39d75301b180e4ab94cac7aee7","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0xd8d5cf6f1aec9e5040cf839b66edec22b9d3075fe9649b851df47e5896122652","4287894","1505747976","9/18/2017 3:19:36 PM","0x0609929ec6f8fc39d75301b180e4ab94cac7aee7","0xe26fd1375535967504475bd07df0293ee5d41695","1" +"0x224ceb9e9be25e8c4a734e52302f8b5bbedb79076eb0468f2efedf3fd8c90677","4288091","1505752410","9/18/2017 4:33:30 PM","0x3b4fad5764aca94b903e660045802cb85326fcff","0xbf29685856fae1e228878dfb35b280c0adcc3b05","70000" +"0x4f051fd4256ac03f1838a3389552248f2ee1693b989befb8b2ec4cefeddde5ec","4288570","1505764619","9/18/2017 7:56:59 PM","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x18cd8560938a70c48cb0329bf4873a0fdd964883d459df3cbb1c40cbe8148e6e","4288738","1505768475","9/18/2017 9:01:15 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","10000" +"0xb591948b5dda90ff5d571c1d8d6856fc776dad82eeb74920d626dced742261a8","4288969","1505773817","9/18/2017 10:30:17 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3257bde8cf067ae6f1ddc0e4b140fe02e3c5e44f","0.001" +"0x637a3ae0a49a398bcf6026ce0ec94e8d35b652aeac8ab6b523aae55baabeccc8","4288977","1505773969","9/18/2017 10:32:49 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98","0.001" +"0x0115886988a0c09568adb504291687b64314d264123d01c0c9d3989135d9ff7b","4289026","1505774856","9/18/2017 10:47:36 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x5e575279bf9f4acf0a130c186861454247394c06","0.001" +"0xe16437a33151671e0b978b8f177a052aa3f684799a41b14aea78f6e6ed1b2da2","4289035","1505775054","9/18/2017 10:50:54 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x185f19b43d818e10a31be68f445ef8edcb8afb83","0.001" +"0x053a9fa6a371a29769172263e0879a4051b104ac395724c92fab712ada44ee1f","4289424","1505784343","9/19/2017 1:25:43 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x32be343b94f860124dc4fee278fdcbd38c102d88","1" +"0x2151d94d23531f2362e2105ab51179e0c4fc65b69861894cade9f96bf7c06d0e","4289521","1505786739","9/19/2017 2:05:39 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x3470447b3e6e9be0f8a29133a4be98a47d147a284665d98b90cc3001ab198760","4289569","1505788146","9/19/2017 2:29:06 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd6cd31f283d24cfb442cba1bcf42290c07c15792","1" +"0x546f9d40fa8f57aad954289bbd0d82a66ad75b2be62eb7f2cb32267655a8db1a","4289592","1505788830","9/19/2017 2:40:30 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x267be1c1d684f78cb4f6a176c4911b741e4ffdc0","1" +"0xbd074ac76b472b257be451c69e64c61c9a5608d3e538b3e82f23dd16504dba48","4289691","1505791187","9/19/2017 3:19:47 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x7cb57b5a97eabe94205c07890be4c1ad31e486a8","1" +"0x6238248200a2e957e7b53083959f971f7c79778467281092db82ccc8a0da9bf7","4289739","1505792310","9/19/2017 3:38:30 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x1151314c646ce4e0efd76d1af4760ae66a9fe30f","1" +"0x0caf67e2d7be58910e70a946da3bdf8e6b73c7ec8899ff9decd5e2a93f9702ac","4289964","1505797527","9/19/2017 5:05:27 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xd808759f901e4438511336fc99696a800cc5e51072761950a932dc4bb3e3c8be","4289965","1505797548","9/19/2017 5:05:48 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xce571165e72b4e281eb787b091741b257633a2e5","1107.254228248" +"0x9ee0753a1554923c40b8c9fd615613bac22059d067508ebe4763082d516ab756","4290167","1505801823","9/19/2017 6:17:03 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xce571165e72b4e281eb787b091741b257633a2e5","1111.111111111" +"0xd56bfc842613cf96f7f26fcf81ffdcfb317c9ba41d13728c5da87cb6a0ba6532","4290383","1505807060","9/19/2017 7:44:20 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3aa927a97594c3ab7d7bf0d47c71c3877d1de4a1","1" +"0xa1c1389250674851941b50dd5a0928700a2ecdc68e02b87d13e42defc2740219","4290806","1505817319","9/19/2017 10:35:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","1811.229" +"0x600c057b2f71f62bdafff669cc62bdffbe6de0e4f30ffcce5cb8e08fb70e7700","4292519","1505857790","9/19/2017 9:49:50 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x0d5c76fc8c8b30bddff2b895adc2c354a62039409b92221f37ec7bfb589cbdb6","4292707","1505862426","9/19/2017 11:07:06 PM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5000" +"0x4ca2a3f4a7cd94441188f815487805f416ccca6908e4a6cf3fbd1a242b50d51f","4293202","1505874447","9/20/2017 2:27:27 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","300" +"0xdba6537c6711680fee2fff4e86f503fbbc780603d594483418e1fd404ca4673c","4293236","1505875496","9/20/2017 2:44:56 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8b182a4526944fa498970732a69a95d281c3c8a9","300" +"0xff0c9e63eb9bfb6530a6dff91c4ccc0bb04acfd422e2525085814421febadacd","4293242","1505875693","9/20/2017 2:48:13 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x035392de57aa4fe343d86494103dbe1b068a56c6","300" +"0x0223dfbe3a74bce4ee84141b2bcdc6c37bc2f5838c98144f7db0ce0679c1f7c4","4293302","1505876965","9/20/2017 3:09:25 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","202.1" +"0x35a3c03cde296809188754b6782c9fd260ac2823bea1629bb87e0d6c64502067","4293925","1505891469","9/20/2017 7:11:09 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x46ae54ea02cd64ac95257d0513fe0933f3a8ce65","0.37" +"0xef38aba2fe902e3f9285471f0ee99bb42c441a962502fa5bff08ff5c0719177c","4294036","1505893889","9/20/2017 7:51:29 AM","0x46ae54ea02cd64ac95257d0513fe0933f3a8ce65","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.37" +"0x39fd9c1d2e04797436153b96da29de158588bdb4b306ac8d35ccedde94b05e54","4294750","1505911476","9/20/2017 12:44:36 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","1550.6" +"0xe78a2e6a40d7cb2fed8fa88109a2d3cca8a10766e5b18f973517059f724bb96f","4294960","1505916976","9/20/2017 2:16:16 PM","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","0xfbb1b73c4f0bda4f67dca266ce6ef42f520fbb98","0.01" +"0x9a43ccf7d80cae851418dc70b3de77442eb7f03916bf2220d0ab0bcbdade1ab9","4295228","1505922982","9/20/2017 3:56:22 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0xdfce0d464e016c9007d45ce373e8a84c7df2bb98d72154c0fdeac2b4d4a26f8e","4295360","1505925979","9/20/2017 4:46:19 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","4000" +"0x89755bc94687c7587ced571c3130d9c9911ec50e27698307bbbf4a2ec6078872","4295367","1505926175","9/20/2017 4:49:35 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","58" +"0x9722d8c9f0d78dfd63814bec98a9b2b6cc45bffc3b36e6f0ed597df4b519aefc","4295367","1505926175","9/20/2017 4:49:35 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4000" +"0x5ca2666bad6a8b4477316ad07d3eec4be24929a1637d5fc452227ca582c52f34","4295382","1505926489","9/20/2017 4:54:49 PM","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","0xbf29685856fae1e228878dfb35b280c0adcc3b05","8" +"0x51cbb269f0374d99799856ab5fc17c2290b4a5eb5ca19c6ad382f0e6731b0ae9","4295386","1505926590","9/20/2017 4:56:30 PM","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","0xbf29685856fae1e228878dfb35b280c0adcc3b05","8" +"0x36d1f71f8b8add81c95a512fbae3ac605a23e6c3d8c685279b700ca1da8bf3fb","4295387","1505926620","9/20/2017 4:57:00 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","8" +"0xae468ff3c3ffbbe08f0cd766f5d8240dd92e6a6be19289c3e59ddcaf7579323f","4295395","1505926894","9/20/2017 5:01:34 PM","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","50" +"0xed53a1408b2ae4b885bcd4014e8b20f30a327aab53d702ed64bfffd21b35ce43","4295418","1505927434","9/20/2017 5:10:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","8" +"0x44bda62e440e6c7a84ac65861a963876b58471384df30e53ecb5b4bf9b0c11e3","4296111","1505944346","9/20/2017 9:52:26 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xfa7b23e88eb10c3026e5886349ba179bc5cc0f43","0.386464074" +"0x5e4aa02d917291df81d9bf4090e0a39450390a071ae382a7f68f72ce043d7689","4296468","1505952618","9/21/2017 12:10:18 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x035392de57aa4fe343d86494103dbe1b068a56c6","2500" +"0x2b5c4a4d74ba8f8fe90f2618d99d3f03649dd63fd7af028f13ad72ff8b1c37b3","4296500","1505953440","9/21/2017 12:24:00 AM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","2500" +"0x64c3c28a0a80ed4f1fd9dc44251c0a2a5508847959080f3e5262b14ddba42d5a","4296656","1505957225","9/21/2017 1:27:05 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc52357d707c1ccde1c3cbca101310d5464491365","100" +"0x4d49fbd3229bf658133c6993ebe322679d36b75e84de4d3b8d68064ebfd7b7b6","4297909","1505987500","9/21/2017 9:51:40 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","980.765" +"0x1ad84e0f67bdadc41da9f478fd1f588d506a98fa790552fe48f4404e2b0d4ec7","4298044","1505990431","9/21/2017 10:40:31 AM","0xc52357d707c1ccde1c3cbca101310d5464491365","0xea298fd724d4e7c74cedc6704d81672704a2317f","156.28594" +"0xd0da9401159d8a38d679c4d7ad5d5c2ce576173b3f75135ad6e937a48f3b588b","4298424","1505999781","9/21/2017 1:16:21 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","71" +"0x7d2f3ac646277d0bed462a862162392b1cee3abbbd3e676987c0b2738cac26f0","4298541","1506002694","9/21/2017 2:04:54 PM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","21" +"0x076d34ef815ff25a8aba77ccf9bb0b4df2f264ecc2a393300ac3c32cd75101c7","4299460","1506023993","9/21/2017 7:59:53 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x680ea6597186219e9abfa407e1293d0635966847","100" +"0x42a0f5bb14d30e1b6b373629471bdcd41a651c7b2af7611217538bddcec4dce1","4300193","1506041090","9/22/2017 12:44:50 AM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x5242835c55d9348fbc1c805456886ef251dedaffd0113834af7a8837b21bbf26","4300213","1506041647","9/22/2017 12:54:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","100" +"0x69da3434991566d4de21764f5f5a161a1c9ddc6aca8d18f7c201ab300255d38f","4300336","1506044770","9/22/2017 1:46:10 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x9279a83cef5b964621c737b63f2bc2c14da2e2d41d21df119c3e579c83b6bac9","4301366","1506074566","9/22/2017 10:02:46 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x6a66af0d145b3a0c9d229010aea7745db0b0ff66df39194ba3c59079fd37c18a","4301529","1506079276","9/22/2017 11:21:16 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x5894110995b8c8401bd38262ba0c8ee41d4e4658","1" +"0xc2ffbb239fa0a61aeb20428cb89079bdd580d7c22c180812527f130df2854c26","4302303","1506101930","9/22/2017 5:38:50 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x09084827219f64f48b4b4202c1351eac41a43489da48071f20918f4d2a86c948","4302634","1506111511","9/22/2017 8:18:31 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","3591" +"0x376da91853d361fde4777e656eaf1def4c646dfb362fcce0807253dfe90f1aca","4303188","1506127912","9/23/2017 12:51:52 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x4b01721f0244e7c5b5f63c20942850e447f5a5ee","1" +"0x1004f292baa2691dc3e27e9fd34af4f25c3d3da7909424e5fa3355bb7dc4be66","4303225","1506129198","9/23/2017 1:13:18 AM","0xdfe3d5d0213029eea3534bbb4c64f8173cc92c3c","0xe26fd1375535967504475bd07df0293ee5d41695","0.0036" +"0x465f4cf1023b1a00aad60044369d3790ca53403eb0101e412ff0fc66e110b638","4305427","1506194189","9/23/2017 7:16:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","1000" +"0x0af7ed2e4b2b31d169a2338f3eb3c52d36da4461b70a2f480b06d4a1d7bac72c","4305432","1506194294","9/23/2017 7:18:14 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x168e1ea9792ee50cf5135e7d1f6a52283403bd5ea445d229b574f190e144561e","4305473","1506195440","9/23/2017 7:37:20 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","1000" +"0xf32ba3ec19820c914f5412d87c2ec02f958a1c7edd90ac9cd10b6ef95ced06c1","4305495","1506196232","9/23/2017 7:50:32 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","2746.154" +"0xcf6cbd35e7a8d14f4307d9a2ea4e4c33a8a5d475044ef9cc1f408807db8832d2","4305502","1506196407","9/23/2017 7:53:27 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2746.154" +"0x456f5040a39db915f4c4b242870b1a93f86fbbadc736ef0cd56dfca9e193088e","4305508","1506196572","9/23/2017 7:56:12 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","1000" +"0x80d0c21f34808570d97eebefe620a21443b6ce564b0d202e90059de8a5f162b8","4305727","1506203951","9/23/2017 9:59:11 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x57fb49ca66a6191633272f4c38fbb5b3173f8626bbdcd050ac2eca4341a5ae2c","4305847","1506207837","9/23/2017 11:03:57 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x43764357c8aeb633adc6433e85e331d0b913fe79","997864.73" +"0xfd78512b4fc18aa723e4842c0954010100db71e49753aa1938df5acef8e0e3d9","4305871","1506208614","9/23/2017 11:16:54 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x43764357c8aeb633adc6433e85e331d0b913fe79","2000252" +"0x271c8b6c881e711c9920f36f8a2f445db6b374343a01781ce8d6f870b1e675df","4307714","1506263020","9/24/2017 2:23:40 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8c8951cb433a7f586e0855cd8a49f6c51281b010","0.01" +"0x71f95fe7654873acdd2e5ae023f911a127a2f1737fadb8aa7627eb0a4fdb313d","4307725","1506263260","9/24/2017 2:27:40 PM","0x8c8951cb433a7f586e0855cd8a49f6c51281b010","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.01" +"0x3b6953dc44810cdd73267935fef00c53308fd81895285324501122998f22aa39","4307839","1506267085","9/24/2017 3:31:25 PM","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10000" +"0xe073c5b44306d241668939481865349475f0d176a19188278ee0131214c75cea","4307925","1506269374","9/24/2017 4:09:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","475" +"0x4086900a8a35b134d7c01dbc4200518e9a9e8ce2a55d61c5a78f96b01af54430","4308329","1506281060","9/24/2017 7:24:20 PM","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2495.66100678" +"0xc564c179af895f2d64afc946ebf1cddbf249251da05e23212d291d6e430c0da4","4308418","1506283590","9/24/2017 8:06:30 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","420" +"0x4207c91cdfa7e64d44e59be5b9fedb3a977d4183edc9bc1479ff376f94ce0235","4308479","1506285325","9/24/2017 8:35:25 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x4daa00c6944ef98cd7529121a0bbca353fd23d72","4200000" +"0x9363f933cdb0a54a51958202a9ecee2f4d303fc0f4e95faaa297faf4a2e600e7","4308662","1506290221","9/24/2017 9:57:01 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xda5695b9ddd85424a82ebca13a511df14e710ae49c23af59170ed91bd50ed5eb","4308678","1506290785","9/24/2017 10:06:25 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xa6f1994e76906a64ccbff9fd156d5c67e46a222b0ff32931c63eab9ef093fff5","4308791","1506294207","9/24/2017 11:03:27 PM","0xfa7b23e88eb10c3026e5886349ba179bc5cc0f43","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.386" +"0x46c53f1a8bb82f1593eb715df8a24fe9af079ebefa7d8dc79ff101e964c98770","4309053","1506301942","9/25/2017 1:12:22 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd94c9ff168dc6aebf9b6cc86deff54f3fb0afc33","1" +"0x2d287dc31c294d6866c0686bdb432ef7e1531bd062f41e828ed9365465ac38f2","4309219","1506306798","9/25/2017 2:33:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x2fab4598bf2e09b0d2e48474984315fb36df61b8","1" +"0x679128f3d984d7d628b8bde7f6e1e4feb8f6eb534025260d8269ebd36296c2b8","4309229","1506307211","9/25/2017 2:40:11 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3eb01b3391ea15ce752d01cf3d3f09dec596f650","1" +"0x9a34e7a3c8e4f9bf227bc04d8db2e2521a167eb0ee6ae87d17d6d2692797e6ff","4309287","1506309110","9/25/2017 3:11:50 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x9a642d6b3368ddc662ca244badf32cda716005bc","1" +"0x1dc6b4204bbcbada33317cf66c36ba8b4d6c96426f5c7b119e42f931f8a8e84c","4310564","1506348186","9/25/2017 2:03:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xda44a2185a8f6b9c58779d1bc5ac95bae5de9f81","2.144" +"0x73209d0881fb76ef42e4988031db086babf103a74e293e6e4aa8923511278a1f","4310597","1506349243","9/25/2017 2:20:43 PM","0xda44a2185a8f6b9c58779d1bc5ac95bae5de9f81","0x33a1fe45e4b19ff29397b315067bd00751c4cf76","0.5" +"0x712770f7b695f1155d4d996a5c4c3a42fbd2b7f88ba215d4b19799c9707611e3","4310669","1506351128","9/25/2017 2:52:08 PM","0xda44a2185a8f6b9c58779d1bc5ac95bae5de9f81","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.5" +"0x11634173aa8bd08a75ff5689ae592dcdfea1cc63b1ae86c1265523a5861653bf","4310714","1506352643","9/25/2017 3:17:23 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","300000" +"0x73e6617245591e04ccca29c6e0fce730930824d1b2de4f006ce65c89ad02b0ab","4310720","1506352783","9/25/2017 3:19:43 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xa59ab42965d49595c22a759a69c01b7150066d99","300000" +"0x08170443d9199613f7bd2de61ba7bf2be18f8c292aa068d03be9bacdc0023695","4310798","1506354725","9/25/2017 3:52:05 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","50000" +"0xc58b5eff95f1c35f3c2866445ca8571b3ed3dc1a446466fe0bdcefc372a41e3d","4310801","1506354851","9/25/2017 3:54:11 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xa59ab42965d49595c22a759a69c01b7150066d99","50000" +"0xa89655b638b05b70ee1b6e5599959e317b4ae0f2aa893bc5936d667724ff49eb","4311424","1506374104","9/25/2017 9:15:04 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0xd72e63255432945eeb27e05f35ab2ce21835dfee8e07384ae0e1e62a1b0a4683","4311532","1506377135","9/25/2017 10:05:35 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xcc80be6aa3bfb275bcdbc4df4476c30bef582875b8bfb64c01a195597883bdfb","4311716","1506383265","9/25/2017 11:47:45 PM","0xe537f6b5091f05f648251d524553d426e613c289","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","90" +"0xb91a407765b97b61dc15fee56b755bb7d3e609a78646076cd46f318aa6a75f26","4312023","1506391863","9/26/2017 2:11:03 AM","0x07aecdc1e5e6b9719d90e3083a6c6901a4b77759","0x949bed886c739f1a3273629b3320db0c5024c719","8" +"0xffa5c0b92ac219b09ff34703d03857b3ba1ee2bcce96466228a05b8627a74f63","4312261","1506398866","9/26/2017 4:07:46 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49ad11a669599a7197b37c7c0cb91442f9848fb2","30.034" +"0xe11289c882841d42eff17c056d2826f1ef6606e12bf86aab1f737ba23e39bd9e","4312277","1506399378","9/26/2017 4:16:18 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49ad11a669599a7197b37c7c0cb91442f9848fb2","30.034" +"0xe22332f355f054974e6b2885b2bec01fe35221fd782291ce86bfde1d1c9019ad","4312344","1506401504","9/26/2017 4:51:44 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49ad11a669599a7197b37c7c0cb91442f9848fb2","674.469" +"0x7fb85459d3cf7f8e44b5cce75d56d0a5224e9bc72b6b25736effdef4d8072e46","4313777","1506444762","9/26/2017 4:52:42 PM","0x97a188c0c4ccce7cd3694fdc090e41f2c89b1fa6","0xf142f26d1cac4ba8a6e6d7974d243eda2fe5f4f9","0.000154214" +"0xf1b3da83711f737df5e6d68257f1d8853f9033f71427dc45728d33b09c340e77","4314178","1506456811","9/26/2017 8:13:31 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x402172294d9380bb10e8b8be5c6faee5ba75a520","29" +"0x334d473c18e97a0ec38e6d5c0515d9329396e86a8781333c727d967e31e782ce","4314796","1506475882","9/27/2017 1:31:22 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x288f960dfa6210f8e894b39cc6315ab03362b2dd8e23d6fbd032057024fa3d08","4314949","1506480340","9/27/2017 2:45:40 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x0074709077b8ae5a245e4ed161c971dc4c3c8e2b","1" +"0xf96387dbf67a4e43091908145002a3021b3baf90ede3f97550caea689688de61","4314983","1506481328","9/27/2017 3:02:08 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x980202406d523fb1879b8bef8b33174706740a64","1" +"0x406c96b77da5a2d1e5028995423382657967fa8934446708272a099d45d668ce","4314998","1506481791","9/27/2017 3:09:51 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3124dcd240b330945896b0cdfa8dd20ed400704c","1" +"0x497317a20ad3f4f7ba0713725a03536606f52d72d256d4d2d949f481936a3fae","4315313","1506490801","9/27/2017 5:40:01 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be","1" +"0x7ae3ba9c4e6d94efe24fb64f72b40b46299747ae3d414a5b4fc467f47d8224ea","4318785","1506594308","9/28/2017 10:25:08 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000000" +"0xfe715ede85a696fc973afb73377bdff454040b54f3cd70a56c824f1f4456978f","4318957","1506600332","9/28/2017 12:05:32 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x61d9bcd2f113868b0a0b73ee9f8b25b6668e8675905a586d022d175834677e2d","4318988","1506600933","9/28/2017 12:15:33 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x419582d20b3e90749f86b1abc3dbe52656797121","2000" +"0x9454db4af7977c3260ef86c5cf4e366f76d824b739af9d32d2dffe09dc6cdb11","4319280","1506609196","9/28/2017 2:33:16 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x28e32ab00e4f251cd3a6d4ec4359d7f55e9d6bc5","1" +"0xd3168ddc881be971b9b1ed4fb6b5c114cac10fc8122f0358c6530e2617fc7978","4319306","1506610013","9/28/2017 2:46:53 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x03f021bc15679f23a629bdab2b33c2c787cea83f","1" +"0x5a645749a64c3de8479e881fd6310b5498ae793ea07ef96bcde427e35f19dd37","4319385","1506612413","9/28/2017 3:26:53 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd7479145e52adc22e6c4dc2c6809a69716823f42","1" +"0x530cd4ff8e99868ffe9b3b12cca258059a8cb00da8afe9b76c8a663528022da5","4319506","1506616943","9/28/2017 4:42:23 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x88fdb76ec63877cf3f5e159189b2a510dae3e718","1" +"0x57716ca696b51f12e9d7d0b30e1a30f71023ddb519cc060d1ee57208feb32a35","4320065","1506632535","9/28/2017 9:02:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xbec9a7d277d027e680a57eaf32c1a8380eaef3a34c34d327534db2c820f87a7d","4320641","1506651263","9/29/2017 2:14:23 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8b182a4526944fa498970732a69a95d281c3c8a9","2500" +"0x2058a0297aee9980c0de6401d4300300f96dce070890f9cfe7eb04df8499b045","4320726","1506654119","9/29/2017 3:01:59 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x035392de57aa4fe343d86494103dbe1b068a56c6","3000" +"0x0838c9339afdfaba3ff9fc182cfd9a32a5092d6d4b31ca4d7d3b37ba479525b3","4320936","1506660884","9/29/2017 4:54:44 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xb794f5ea0ba39494ce839613fffba74279579268","1" +"0x5817d2f14427c3d6794b3a996dfb637a3a84248e12b2a611de3723b041ba3a6c","4320936","1506660884","9/29/2017 4:54:44 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xe853c56864a2ebe4576a807d26fdc4a0ada51919","1" +"0x32b6b76359e33537a16f4109cf866d6c627c92666343bfb0ea8a3e86b0618e5c","4320955","1506661374","9/29/2017 5:02:54 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x167a9333bf582556f35bd4d16a7e80e191aa6476","1" +"0x6fcf95580b686f271a7cdf4e04b63aeab432af7c6f92c76885cccd92dae4c117","4320955","1506661374","9/29/2017 5:02:54 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x22b84d5ffea8b801c0422afe752377a64aa738c2","1" +"0xf3b048b3127cd3c46f95ede5892be8046185300673218d124e5b2bf2968f8c6b","4320958","1506661404","9/29/2017 5:03:24 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0x87a9c5cf1e765169b4e99d3a771f65e80f3c2be1c68f371cbfaa70a363261445","4320969","1506661609","9/29/2017 5:06:49 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x00a651d43b6e209f5ada45a35f92efc0de3a5184","1" +"0x84785bc76b3dcbde5ea28412cc5e34b0f6c8df94668484cffeb0f82160018fc9","4320990","1506662006","9/29/2017 5:13:26 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x53d284357ec70ce289d6d64134dfac8e511c8a3d","1" +"0xb84691631dffae44dd5d45d2364c0221eb7edef54fcfc69c20d3df126fc2bc45","4320990","1506662006","9/29/2017 5:13:26 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xc257274276a4e539741ca11b590b9447b26a8051","1" +"0xd9f7a83b15dfe07aa9815b489e37094d8adc5bf59b4e88556e5a27f01d68b0d6","4321046","1506663657","9/29/2017 5:40:57 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xae5652ea226bfae00b8d542e58231362af836fda","1" +"0xdd566349ff51b6267a622548a59a629b809f8372ac5d279221ac1d70e84182bb","4321046","1506663657","9/29/2017 5:40:57 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xd0a6e6c54dbc68db5db3a091b171a77407ff7ccf","1" +"0x59ee126243ba420558a0eeb06743231031365f20275df9de6fd6f8da6511f807","4321100","1506665343","9/29/2017 6:09:03 AM","0x49ad11a669599a7197b37c7c0cb91442f9848fb2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","734.53" +"0x70591f50d0cea3634a473f20aef87d50988149ea32244fad1980cb18700b0020","4321816","1506687239","9/29/2017 12:13:59 PM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2750" +"0x1514979dbb3729bbbabd6a9eae8770ad9bae40226dd4d9e1d12e4ffa45059a06","4322261","1506700439","9/29/2017 3:53:59 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x419582d20b3e90749f86b1abc3dbe52656797121","3009.588" +"0x24a4049d4bc0e63bf177be1f70b0a8c2e4c5d5e332a7b4bfd98c33219978e364","4322283","1506700793","9/29/2017 3:59:53 PM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x9cf911a90ccf326c26c25b26ba177f1b9630eac37d4ec169cae9601f7c18f2d7","4322723","1506713943","9/29/2017 7:39:03 PM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","3217" +"0x914a8e270c63e3c701864701e88eeed28638c8f70db6a6e6c931d256a57856a9","4323588","1506741211","9/30/2017 3:13:31 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","2000" +"0xecf9aa2d37468f2ec4cc668c4b1c806d802ab865529cb5685f0486a03f0d20b9","4323603","1506741567","9/30/2017 3:19:27 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x7662e6d3bd66a2f4dd70a2c902c6de2d771d563e","2017" +"0x58083eaaa2a8331146907d592b18172074bee19b410208604ed33206015b29cc","4324015","1506754712","9/30/2017 6:58:32 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","1216.034269954" +"0xf79fe8438a56f123c711d1845f548f15015b9f37f3e3a847666c319555813c36","4324053","1506755622","9/30/2017 7:13:42 AM","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0xbf29685856fae1e228878dfb35b280c0adcc3b05","750" +"0x7eba5ba36c1b1b03b04db2d8808cf2dac4a6015f8accc512469d762a851a2617","4324391","1506766365","9/30/2017 10:12:45 AM","0xe537f6b5091f05f648251d524553d426e613c289","0x949bed886c739f1a3273629b3320db0c5024c719","2" +"0xb0800d900325c740b327fc9be28eceb9158ae0d796fe0a5c3b4e2cb448d82c03","4325005","1506784653","9/30/2017 3:17:33 PM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","9.588" +"0x3c04553e4e6ac44f9acac05b256f6048c03fd669f04560b0af381c855664d2b0","4325112","1506787675","9/30/2017 4:07:55 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xdfb6930353ce776253484315fd24b63215435f683a0638af63c53215f0643c22","4327870","1506870784","10/1/2017 3:13:04 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ceea4079a67c905650cd6095bf429db654ce6db","3000" +"0x453ac11a216de48955c378497f11032095944104f898b8c7f5548e9a493c2f2e","4327881","1506871103","10/1/2017 3:18:23 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ceea4079a67c905650cd6095bf429db654ce6db","11166.084547375" +"0xc25438ae17f856083308f23380b89d7fa986bbb9b6fc9107b4a3c49336664d45","4327887","1506871310","10/1/2017 3:21:50 PM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","10000" +"0x76293069f0be6aaf6e61d9780cc75a7e861d9cecab5c135a268a9860c0c3ced4","4328026","1506875417","10/1/2017 4:30:17 PM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","3000.084547375" +"0xe61899c3a38f46249ee826d24a9a4d3fb5a311f4581aeb6b4d9061445ef81868","4328332","1506884466","10/1/2017 7:01:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x7484c2adc2a63975645ed72af57eea3b0e82559d","400" +"0x1e868c973df35cc84123f8ee8168d438f0f50348790c4adddca6c19fc23bceb6","4328343","1506884896","10/1/2017 7:08:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x7484c2adc2a63975645ed72af57eea3b0e82559d","499" +"0xdccde406fa668a067f0dc7c768377caf7940b24a0f88b1225612fb48bee94962","4328370","1506885788","10/1/2017 7:23:08 PM","0x7484c2adc2a63975645ed72af57eea3b0e82559d","0x57e9d807c28e50432f39220ebcc01bc1ae07d7e1","899" +"0xe4342837630fd30e8987744c4e4e67c033db1725025ced5a4e55395856c8fe6b","4328372","1506885831","10/1/2017 7:23:51 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x38afbe038f1eb4ebb0a6e68d5f8df34fc48ffd6b1e46afab13f1788ec6f8cdb1","4328628","1506893991","10/1/2017 9:39:51 PM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","1156" +"0x09e6f9d1c3e02231ea4e8db5c4322dbeb1e078b768bb30df19ad91ada12bcfdb","4328634","1506894223","10/1/2017 9:43:43 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ceea4079a67c905650cd6095bf429db654ce6db","3900" +"0x63e7e63b4ac4d5c99b06c8cf5858373f2b5b8c40375a2a7167bef13343049750","4328640","1506894606","10/1/2017 9:50:06 PM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","3900" +"0x2576563eaf85a5554dca0094df80a8378d242e9afa618275187f31aaebe462c1","4328646","1506894833","10/1/2017 9:53:53 PM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xccc53357c466b55b993c71a5de154adef1c80171309472ac5ad5fd3db28dd969","4328709","1506896279","10/1/2017 10:17:59 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ceea4079a67c905650cd6095bf429db654ce6db","26.215" +"0x0a3886d4b15f959cc225749edf80d9c653612c9a92ee7763945beeb89b534451","4328891","1506901393","10/1/2017 11:43:13 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x00f429ee922559d298fb17b055a50b9776f71ee33a4ea7d2cb8b2dc249a9cce2","4329524","1506920429","10/2/2017 5:00:29 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6122edb3cc94737ae233b946210ed822b402699a","1900" +"0x2836856aac6a8e7404140a1f3b302e649984db0f027f6016c1a41a77c28ae957","4329564","1506921912","10/2/2017 5:25:12 AM","0x6122edb3cc94737ae233b946210ed822b402699a","0x50ae5a823b3680c750da245c5c4caff029d52a39","1900" +"0xeda6ba1db1e756b08b1636fcaa4d885e8b9e3bb6c3f0f32b44ba9415d1fd64f9","4329569","1506922095","10/2/2017 5:28:15 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6122edb3cc94737ae233b946210ed822b402699a","100" +"0xb2a07d3ebd8060eb3ccd4ed2d5d0da0a045af6dadb5c0211b4d4e1890a30a223","4329615","1506923091","10/2/2017 5:44:51 AM","0x6122edb3cc94737ae233b946210ed822b402699a","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x54bebacbfcb1fa740844798ad1a88b4e506289ecd01b2411b9cbe00fbbc31083","4329649","1506923840","10/2/2017 5:57:20 AM","0x6122edb3cc94737ae233b946210ed822b402699a","0x50ae5a823b3680c750da245c5c4caff029d52a39","95" +"0x522ae5c967c3771b7b600fd92f8395348af4e23482ba98d9f4b6e76a3884035a","4329652","1506923954","10/2/2017 5:59:14 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6122edb3cc94737ae233b946210ed822b402699a","1000" +"0x478cb8e77a86d774390fb394f35d796727117d32b647c8f2cd3a2f6d98fceae2","4329655","1506924055","10/2/2017 6:00:55 AM","0x6122edb3cc94737ae233b946210ed822b402699a","0x50ae5a823b3680c750da245c5c4caff029d52a39","1000" +"0x6dd99958d1442c0a410ea247a47bbaf467636c6809614371f0e36219fa815cb8","4330229","1506940969","10/2/2017 10:42:49 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","1" +"0x35296985e7fa4de6403fc5f6cb1a75a4a316773d5c589dcc29e0426704272e86","4330238","1506941226","10/2/2017 10:47:06 AM","0xbde173bb88045f4810f31c5e89a100e11b756a8c","0xe664c8bbfd2d2c0450b25745427ab0e8ecf7c728","0.5" +"0x242d32cf1b257310803eda7af1a4f1a0bc99ae6b4bc0d2cb05e7d1ca8d6374e9","4330329","1506944426","10/2/2017 11:40:26 AM","0xbde173bb88045f4810f31c5e89a100e11b756a8c","0x54817dd81bdca8e1a245b861c6ef200283fe7865","0.1" +"0x18d5b437906b8fbf1b637d5eef5f6d8f85f4d5f9b07ef2b72dc1fb19168d4755","4330773","1506958634","10/2/2017 3:37:14 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x018185beac9a9666cb406bdd62501e11de5cc8b5","4" +"0x656153189e45a900583de57f95d7100b6c93bc5ea229d7a6d3c99c94126f884b","4330827","1506960114","10/2/2017 4:01:54 PM","0x018185beac9a9666cb406bdd62501e11de5cc8b5","0xbf29685856fae1e228878dfb35b280c0adcc3b05","4" +"0x29822b225ef48cb2c19c06dc102f0c776286196483fa34220b695f9b2aa1e75b","4331446","1506978483","10/2/2017 9:08:03 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","1" +"0x233b27b6389dfef219c06389818f4a400a9c423672d8f6a8ec34d38c1bdf3e9b","4332118","1506999387","10/3/2017 2:56:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x50ae5a823b3680c750da245c5c4caff029d52a39","4539.174" +"0x1b52170728e7c72675993e8137d8276ebc081646b5bd1a23615a8dd433c2c6a8","4332138","1507000363","10/3/2017 3:12:43 AM","0x57e9d807c28e50432f39220ebcc01bc1ae07d7e1","0x740d4b3119b956c1d19608da39730499dbce4c01","899" +"0xf8bf4f37e96f555c5068f065d6133386ba1f68f4ab6b10f3030796cebcc20b26","4333255","1507034422","10/3/2017 12:40:22 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x46d20d4fb63e492d1b227a9ca3aab1598ac0a22b3318b78d14914e30204504bc","4333258","1507034605","10/3/2017 12:43:25 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","5" +"0x6ccb056a76cdea6668854af720f7cdcb1f28151fad19ae32e01600d1cb923a28","4334435","1507069749","10/3/2017 10:29:09 PM","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0x1ed61a0c967f88773a5ea8bcc2fd5af65227846507ebed40f12ac7f890a2ea4f","4334438","1507069875","10/3/2017 10:31:15 PM","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xe169a600c4107ba81b995875e2b20fccb325fbde17fd91b595f333de7f0d0ab4","4334438","1507069875","10/3/2017 10:31:15 PM","0x88fdb76ec63877cf3f5e159189b2a510dae3e718","0x1db13e6336fd01d1a1b4ab4211f17c5fa36c6e5f","1" +"0x813a1a2e90ed1d0d42dc273593c88f4f4de0a9ea54cd733c9647553bd591dbca","4335038","1507087030","10/4/2017 3:17:10 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe537f6b5091f05f648251d524553d426e613c289","90" +"0xdbe0e07f8e524e63d78c5da6fbd86b1bbd0987b43099b953278c0db60d12c078","4335296","1507096105","10/4/2017 5:48:25 AM","0xe537f6b5091f05f648251d524553d426e613c289","0x949bed886c739f1a3273629b3320db0c5024c719","0.1" +"0x003623218fc873a06e154b3168231dd9b0e9d90c8199a792e70b9c1fe572afb7","4335398","1507098748","10/4/2017 6:32:28 AM","0xe537f6b5091f05f648251d524553d426e613c289","0x2aa0eadf601bd8ac57cce0325314b06d2ec8765d","20" +"0x6083daf83258ed5f5087e4ad201cd51958253d5dff08477a229965a556b47c21","4335435","1507100083","10/4/2017 6:54:43 AM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50" +"0xd013926129a81cf1ec01563bf91c6cff38df478c72ab0cf2538cf0cd68be0276","4335526","1507103036","10/4/2017 7:43:56 AM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","80" +"0x9381ea9e93ff0b886d03a888b46eea03c3226d731e574e0e79978bd66c609008","4335773","1507110362","10/4/2017 9:46:02 AM","0xe537f6b5091f05f648251d524553d426e613c289","0x1b42f388a049599832d6c54bb4239a2cd77b7bcf","2" +"0x3e07d1d4475bb6828a1ca77f4b4cff0e7eec7d10bf7f9d6469564dc6dc7841e1","4335826","1507111894","10/4/2017 10:11:34 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","80" +"0xc777dc0001181136e67bcb7f99d3311572528c73d0e6746a372238ee1e860654","4336849","1507141668","10/4/2017 6:27:48 PM","0xe537f6b5091f05f648251d524553d426e613c289","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0.1" +"0xb9a5042a2c9ec31fc5221e47c3c77dc0c211dc22042d049a7131226df036713a","4336887","1507142770","10/4/2017 6:46:10 PM","0xe537f6b5091f05f648251d524553d426e613c289","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20" +"0xe6b216f5bfb49264f3a346a292fc0c9973e1439dbab12c7c7e7689ac3f7d3641","4337630","1507164968","10/5/2017 12:56:08 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x50ae5a823b3680c750da245c5c4caff029d52a39","499.481561252" +"0x3ab78ed8e01e462ce1dd59865b7ab0a1a0121a8452de2b49f7b1f31d03c5ff54","4338044","1507177290","10/5/2017 4:21:30 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","2868" +"0x6b31ec915ec53380c1de4b6baa0ea7163beaa4a9474ef8904c82cfdae6bae8cb","4338050","1507177596","10/5/2017 4:26:36 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0xe26fd1375535967504475bd07df0293ee5d41695","0.0036" +"0x43a51123c6f9b7df32d4672eccc55332c86d2a9f83d3f9038b43a2f060bc9f63","4338063","1507177882","10/5/2017 4:31:22 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.01" +"0x0d41ec75ed239e6e73bff6ad2574e928c4161f0a060e763f3a7ff353d12a3212","4338069","1507177976","10/5/2017 4:32:56 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x23823c80bfecf1f23a6f37d9088a03daafda8b38","32.5" +"0x732866c61978b6b18685afa52fe6de3ca5c78f2da4b1e61806fc79a53fda08dc","4338077","1507178153","10/5/2017 4:35:53 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0xe26fd1375535967504475bd07df0293ee5d41695","1" +"0xbd209ee5d7b496aa08dd0705376c1c9c5afdf320267d4933b67a0039787d2726","4338084","1507178316","10/5/2017 4:38:36 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0xe26fd1375535967504475bd07df0293ee5d41695","0.0036" +"0x6d491f2d9163ccc352118b48b57aa9c20104f5fac8353ff421da6c134de49903","4338088","1507178364","10/5/2017 4:39:24 AM","0x23823c80bfecf1f23a6f37d9088a03daafda8b38","0xc726061a248a13b7945687627df6f8be7a7ad7cd","32" +"0x13c51424b3c0f844631210de114a163783fd12e2c90f51a3d5a24e6e4021f1c8","4338093","1507178453","10/5/2017 4:40:53 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0x949bed886c739f1a3273629b3320db0c5024c719","0.0036" +"0x76b88de15a64312ee8713e7493538dc820785b4132037367b7b4b48ad86df78b","4338118","1507178965","10/5/2017 4:49:25 AM","0x69e42a592e847e83b7711f7f34d20a6ca89b68d4","0x154a2928d8186c2dae1052faf2e02890b4f55358","2866.979" +"0xeba59bc9278e4819e98707265b5730d55ba9fae0c22ce6c7d66d925fb54f5ee5","4338131","1507179433","10/5/2017 4:57:13 AM","0x154a2928d8186c2dae1052faf2e02890b4f55358","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2866.979" +"0xbd083c2bd155675b9faf6a787c6589522f87a2caf191c91fcd5f7235933c739b","4338191","1507181482","10/5/2017 5:31:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x154a2928d8186c2dae1052faf2e02890b4f55358","1464.785" +"0x02b3fd8d8fe79f38006c8a63fe766e34a02902d70302d7361b7e1f6460da63ca","4338234","1507182894","10/5/2017 5:54:54 AM","0x154a2928d8186c2dae1052faf2e02890b4f55358","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1464.785" +"0xa89b8f1a97bc0cf55fa0f121db4d8d2cc71c399fd86b639e2e67a1990ecf0e01","4338248","1507183093","10/5/2017 5:58:13 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x154a2928d8186c2dae1052faf2e02890b4f55358","1464.785" +"0xda31d668a6e4e7700b141b5f42942d4ee9a2dab2db9421d85e9b1d3cce3e15db","4338253","1507183207","10/5/2017 6:00:07 AM","0x154a2928d8186c2dae1052faf2e02890b4f55358","0xc38eec654acf6cc905641210e39c902f5a635242","1464.785" +"0x16c084976ca531b8fe99dae75db4058afcf03756dd4c931629944efbdcab35ea","4338392","1507187015","10/5/2017 7:03:35 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x23823c80bfecf1f23a6f37d9088a03daafda8b38","3.2594" +"0xbf48ab15bf39c195c61968d2171a753982b50fd73b9cf1f6c75a23f5cb4ba9fa","4338489","1507190100","10/5/2017 7:55:00 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xb6dba64619f3a70bdd4ffde2e1f5281a0009f041","0.001219223" +"0x1a0bf737958c35030bd8f2247d8b45960083a17ec082eb7f869ff0e0ba027a9c","4338611","1507193469","10/5/2017 8:51:09 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x95c3bf2c07d5034771cfb497c6ab679a44e69b1716ac5eb7621552a3e25145fd","4339344","1507215194","10/5/2017 2:53:14 PM","0xc38eec654acf6cc905641210e39c902f5a635242","0x154a2928d8186c2dae1052faf2e02890b4f55358","64" +"0xaa383103040ed12510b5f5acd9038ffbdbf254f75803fdf627f157eed5811d3d","4339366","1507215832","10/5/2017 3:03:52 PM","0x154a2928d8186c2dae1052faf2e02890b4f55358","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","64" +"0x93e578310255f5b1baf2b915c8275fc245261c151780ecb68d7920076133ca71","4339475","1507218966","10/5/2017 3:56:06 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x0de0bcb0703ff8f1aeb8c892edbe692683bd8030","1" +"0x98d1dcdfdb1f4851a778935e77724409ac2709174e29547278e603324bb32d76","4339475","1507218966","10/5/2017 3:56:06 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae","1" +"0xb9b7922a6370bdcd4f755690d7d2e8fe48cd05e93dbe3e9c526ab7e1a112a5ad","4339475","1507218966","10/5/2017 3:56:06 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xab7c74abc0c4d48d1bdad5dcb26153fc8780f83e","1" +"0xb40e10d16b57cd95490e6ac357c00e971734577a6a0e655a36fe060a8c663ffb","4339497","1507219520","10/5/2017 4:05:20 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x93b7e9364c4df6de55ed0d10c80e7afc0612e93a","1" +"0x2f94faee8cd537b61fe4014c0a370caf3160866eb78f9666758cee71634b55eb","4339538","1507221228","10/5/2017 4:33:48 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x281055afc982d96fab65b3a49cac8b878184cb16","1" +"0x92594e5d6189403f1d42a8f02778a2fde39259ad8032fe596bde610af3b4fb5a","4340287","1507243467","10/5/2017 10:44:27 PM","0xb6dba64619f3a70bdd4ffde2e1f5281a0009f041","0xa531704e881f797b524f87d3ab737e592ed11d68","0.001219223" +"0x614e51756a8c4e7247a8912e90c910ee4ec61b39b5e163649f96bc9f4ce8226a","4340287","1507243467","10/5/2017 10:44:27 PM","0xa531704e881f797b524f87d3ab737e592ed11d68","0x65f2dddf638c7a7118b22d610c9aeba141f2467f","0.001219223" +"0xf739f114472d6f7366a71a1acc38d31d0a4a9e21dbea24ee9f8b52c82971cfa1","4340287","1507243467","10/5/2017 10:44:27 PM","0x65f2dddf638c7a7118b22d610c9aeba141f2467f","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0.001219223" +"0xce550c417a2757c61bcd4c4d8b2ff1a478157b2e5bdcaf6aebe705f20ffffeaf","4340563","1507250908","10/6/2017 12:48:28 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","3" +"0x631a5c0930af22d86f691f418b997e1df35929bcef5fb178ed0618ed9dc020ae","4341695","1507285660","10/6/2017 10:27:40 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0xf25870d51dae7c855ea5255664bb6247704202958e689ab237af4fc2d5dcd5ef","4342937","1507322777","10/6/2017 8:46:17 PM","0x23823c80bfecf1f23a6f37d9088a03daafda8b38","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3.7" +"0xf1d5b17adf4a3353ee550cd66dcffc2e4f56354f2194e13d90520d58b00317a6","4343311","1507334568","10/7/2017 12:02:48 AM","0xec86a92b2ec5a0df8c1a1ee40c59899104e5b8a1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","65000" +"0xa740feee62447cbbe248968a4ae42b3b8d31b5676930e32d230a27269b64e964","4343980","1507354579","10/7/2017 5:36:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8e7601f7daad7a0993474106d6fe1e1761326e25","1384.528" +"0xdd43a60fcbc61f8087c3b8a02b458da3f4aecfe49e320216b56b1d3d46b60e02","4344311","1507365911","10/7/2017 8:45:11 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","3" +"0xdb2a8684953c87720abe7a1f629cd7ea5159fdf924a394bf8ba4fb71c74b5b77","4344347","1507366936","10/7/2017 9:02:16 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xe26fd1375535967504475bd07df0293ee5d41695","0.004" +"0xa45eb7d169e5f0809d6c425bbff44a0a7986f7c571eb41f2ec1b6440b86bf6d2","4344361","1507367437","10/7/2017 9:10:37 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.01" +"0x1ea6eb99518116228e26faafe6951c8635c2320beb11fc90cb143d0942cbb13f","4344372","1507367786","10/7/2017 9:16:26 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.003" +"0xc279c29d4776f7c5cdc965fbb72011694a8bc29fc4b6d406753e42dafa62404e","4344394","1507368410","10/7/2017 9:26:50 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.003076923" +"0x79234ca5d42f5f669c1525e1a09e9c074fb630486d00c96efb5b2a4ee16cd7a9","4344412","1507368960","10/7/2017 9:36:00 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0.400801603" +"0x3536135ccece04e374e9a695911f9305b51f3f083a70fc520930c1dbbc9c1ab7","4344429","1507369429","10/7/2017 9:43:49 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x75112ee7b7662f7c59b4adc3cf0e0f8af25b71a3","20" +"0xcbf78801a2e55e2861d4693cf66698061af5d9d1a35d669a21bd69df11f0b774","4344442","1507369814","10/7/2017 9:50:14 AM","0x75112ee7b7662f7c59b4adc3cf0e0f8af25b71a3","0x2acce8fca7300dfbf37ba1268895e72fc204885a","20" +"0x407b95c2f6d5239318988cec57e94b14d07344ea9f1b15d708eec514d32d75c1","4345000","1507386627","10/7/2017 2:30:27 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x5a9ef101201e4bb2ee89c104ab8f44307d9eb1023fe31624d79e4ab19d32cc84","4345747","1507408539","10/7/2017 8:35:39 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x70704e6ea730bf9ec2e4dfe45ff2b2408a90670c5b5d9d78e1f7ee55f36a7add","4345892","1507412884","10/7/2017 9:48:04 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","2.004008016" +"0x5d2ea4cf3cd5881944c00068ac567bc1b29f93ae47ee6fd7685c34f2783c632e","4346092","1507418701","10/7/2017 11:25:01 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x4e3f52d523e288bab704ebd22ece24918a639901","3698.5" +"0x522b7221ddfea26ff5db3db62696c520e84c912a9e7470a183bf171a787f954b","4346096","1507418756","10/7/2017 11:25:56 PM","0x4e3f52d523e288bab704ebd22ece24918a639901","0x66788369a4337670fb437203f3add82db70a100a","525" +"0x313bfe1cc5cffb7ffe118be17197efaf08c070101618af17982fbf27898a813e","4346108","1507419096","10/7/2017 11:31:36 PM","0x4e3f52d523e288bab704ebd22ece24918a639901","0x5d10f09afdb6431f2099d0049b1fbf53b635bceb","3173.5" +"0x048d71faa600e47604deaf3ce1c7cd954f6c5982b090f24e01bc32bbf4cda971","4346268","1507424654","10/8/2017 1:04:14 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1370.528" +"0xbbf762e34bc2ff5c49068cd4acccbdb380897dd4d52c93c28dabd19e6eb16de4","4346278","1507425046","10/8/2017 1:10:46 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xbd7a573c3779fda603ed3fb07fd51662ed42dd89","5" +"0x3d304d8403198743ada9dcbc1afa949424101b741501635bde199e8e435be5bb","4346290","1507425311","10/8/2017 1:15:11 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9" +"0x10922fd17054bf6a08df1c2fb6c0dd99e62184335cf6dabb55cc342b8db78786","4346326","1507426355","10/8/2017 1:32:35 AM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","26.215" +"0xf391af11b2a61bdd6a6b45698d553c1945c3be836b3480dad40681c1fe3ccbe2","4346335","1507426608","10/8/2017 1:36:48 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ceea4079a67c905650cd6095bf429db654ce6db","0.00398765" +"0x57c7c460f628127ac4487b90c69a0ff93a6c03482c7266fdcf80d7815eec7592","4346434","1507429578","10/8/2017 2:26:18 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x6af2d7a0696762d9fad28cb6f9aa6d47f7569e0d890077dd78254754694759c1","4346849","1507441476","10/8/2017 5:44:36 AM","0xbd7a573c3779fda603ed3fb07fd51662ed42dd89","0x8e7601f7daad7a0993474106d6fe1e1761326e25","5" +"0x5933e596240582269c519ca8c7628bf02ca9ded69182686bd18ef58f89a2e883","4347010","1507446581","10/8/2017 7:09:41 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8e7601f7daad7a0993474106d6fe1e1761326e25","1398.392" +"0xe091c5b0953634d35ef775f2eb8656c066556bbe534bbfa506e9952b7c42e1a8","4348094","1507479309","10/8/2017 4:15:09 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x72babac1ac0f1ef07c4eda3974c550bd4eb6ecaa46a98e11d7836ec66be122be","4348157","1507481194","10/8/2017 4:46:34 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","8E-05" +"0xe037078d5343749a62d4e850b197447c067911f5e424c0a015c6e598e6393ca5","4348181","1507481847","10/8/2017 4:57:27 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0.000112" +"0x02de519bee7323e05fa50aee7b188638fcd9678f64847d57431eb29c89a05d0b","4348324","1507486212","10/8/2017 6:10:12 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x7e4eec6a12b65510c8e208ae618e3f403dfbda54a7f23345bbd00b6b233e6877","4348526","1507491606","10/8/2017 7:40:06 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xe26fd1375535967504475bd07df0293ee5d41695","0.001184" +"0x05125baaf1fe16f542c2283bcee0a84860b34079067742633f07d93fe33ee2c8","4349136","1507509873","10/9/2017 12:44:33 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0xfe20c7d51d1577a890f6f911a8876e0b10bcdbf79f73716ecc3a7c1c27c3c117","4349146","1507510099","10/9/2017 12:48:19 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1398.329" +"0x0cfb27fcd513f7ee4686122eca821c9fbdc43a8cabcef3281626e2655b2c821a","4349415","1507518105","10/9/2017 3:01:45 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xa3bdfcfb3277e3b72afcde7adae4a85226c214f33a105cbb207e57fe06d776e7","4349903","1507533766","10/9/2017 7:22:46 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x91f9abf5194a6c8e508fdb38f7fe12df452828fe2c46951c0123671de6461cbd","4353407","1507638222","10/10/2017 12:23:42 PM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x60bbad4645c5e3acc18fd4a90fa247ebf70de8abbce69400c0675e0505b9bbfb","4354035","1507657274","10/10/2017 5:41:14 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf46ede17c0bab20d87cd079a2632f71433a407b9","1" +"0xc0538dcfe2091da9e2962524e09ac4a7b4130c4ec5a1486da5418bacf29742b3","4354218","1507662733","10/10/2017 7:12:13 PM","0xbde173bb88045f4810f31c5e89a100e11b756a8c","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1.1" +"0x25eca87a5350d41e15f3a9954691599a4d24fd5dc76b5f77ae10b763afdb918c","4354542","1507671230","10/10/2017 9:33:50 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x10dfaf7f79641cdd8e972a7622c8859fbbeeca15c91147b58a9a778f7884aa6d","4355319","1507694608","10/11/2017 4:03:28 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x9969cec117c4f64d73006f78bfb4ee28e6b91f87568e60a3a557720571d01225","4356965","1507743454","10/11/2017 5:37:34 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0xc37212209e63ec5076d0566ed33caae17f68083c2138066433babad26741527d","4357005","1507744760","10/11/2017 5:59:20 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0xdbf62225e4275baef4a51c5f22d1e51ee6a1f004ad5121c06db3aaf1eea63769","4357020","1507745052","10/11/2017 6:04:12 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x1e772aec51d5b6e7ac3a9073b261ba4ba372f3cbc762cd392e32b7a172e69b54","4358358","1507786052","10/12/2017 5:27:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8e7601f7daad7a0993474106d6fe1e1761326e25","100" +"0x097225c85b76be635af468497fef68e7722ee8e22d8bfa077d96ec7dd5488244","4359739","1507826895","10/12/2017 4:48:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x02155f811c54bee45b39fc04b7132ffd49b45bbc45612efc717cff4b9cccbce3","4360014","1507834762","10/12/2017 6:59:22 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x5d52f28b1ac997dc767f0bd2a3dbb7dfe05f6880c1c6aa35259799e32ae39142","4360042","1507835568","10/12/2017 7:12:48 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6f72fad6e2ae275ddfcb13b01bdf36a64e9b225a","1" +"0x5bf639ebc743018e33faac2f11519e2d8179764b082b1dcab86df75fc59289af","4360198","1507840007","10/12/2017 8:26:47 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xdbcf211e293c13732279adafb81a426bc165dcf6e97535eed749ade9671f2068","4360268","1507842434","10/12/2017 9:07:14 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6f72fad6e2ae275ddfcb13b01bdf36a64e9b225a","3000" +"0xf676e3272a78da967e3273553a625fa4e44b9d4cfb68287a64a337bf11488501","4360322","1507844086","10/12/2017 9:34:46 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x125a55027c5cb48e9702521f24dab0dac11a769b","1" +"0xc36fdb4458aa11f812d012752cfa251ca835d72f4e04b7b5ba96fa6a97ee8b02","4360354","1507844905","10/12/2017 9:48:25 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xd26114cd6ee289accf82350c8d8487fedb8a0c07","1" +"0x59d57a55b71a5be5f65f88cb11de379e0d4a31b2059d3349e6fb3c31216c4639","4360493","1507849051","10/12/2017 10:57:31 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x61edcdf5bb737adffe5043706e7c5bb1f1a56eea","1" +"0x6554aaedd5da12470cef12ba3f431e04c76d9bef62a8d32ff91a0ad494d30683","4360892","1507860381","10/13/2017 2:06:21 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100.063" +"0xe7dd5164b3740052236e8841a3c01f8f7e94bec20cab62a06ae7b00864baff33","4361427","1507876047","10/13/2017 6:27:27 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xafa72fdd9aff5177fa402469c688c21998382854","1" +"0x91afd7242fc9c7d516be32528271f56d0a35738c3bc79a5c1c7d67493c8e6e5b","4362685","1507913173","10/13/2017 4:46:13 PM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xcc61938c6d0e0fabdfb6a3641c1f32350df0d07f61b8b2bd01850003a2123104","4362776","1507915612","10/13/2017 5:26:52 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","61.417617416" +"0x36585c9f80fa70cef268a523455d4c68271b932da41c2091f9959e29038ea891","4363056","1507924311","10/13/2017 7:51:51 PM","0xafa72fdd9aff5177fa402469c688c21998382854","0x07ec30473ef6e1b9a434b1d48b97f79d46c13d5f","1" +"0x3123165d7ed0eb7d05af10f04f52b9d3bd0f33baa26d347d85de5409e02d8419","4363181","1507928576","10/13/2017 9:02:56 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x3881f479618d6caa6b1a89dd3c79dd8706fbcfb6af0359ce6e9961951273443a","4363308","1507932386","10/13/2017 10:06:26 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xe9aa9d9a823a7bb568b6702ff12c544f713758c92699fd81ce25154d63098ae6","4363331","1507932896","10/13/2017 10:14:56 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x44f088f179301cc2fbe9da78fcb59ddc7a69221290ac5eab9d14a58bdffb2f6a","4363517","1507938500","10/13/2017 11:48:20 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x319a294339c6eda82d5a3bcfb6f54daf61ddcfdb","0.001" +"0xbb5614271c19f04cee933dd2a7adc9081ba6b02faf3114b6cba50b7cd0321a5b","4363532","1507939036","10/13/2017 11:57:16 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xb344c5959f5a22a0ae1c60e09d1c67482d5e4cf1","0.001" +"0x78027383e4a080baa75d73d8e081cb08e81db3d1641087d44ed2cedff8000224","4365752","1508005715","10/14/2017 6:28:35 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xa96f6217125616fd91260f90155d49b8c5d7cc12a88065a91c868e0955ec23c4","4365981","1508012508","10/14/2017 8:21:48 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x43d2c6322dbb5f88c011f64e4285df241aed77ca5812ddc69484003ac427f46a","4368315","1508081029","10/15/2017 3:23:49 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","1000" +"0xcde05a70aa916554b2464f635a52789b8a850710fbcc69350c297acec84f9dbe","4368329","1508081588","10/15/2017 3:33:08 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","1495" +"0x0f5062595c7172c48d21885fa256459c9682874e602027068b869ce9124b278e","4368411","1508084204","10/15/2017 4:16:44 PM","0x951eb1101ba23381ed384ddca5dc2014364811e3","0x7643332e7aae755a1a59c782c80fd00cca06dfdc","2000" +"0x488da2d6578699d6b9898c0ccf38897b2f12d7e899aa4f50360beb0a6be780a8","4368441","1508085182","10/15/2017 4:33:02 PM","0x53123bb797c21eb4e3e8d95bc6208d8e5c379c6c","0x7643332e7aae755a1a59c782c80fd00cca06dfdc","15072.99" +"0x9f99ab6bc7dc26d574a93a0e065bb6e9b1e0f28b73fdc6f56076e29630da73fe","4368726","1508093402","10/15/2017 6:50:02 PM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0xcdc6ec01010afdb5a39753e8c8265c65dad308afeb7989e8c1c76489b1df263f","4368757","1508094235","10/15/2017 7:03:55 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xff66d26c37c9a85fc343593f4e0ef537ad1c116b496f286e3edeb1b9866e6700","4368801","1508095635","10/15/2017 7:27:15 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xee04ef6fc049056cda7d4ee232c8af0d6c312e175a6a5ba01d9243387f8917e4","4368801","1508095635","10/15/2017 7:27:15 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xc10ac20a1285049beef95910c427862fbe46cdbb937dd04c2e6f032415b277a0","4368856","1508097356","10/15/2017 7:55:56 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x6ef27eefb95d4fca53e80b359a6ce821c9f3677403b88d58131495f415aa9b8c","4368880","1508098249","10/15/2017 8:10:49 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x20672cc54ef513e1b6831a41cd60c9063c6b13cc6d4bbe21dff8e4a7501ec719","4368938","1508099936","10/15/2017 8:38:56 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x021dadde60d2cb59ae9f8a8b14f9fbce5163082a","2786.148" +"0x75eaa6f586746d0f341379c90ab3e765593595e44cb766fd8fb5743fd207ee9a","4368949","1508100312","10/15/2017 8:45:12 PM","0x021dadde60d2cb59ae9f8a8b14f9fbce5163082a","0x2acce8fca7300dfbf37ba1268895e72fc204885a","2786.148" +"0x99f5b8e3b0b023b6fa581e1a77fd3fad02c1b0ea7558f77261138750c9217bb9","4368965","1508100735","10/15/2017 8:52:15 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2804" +"0xdb4b3fd7a131af86851be7c5d8c2b3f5a33305b1ae821be385b69e5b7bea3941","4369013","1508102915","10/15/2017 9:28:35 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x6bad34537a6f53e1f9f9501a43122de81554661abff3cdb7ce98634aa2b95f9d","4369069","1508104330","10/15/2017 9:52:10 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xafa72fdd9aff5177fa402469c688c21998382854","0.0001" +"0xf3fe9801ce392ab4a60e796eb150aa46b9555c5e09acf39afc876f157cddc789","4369085","1508104783","10/15/2017 9:59:43 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xafa72fdd9aff5177fa402469c688c21998382854","9.9E-06" +"0x7e48cd18501e4ead179616a067ead7d496a558ad24d50893ada4536f8e8c9d17","4369260","1508109660","10/15/2017 11:21:00 PM","0xbde173bb88045f4810f31c5e89a100e11b756a8c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.5" +"0x41bfc3c53a16ff1c990b884ade02c7490d50a168ea3057b885351ce092499ff9","4369301","1508110560","10/15/2017 11:36:00 PM","0x680ea6597186219e9abfa407e1293d0635966847","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x4d8c49f95884f8899b131410c428c956c252b3c0a54e5f575a549ea73f81ca7a","4371008","1508154184","10/16/2017 11:43:04 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0x714d234e98226e04e2266f240adf2b82d94733390c9068e7babc2017bc8d56ff","4371288","1508159254","10/16/2017 1:07:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x45d29b26be412fc9083b28753a2754b6f44b4817","100" +"0xc81a4cf4fd5db4b9da06f0195382a8ab87ceb8f3b8daa536884ed84ca2f48e78","4371412","1508161312","10/16/2017 1:41:52 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x45d29b26be412fc9083b28753a2754b6f44b4817","896.909580301" +"0x112c60ac89c9c2996d0310faf89c725eac101dd80e671a14d5310e9ac856cd90","4371429","1508161599","10/16/2017 1:46:39 PM","0x45d29b26be412fc9083b28753a2754b6f44b4817","0x0308ed396ffb464a1afa82cfe37abc74612cc19d","100" +"0xc554b522f66f11e3ca8df1b8be84a176c22ca3b4e24f44696e34fa38eccf4673","4371556","1508163933","10/16/2017 2:25:33 PM","0x45d29b26be412fc9083b28753a2754b6f44b4817","0x0308ed396ffb464a1afa82cfe37abc74612cc19d","896.909580301" +"0x848f8e85c54951fdb71ef62c3a8bbda87d84679b2b9726fae65a8d5099777f73","4371633","1508165508","10/16/2017 2:51:48 PM","0x0308ed396ffb464a1afa82cfe37abc74612cc19d","0x45d29b26be412fc9083b28753a2754b6f44b4817","200" +"0x86187b86be21483a0d3e4fde4704183fc9587df0da3ce840a07ca837fea33ea0","4371703","1508166812","10/16/2017 3:13:32 PM","0x45d29b26be412fc9083b28753a2754b6f44b4817","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200" +"0x82ca15d4eb1c1eb78d8f695d548c53ecc31c5e468831c0460a613e0355f92843","4373122","1508188119","10/16/2017 9:08:39 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xbe4777f3c0847beee9e8439880099bd9c5d95afc04d3be79f4ea3ce0b20340dd","4373131","1508188216","10/16/2017 9:10:16 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x886431b4e12eb10753b4681cfa015b2734e5601cbf364f5d83f231ca5297da5a","4373657","1508194999","10/16/2017 11:03:19 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x23823c80bfecf1f23a6f37d9088a03daafda8b38","3.79" +"0xc22aa3633b3c760a1c9c4b3940e71f5c1066c0358df71e4e81a7e7b84362dd00","4374955","1508213480","10/17/2017 4:11:20 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x80e6eafd18c046a8f9a4a744a896c8a5f5503d04135120f5d5b0ee33cda74585","4375117","1508215586","10/17/2017 4:46:26 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x91835aded36b50417a22611a1814805abca500d6fe4ae4f1cd6cf3f585dede1c","4375328","1508218684","10/17/2017 5:38:04 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","2804.661006781" +"0x57b78a925d3c2d4ff460857853d6e8a8be880b29d25e82d3d51279e2f86d1734","4376196","1508231080","10/17/2017 9:04:40 AM","0x0308ed396ffb464a1afa82cfe37abc74612cc19d","0x4a01e6f293f77c62f040a5dffd5e93093a70e200","12" +"0x70660ce3e467f037674cfd75a58140c7275d34ed10f3e46fef6d5b784de9cc55","4376298","1508232748","10/17/2017 9:32:28 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd1f965da8d21509a74ddeb0ede01db0c7c3d80ca","200" +"0xfe07e395af51034f925a7af4d5932c6b8da7d6989af08b40e1f1c3eb1b3a7c6e","4376360","1508233759","10/17/2017 9:49:19 AM","0xd1f965da8d21509a74ddeb0ede01db0c7c3d80ca","0x747644ddd33a591d954368a1cfaf429ca22b7b40","1" +"0x1068a5b9fe23747864ad2128e2f9ba7aa75dbaab208e6957dd7dce5e94d5acd4","4377626","1508252200","10/17/2017 2:56:40 PM","0x4a01e6f293f77c62f040a5dffd5e93093a70e200","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2" +"0x3fba905f6a24377aad293dbcc1ef547b7904ebf1c4cf00d409680d207e3e0574","4377938","1508256874","10/17/2017 4:14:34 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x4a93fe0625edd6f401c2b7a706a3340671c1dce9748e0c48872e5455d9c76e47","4378153","1508259655","10/17/2017 5:00:55 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x578720e3cb7b94e8a7922eb7de827721704403cb985144d04ddad0eb33d808d7","4378454","1508264228","10/17/2017 6:17:08 PM","0x27f0baf305f6486dfec3560bba44f3d9574f5d00","0xba59a5220e447727ffc7e320e722afaaf6d38d1e","200" +"0x627c591d8d20aba951889ce54f0cbd20ea9a6a9119ad312dc32e171ae8620b68","4378595","1508266113","10/17/2017 6:48:33 PM","0x27f0baf305f6486dfec3560bba44f3d9574f5d00","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0xa4e2b2ba4cc62a50e383499cbf011c565baaaccf3fa300a3496a42abca30c9d1","4378600","1508266182","10/17/2017 6:49:42 PM","0x27f0baf305f6486dfec3560bba44f3d9574f5d00","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0xf095e2e9a8c2a0d080571be9ddbaf7b2cf0bc77f7e1fe9ff5fcdd03159c855cd","4378764","1508268588","10/17/2017 7:29:48 PM","0x4daa00c6944ef98cd7529121a0bbca353fd23d72","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","3158" +"0x0a05de86de4529f433d2160754879657b037aa7c5cd2f62a42ef3fdd8eeb94fc","4378790","1508268924","10/17/2017 7:35:24 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","3158" +"0xa9ce8df2f1af67c0ecab502afec6a40dc12826dde405520531094077ff852aeb","4378854","1508269900","10/17/2017 7:51:40 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xee24184e48cc1eb5f1dd604e306041ae3b78f58bf2fb16adc745f897eb18459b","4379072","1508272813","10/17/2017 8:40:13 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","1" +"0xcb5cae24d185ed10861123ea1d69c36c506d3ce3e5e87aeeda530a960ef9c72c","4379252","1508275293","10/17/2017 9:21:33 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x95da2b32b1da47a822021536c618508ecbfd776f4903b19d7803a1f3ab5d5caa","4379252","1508275293","10/17/2017 9:21:33 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.002" +"0xbd6d43deaee436b238c5189ac360d6b6d8ae85e8b9f6fca5ccbf906d47b55264","4379293","1508276046","10/17/2017 9:34:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x021dadde60d2cb59ae9f8a8b14f9fbce5163082a","3823.29" +"0xcee7b25cc92dabfbe3268feea463fb0815b2b64c6916e102808ad81a179fb444","4379301","1508276113","10/17/2017 9:35:13 PM","0x021dadde60d2cb59ae9f8a8b14f9fbce5163082a","0x2acce8fca7300dfbf37ba1268895e72fc204885a","3823.29" +"0x97eea870a35a62292c2ad204463209e2e5c6aec84fd24a66961732aff591fe30","4379315","1508276376","10/17/2017 9:39:36 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","3552.868632628" +"0x046b055327636b26b9599d1adb0f0880c5bb2e2ece0b08799bb74c93d686770e","4379342","1508276735","10/17/2017 9:45:35 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","206.938687347" +"0xde60a1ac9e67a7bcfde796b95ba45435029b4f9d43bf4860ce7b52c39ab15087","4379425","1508277856","10/17/2017 10:04:16 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x6ad1309de6939f6535f6cf51aa1f1f2d2e427ab287ad27980f6a569c4f09c82b","4379512","1508278913","10/17/2017 10:21:53 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","2450" +"0x4fbb33d9fbe2561c92f30b89a2b5f596465615173e830fde4554bbd1c50cd1db","4380025","1508285794","10/18/2017 12:16:34 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","2100" +"0x84f38e1319192d4d73e8cc6f9d53363587ec198c2b11af3d5a14fb764d7c9fb4","4380220","1508288600","10/18/2017 1:03:20 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x91644e088a67e799fad3fa67e6d12613fb3960b6","1988" +"0x4d3c599fe89bc66329d6a5b1633582254f271bb5dcb5110fb68141984a25ed4e","4380539","1508292800","10/18/2017 2:13:20 AM","0x91644e088a67e799fad3fa67e6d12613fb3960b6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1988" +"0xe7d8c47835e3e019465be8bc3a18fefaeca89c919ee38091044c62082c6bc3db","4380813","1508296889","10/18/2017 3:21:29 AM","0x50ae5a823b3680c750da245c5c4caff029d52a39","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","2" +"0x0921f4cf7f66b222cd4265003b5e5c8f3fe4bde990416bc0a3b18d40c9f4925f","4381382","1508304719","10/18/2017 5:31:59 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","20" +"0x8383ec77adfa28d259c960eb59cbd412bc7a1b5e53228f4da281d35bc462525f","4381694","1508309033","10/18/2017 6:43:53 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","2900" +"0xdf481f9f73a80b5bef127c1ca787d4e46108b04a61efab0743ec93406a89a92c","4382232","1508316455","10/18/2017 8:47:35 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd1346e7a25b100c7c34e15c954a3dbb7779881db","1" +"0x155b5fbad52bc04ed405f8e63e1fa0e24f7c2983e894d55c29f1794cb793d315","4382353","1508318175","10/18/2017 9:16:15 AM","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","100" +"0x23ede0b270270c0d274a5896a1e20ca303c400f046382ea7d0f729e125684372","4382604","1508321656","10/18/2017 10:14:16 AM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xa37ade188a2e6114fa2485319fce88809bad1415","1" +"0x3cfee80c9aeafef2a9e67ee8261b1b3899e45a23fba24040e2f3145a510c4428","4382614","1508321812","10/18/2017 10:16:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd59287c566816360f12d6ad9a6bba0ac8a1ad72b","90" +"0x218c66065ffa0e793344c8801da2d929901d287b91f56f5fc51fb72442491208","4382832","1508324976","10/18/2017 11:09:36 AM","0xd1346e7a25b100c7c34e15c954a3dbb7779881db","0xff6e15299edbe7501fa187341b07e6bdb5bef4cb","1" +"0x241e1f5da9232a5c19d3909a9f43ce9fca0b2f9d4e1baec367ba52cf588bf729","4382943","1508326438","10/18/2017 11:33:58 AM","0xff6e15299edbe7501fa187341b07e6bdb5bef4cb","0xf1083c2984e351c02e94ba4f19ae82c05db06f3c","1" +"0x071d071b53a5f73f38676997ad93acd5be8ee1b71b50d22e8067ed587b84e381","4383510","1508334661","10/18/2017 1:51:01 PM","0xea298fd724d4e7c74cedc6704d81672704a2317f","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","156.28594" +"0x3b0e9d14def4022d4ff77ff4988bcb1b6e7fcc0c3bfe72b3977b321975e267d6","4383955","1508340869","10/18/2017 3:34:29 PM","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0xbf29685856fae1e228878dfb35b280c0adcc3b05","465" +"0xe7766b565ee8c7881803dbe307e2061ccfadbcb9d9295712066d7cab0051fbdc","4384103","1508343168","10/18/2017 4:12:48 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x951ff13a979c531149867da34fec95274d513bbb506fb2084716363b629e0938","4384150","1508343855","10/18/2017 4:24:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xf1fb23d31fe6434f43fb0205fefdafaf766ef08c7412528dc4997130ef431823","4384614","1508350348","10/18/2017 6:12:28 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xafa72fdd9aff5177fa402469c688c21998382854","0.0001" +"0x87567a4694f138fb4ef72641b5667e752f237f8afbb2e927edb0de47c0518a6c","4384670","1508350985","10/18/2017 6:23:05 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xafa72fdd9aff5177fa402469c688c21998382854","9.9E-06" +"0x1767ad9dba7de568920aea9af2fd8b39d729d263dee0d96963bb49c85d35a54b","4384696","1508351433","10/18/2017 6:30:33 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xf6075c1be1cf6c82ebcfb50dbc95ade2bfc8005c4e9ce6ddf03e07a3ba350aa3","4384724","1508351901","10/18/2017 6:38:21 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xc7b634132a3a6a20135142a908e6b77c547961f7a58f1177e088758aebb89ed1","4384760","1508352394","10/18/2017 6:46:34 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xc0252759ff5db5c9dd3b61cd962d2ec9664937c3bf27583d5f523bfd93cb77a9","4384925","1508354503","10/18/2017 7:21:43 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x61791ede229963470920b4902cb2453adb6977fb","10830" +"0xeee772ef0456a03e6c03aa3f90cd9879da71fd1a64be36efd916bfdb7395b1fa","4385025","1508355726","10/18/2017 7:42:06 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.002" +"0x134e23e1cf85c685698dc2083cfcacd995a80f53949973991183473773567f16","4385088","1508356700","10/18/2017 7:58:20 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x78f42b0baa91dc4112484ff545e25843c4e2472debb064a5dd13feee3d2386b6","4385193","1508358350","10/18/2017 8:25:50 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0xbca9f09ba21aee4136db1125ee89c966d39eff4583f38031ac9fa47c7338c63c","4385459","1508362036","10/18/2017 9:27:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","885" +"0xc1d8f749194e927f952d5ecd1a9fdb188e59d20ca2e4f360e3850e4a29b56751","4385532","1508362970","10/18/2017 9:42:50 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xafa72fdd9aff5177fa402469c688c21998382854","0.0002" +"0x574f482ca16f2203d561c29e4db82c5675a9bcc3194dcae63b18a079ff90d641","4385573","1508363625","10/18/2017 9:53:45 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x50323a932087e7db048d281eb2dccfaa2ef9c0296df66c8fa5767d6456de2b98","4385618","1508364213","10/18/2017 10:03:33 PM","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","0xa0bf8d9ceb1515b23426ccda8d06842b9cd262bd","5" +"0x3b82af03228fc7c5cb4084a17522cc81e603d7fea76f0a3f85a96367c0da22e9","4385621","1508364275","10/18/2017 10:04:35 PM","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","0x051ec8fdab7feda94e421cbf8e256666dc782ec9","5" +"0x7c4553f02f66f86ed4f5744f86ced70a754ba32991daf869f4a9cb7cde3a8c10","4385669","1508364809","10/18/2017 10:13:29 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","4289.545" +"0x68873202d6b25f182dc2855c94c723abbe5a4b150f004ef1d72c90233287519e","4385969","1508368710","10/18/2017 11:18:30 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000833333" +"0xe7125d96dfaf27045d02c5b9e5e4ab66b69b70c3d4e4b46655c3399766c98f64","4386252","1508372273","10/19/2017 12:17:53 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","100" +"0xc146be413ca0939489ee4815cefca260d557150e74f81e7dac33b33b841450ac","4386383","1508374080","10/19/2017 12:48:00 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001538461" +"0x5c69d4e228affc99057447d53bbd3143671b030fbe0473b56e9f7f204770950a","4387319","1508387263","10/19/2017 4:27:43 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","20209.921972381" +"0x2e88036a7ce12a60bac9fe1a238f094208c8d1e470ae029b4346d06ea4e4461b","4387328","1508387442","10/19/2017 4:30:42 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","13022.412" +"0x1cbe9e990b1c7d82d3d665c72a3eab163a4b9a76a637464233fe6968c679ebbd","4387345","1508387727","10/19/2017 4:35:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","6449.98576958" +"0xa4090dd7ce0ef09de5566b6fc1477626e636204f21383b395ef2669980136cf1","4388449","1508402475","10/19/2017 8:41:15 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5595a80f536b833e84455c2579eab792e9e76d6a","0.8" +"0xda6d413de212d2150454e2378124b77ca5de65169a4d48818b6e77997185ec98","4388550","1508404230","10/19/2017 9:10:30 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.001538462" +"0x7062f2e8e9a244d102e7f52bad87a39830d1404765c8300b3f0568d65d5a458d","4388778","1508407361","10/19/2017 10:02:41 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x153685a03c2025b6825ae164e2ff5681ee487667","8851.059" +"0xf19a392969eb1d50e974a0a1dbbcd52bb1872be94f399adf7d2dfd47973ec6c7","4388781","1508407413","10/19/2017 10:03:33 AM","0x153685a03c2025b6825ae164e2ff5681ee487667","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","8851.059" +"0x4d9948d5a1a3f6c14153b0bbb048ddc1de51f5c353df671a2b214f2647520ae6","4389478","1508416860","10/19/2017 12:41:00 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x61791ede229963470920b4902cb2453adb6977fb","0.60264722" +"0x15364a0a8c4c61ca3945a533a6aa918dbd38597f46f430025359e6824a1960ed","4389478","1508416860","10/19/2017 12:41:00 PM","0x61791ede229963470920b4902cb2453adb6977fb","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10830" +"0x5994b46c6ef3d17a10e42f4ca0536850eea706ce53df1db00c033769d6bec7f9","4389531","1508417507","10/19/2017 12:51:47 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x61791ede229963470920b4902cb2453adb6977fb","10830" +"0x987a0dfca9362117d55c776becce48a7e87f911e84b7554e8a2f299716c1f450","4389532","1508417515","10/19/2017 12:51:55 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xafa72fdd9aff5177fa402469c688c21998382854","0.0004" +"0x428e47c92c4fe82c61de004eb05057ba6c566c8b26d9cc95195346e060c61bbe","4389626","1508418940","10/19/2017 1:15:40 PM","0x61791ede229963470920b4902cb2453adb6977fb","0x7388cf52b6cc23876701f81e0e50d499ebc62b35","10830" +"0x7dd94ba864311d50bce8905e539698658b9df9e8fabe8caf9528cc2d0c79df48","4389642","1508419087","10/19/2017 1:18:07 PM","0x0308ed396ffb464a1afa82cfe37abc74612cc19d","0x45d29b26be412fc9083b28753a2754b6f44b4817","750" +"0x2a611e7f61d0b5e65567b7969dfac7d3cd8c26f8d0b2abf58d4ef5b52ecea202","4389651","1508419257","10/19/2017 1:20:57 PM","0x45d29b26be412fc9083b28753a2754b6f44b4817","0xbf29685856fae1e228878dfb35b280c0adcc3b05","750" +"0xeef1af28d1cef71ff7fbeba23da4a7c7afb7e6ac5d75b9c4adf11447855f63d1","4389658","1508419354","10/19/2017 1:22:34 PM","0x61791ede229963470920b4902cb2453adb6977fb","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0.6" +"0x5e0e61a85022c4a995e6d7624dffba39a59c745cbe9a0731796b887abfbad5e5","4390057","1508424961","10/19/2017 2:56:01 PM","0x7388cf52b6cc23876701f81e0e50d499ebc62b35","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10830" +"0xa2ed180d40ef612a1110699754b33c3d796ef4be9487fb0c279edea5d03785c3","4390065","1508425064","10/19/2017 2:57:44 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x273d5ea0a15ab0baed3f1d18089a1773f3ab17fa4f834321094735bc7976e819","4390078","1508425234","10/19/2017 3:00:34 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7388cf52b6cc23876701f81e0e50d499ebc62b35","10830" +"0xe3604adc4d26d130dfb2b92bd90c25f50b2db7de4565e85012fd68be60509cb5","4390099","1508425589","10/19/2017 3:06:29 PM","0x7388cf52b6cc23876701f81e0e50d499ebc62b35","0x6cd28de8285842813d1fdc0bb604c3708b65d941","10830" +"0x319a2281bc7f5c583490735b14df8ed68a8d311bd9c8784c8ecb0396e87e6d59","4390716","1508434109","10/19/2017 5:28:29 PM","0x414bd00f5753ed57b2fd696ac5ba6a995df38602","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3594" +"0xee51811f2500a8fc0a3f64639b1a4273bd59fb2117c89faf621fdf99aaef9892","4391884","1508450060","10/19/2017 9:54:20 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xde26cf7e71c5f1e06696eae2e554a588af2fa8c165ca11bc918ae157c78f6c7f","4392511","1508459092","10/20/2017 12:24:52 AM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x8a7df795480b4955e12ef2d9bb3e29343aa4ba56b618f8e832706b54cd004974","4392792","1508463027","10/20/2017 1:30:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","2000" +"0x6a9cc64f5d63b7b383b00d2b22a40d493ea4cd12c0ebd0b09b7dacc0ec500214","4392796","1508463111","10/20/2017 1:31:51 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x035392de57aa4fe343d86494103dbe1b068a56c6","2000" +"0xbf7b93f6880da0c2edbb7d040faf3d51c632309c0daa8549ef5af4bdc60efb38","4392809","1508463221","10/20/2017 1:33:41 AM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0xf2648ebeeba0fc9430d88717f30730f7e4fa64593033c1b1f3f4969df0b2c861","4392816","1508463267","10/20/2017 1:34:27 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","210" +"0x66e236577cc2c7e23e788c5630081d9cb92d5f66f2b9bab20ca5f6aedc609adf","4392920","1508464764","10/20/2017 1:59:24 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","210" +"0xcf9b486cd1ce625d1570ab5f46afcd5652afa976520c9b7a9c3d3e0819127de9","4393015","1508465927","10/20/2017 2:18:47 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","2.997550719" +"0x78be002cfbef196a2f6a67e4c226f22f5b91b1e15ec460197cd1936581513bd5","4393032","1508466136","10/20/2017 2:22:16 AM","0x79747a597d680478ef726f79aeb74fed6d999d27","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","3997.027027028" +"0xff2c581a95d5bd4475de0ec5640171dbeb1a33a844bcf80d215835ead46b440b","4393044","1508466276","10/20/2017 2:24:36 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","3.112854005" +"0x573efb73c4c841612186c4c689b46efe62083daefbc876bedfc8001abfc8ec08","4393447","1508472079","10/20/2017 4:01:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8e7601f7daad7a0993474106d6fe1e1761326e25","1303.329" +"0x312a2c470ac5ce8237e8d56d372c66888582dbe9e5a62f0a872505b1418221d6","4393454","1508472155","10/20/2017 4:02:35 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e7601f7daad7a0993474106d6fe1e1761326e25","100.063" +"0xa5968fe71a69037882faf2a340825d69e3596b770030078d0eb6061d58998991","4393742","1508476502","10/20/2017 5:15:02 AM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","1000" +"0x14b85820f80fb90ccd80fb2bafb5562d028009e7042fa3c488e2218dd3034cd2","4393805","1508477355","10/20/2017 5:29:15 AM","0xd59287c566816360f12d6ad9a6bba0ac8a1ad72b","0x56b54f9c232257775346fec1f9ef31402acf35d9","90" +"0x12ec62722cd4957d4c20e1c00d4c039b16ddc4fb96ae6a01869b9e40ecfdee4c","4394123","1508481666","10/20/2017 6:41:06 AM","0x56b54f9c232257775346fec1f9ef31402acf35d9","0xd59287c566816360f12d6ad9a6bba0ac8a1ad72b","89" +"0x8fbd3fd788a9e5d7ca18f7068e84b8bc33cb67cf7023ca28ce0c9cdad2894a73","4394658","1508489388","10/20/2017 8:49:48 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x4ff37bffcc0a2f253359e898765f3377e39936cc78e9cc66e5169f1408d84424","4394680","1508489712","10/20/2017 8:55:12 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","2.004008016" +"0xecf0bbca1c0c648096650d10b5e93efe3876987ad04080be76b17a1db7e7f4c8","4394831","1508491643","10/20/2017 9:27:23 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","160" +"0x64d96e5f380b9a3ead5e814cd469d4f2e4edd281baa17792336a634fb3d7dcf0","4394857","1508491914","10/20/2017 9:31:54 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","50" +"0x0bd57296b490d9a9d970f346d3844caedff372984ccf39547d989b30b49aa6d6","4394872","1508492057","10/20/2017 9:34:17 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xbbc96fa922e725086bf76c48778c3e82c0b070fb12975dee5bc3dcc6d4d5b861","4394885","1508492209","10/20/2017 9:36:49 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x20a28dfaad58601ef902893bf3edbf6862985621","4.996235428" +"0x18ef5bd92a1c4840b57e7965ae550095b598dd14dc1fd574b570e82dd5dfc110","4396065","1508508679","10/20/2017 2:11:19 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","6.110404724" +"0x8255f656d3f1257bf35e6a0b3ddc29066afe6c9b549d09d7de11e2e7291379c5","4396561","1508515868","10/20/2017 4:11:08 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x655dab122cf6a21c7224bb80b63c0083196a86c38e784bb2b3dc64822a5617fa","4396792","1508519044","10/20/2017 5:04:04 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000117647" +"0xb3eacb8cdebd881826c97348bebbee5ddd55bd7ecdf97ec6cd44bad1e3f55371","4396859","1508520033","10/20/2017 5:20:33 PM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","16.119906746" +"0x22fd5809c15897068ae9eeab22e9c4d638577745e66893a6c6ff8b89f06cf662","4396863","1508520102","10/20/2017 5:21:42 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000285714" +"0xee84cf74f988e2e71d841be76c3857aed7e76b8001b444bddb607ea34f246dd5","4396963","1508521316","10/20/2017 5:41:56 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xafa72fdd9aff5177fa402469c688c21998382854","0.002857142" +"0xbd20afb52f2d0b3f918e793e0e3f95e7c50f32ba1b78e3eaea5e556d96c60bb3","4397036","1508522343","10/20/2017 5:59:03 PM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x20a28dfaad58601ef902893bf3edbf6862985621","50.055566315" +"0xc93f5cfe8f34b4aad1c686db7f9b599e077fc48ed6be83a89716d2572ceb8f50","4397180","1508524212","10/20/2017 6:30:12 PM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xe35ac476ee06bcfbcaef84e8ea156013c9a851f47f2a5a1ba5e3b441bb44f3f7","4397250","1508525235","10/20/2017 6:47:15 PM","0xa37ade188a2e6114fa2485319fce88809bad1415","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0xd7ee015cb8a8a54a272017032e8fc24a291a912bd6ae57d65e91d5b1495a6607","4397281","1508525553","10/20/2017 6:52:33 PM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","55.051801743" +"0x4be350134e31d212347f7dad7fa3778b252cdf4cf8205861430f08ca81be939c","4397299","1508525816","10/20/2017 6:56:56 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002857142" +"0x9027d8f487e68ae06fa049527bf7ebb9dbb6388b72559d7c270dc8ee82750239","4397389","1508526905","10/20/2017 7:15:05 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001538461" +"0x0cb45d18d9b3c8631178eb496e52f2efd6586db6d4ad09364035c0b74b8e9e6a","4397440","1508527558","10/20/2017 7:25:58 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x7821434dce163f4bab360da19c66fb5bb43e00389a6a8859aa0e66dcba1b73ac","4397461","1508527821","10/20/2017 7:30:21 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.1" +"0xda5d97f91ac411396aff7d50ec81599c27cb5f074f2053ccd66ed2639f5602d7","4397474","1508528070","10/20/2017 7:34:30 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0.420841683" +"0x94af4f8060a4fefe954c56b00fa249eaa74439653ead08876ed9153594ec2706","4397633","1508530285","10/20/2017 8:11:25 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x10744c7126a5c699fb26f82bf5a4c86ba3b99e69e6949e60d7d163759241723f","4397744","1508531946","10/20/2017 8:39:06 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xb595c8898226023c934ec8bba14a519be16bc20df863ce1793ed4dedef154a5a","4397790","1508532634","10/20/2017 8:50:34 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","16.119906746" +"0xab3f67019c46c2d5a9470747a2f8499a399f08143d0082c05080bff5a7504146","4397792","1508532660","10/20/2017 8:51:00 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7e38351cfcb72b3a6041d302d66bf803eaea2f88","1510.7" +"0x68d05253e7f4bfe7025ada65744284894022179239bd0f368e716516db07010f","4397994","1508535208","10/20/2017 9:33:28 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x730018645a2c7c50a9067dba823cee5cef05ed93215f2ec2147af92c41362d98","4398012","1508535448","10/20/2017 9:37:28 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","1040" +"0xc8cedb36e225e0d852fe2a06c91bf4ff9477b6a0e28d49aab864a8271076edd5","4398045","1508536001","10/20/2017 9:46:41 PM","0x7e38351cfcb72b3a6041d302d66bf803eaea2f88","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1510.7" +"0x559e48ed1d845d829a722f6aa02098897a728f3ec89b43d1c20f3207ca3400ae","4398227","1508538363","10/20/2017 10:26:03 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0b12caf964d658b94cb3353fb94b189675e58a32","2500" +"0xe5a5d78d7cca3d18b8cbf99db7c64eaed0ac04d94ae7e9bf89c70522bb8a619c","4398228","1508538376","10/20/2017 10:26:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6f72fad6e2ae275ddfcb13b01bdf36a64e9b225a","12751" +"0xd0e82ac30ab07347483bbdaba57eada57d3aebde18d657aee77d99f4065292b0","4398236","1508538606","10/20/2017 10:30:06 PM","0x6f72fad6e2ae275ddfcb13b01bdf36a64e9b225a","0xbf29685856fae1e228878dfb35b280c0adcc3b05","7000" +"0xe831c8081e8a5bc0b7d68b63645c03565e700a3fe34dc00ec51c9ac3a3d175c1","4398240","1508538686","10/20/2017 10:31:26 PM","0x0b12caf964d658b94cb3353fb94b189675e58a32","0x4e1b38be4894ad2a52047e5caaf05aef7500c529","2400" +"0x867464a2b18ed8c03f1a0b90f21f04be0080928843f78beb4c7114d975f668d9","4398350","1508540061","10/20/2017 10:54:21 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x803b157fa74fa120c457fa4d3b67291daa35970b592f46db3d27c1c5bd17b320","4398547","1508542684","10/20/2017 11:38:04 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x44c93ed8d717032cc3da894a03b8834a72221b7d","661.652" +"0xcc174773f24de0b22f2ea40c6c0043940b2f4a74c9b24eef898a8b24658168cb","4398610","1508543415","10/20/2017 11:50:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x44c93ed8d717032cc3da894a03b8834a72221b7d","3400.000161162" +"0xccc62f07fa1ce9dfe3c16a3a87bbd8da05096d4dba31ef7ab8d85abb5e857604","4398734","1508545200","10/21/2017 12:20:00 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","50" +"0x9ffd6740c495f06be20eb896145bf02a50c39d06256febb98fad44e876b03079","4398771","1508545663","10/21/2017 12:27:43 AM","0xa38e272f5adb29ed2830c5b4ba23504692483eb9","0x50cd4cb307eeefea431720cc1f06dc12dc0628d8","8829.545" +"0x665c06cdbcc4e0f11ce7987fb08f5d6f74ccd0623a92b6c60071a6c34e1f64c8","4399514","1508555456","10/21/2017 3:10:56 AM","0x4e1b38be4894ad2a52047e5caaf05aef7500c529","0x0b12caf964d658b94cb3353fb94b189675e58a32","2400" +"0xe889561f18ab3f3e65c292eefaec1cdfdfb3675f24d7f495d9dce0d205d025ab","4399524","1508555566","10/21/2017 3:12:46 AM","0x0b12caf964d658b94cb3353fb94b189675e58a32","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2500" +"0xbdb1682317beaed8010662475850678923166fd02577abcbbb373d33f53ad696","4399626","1508557332","10/21/2017 3:42:12 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8a75ff000589d114288fa6b7ca9fe51b9fb69283","284.831" +"0xc1f18c8c08e388e758982b1a2cc4cc4376d0c14d02a4bf964c194d2bd2bb1a4b","4399655","1508557647","10/21/2017 3:47:27 AM","0x8a75ff000589d114288fa6b7ca9fe51b9fb69283","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","284.831" +"0x69ff16ec87bd6f5cafa4c45e2afd7251141efb771d8c18c614405c2d3f546edf","4399937","1508561673","10/21/2017 4:54:33 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xc6b8d304a8e7fc615a0241a7d15145d7f15ecaed96085a1aa0f05cf1dbbb97f3","4400051","1508563553","10/21/2017 5:25:53 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x9d2c8f30eeed601ac348ec9985054b2365886e59cfd3071fc677c8f23b5cc625","4400300","1508566972","10/21/2017 6:22:52 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x20a28dfaad58601ef902893bf3edbf6862985621","55.047541292" +"0xc256d5b26febdfb344824a32e3a434383cafe7981a05a4984d85e6adb8d5b60e","4400305","1508567063","10/21/2017 6:24:23 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","16.115646295" +"0x54023002cb0cd022db32882425a7633cb71a1a8f2e38b2dcba12662c98a8dc05","4400547","1508570343","10/21/2017 7:19:03 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7e38351cfcb72b3a6041d302d66bf803eaea2f88","1510.7" +"0xce9ec828b2a0434f6dd6bcfa2b72e71f3905afb9f77c16bb6e7a8c47b1ad96b4","4400563","1508570599","10/21/2017 7:23:19 AM","0x7e38351cfcb72b3a6041d302d66bf803eaea2f88","0x5f6982d7f4db3de3588c194fa9f1e9941ccaf147","1510.7" +"0x7bc6e3626bb06bc87e21efb1aad9f852437886881f613d7cbebd5e898527996d","4400604","1508571293","10/21/2017 7:34:53 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0xc94ba81f18c59efe3ce36682bf040872d4d8fc5d52b99292b8136211f8ef5d1c","4400651","1508571774","10/21/2017 7:42:54 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xbf29685856fae1e228878dfb35b280c0adcc3b05","53.392" +"0xadd4b852bf45e3c2fe404efd42946e5d9c65e824c557ba948f9947df2142d018","4400723","1508572706","10/21/2017 7:58:26 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","11" +"0x72112f8add960aba4efe528c098f8d59dbf1708001d5dbca10236cccc6bf47db","4400741","1508572917","10/21/2017 8:01:57 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","10.995739549" +"0xfb87b3c675361fe174a05370b6f16a043adb46fac1c637bee7ea4d52dc4ae0e4","4400752","1508573032","10/21/2017 8:03:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","5" +"0x4beaf445cf6465ceef57ee63b26438713e18a90e4dec5c98f76796323ff852ee","4400885","1508575030","10/21/2017 8:37:10 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","200" +"0x43fb43c777f2dd26833e320ec59d78e909762a5e0d90f422189d455015ae5348","4401056","1508577260","10/21/2017 9:14:20 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","110" +"0xf7f12539a5bd3c8c3cdaaa33b06ecbd2c9556e29ae709b926927c9d33a5e2c3e","4401599","1508584974","10/21/2017 11:22:54 AM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","55.047541292" +"0x21946e82534ca54f2f9a85f36d249ef7518c181840b852105e4cf887244fccb4","4402337","1508595206","10/21/2017 2:13:26 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","55.047541292" +"0x100080338ab6f7f8687591b7934cc3d4a443bd79ac27dcdfaa3e6892855dd7b1","4402376","1508595809","10/21/2017 2:23:29 PM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","55.047541292" +"0x33ebf5d9f4077db93485e7be590566bfb6503345dc823142e50e8b40adc74897","4402702","1508600302","10/21/2017 3:38:22 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x58f80f2104df852994bad0bc35b4336c5428b6c9cc4a2ce22272ee928d03b551","4402713","1508600524","10/21/2017 3:42:04 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x189dac98d647669014b9bf2cee37d8b42d7d132ca5a7d6e307d69efd7e52df47","4403203","1508607389","10/21/2017 5:36:29 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xafa72fdd9aff5177fa402469c688c21998382854","0.0001" +"0xec41e7d4108bedc8982f18a3191a0c7540a8c52ff8c8e93dc856424a6b3a95c6","4403280","1508608675","10/21/2017 5:57:55 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","16.111385844" +"0xefec6ed76299b02309a3015727b3ebbe04c506c16a9f7cf644e160eee6ac8343","4403303","1508609005","10/21/2017 6:03:25 PM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","16.107090622" +"0x8b22e2823aea5a2e863ffb6553ea13e86e7723349e4eab845f4067063119a742","4403414","1508610305","10/21/2017 6:25:05 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0xb78e2751ccef32d9fb599c4ca40fa85b345e836f29c070b017746c0828ffbc1b","4403448","1508610722","10/21/2017 6:32:02 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb521c3e4c6cc5591f1f0c06e4f47e661cee64168","3655.334" +"0xdd60702ae4f3c0265fefa32ed5624e2f05bbf63d2fd209c3b33e6517cd2ecfd8","4403687","1508614003","10/21/2017 7:26:43 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x1463f36c861eebe1a4ddc5f7b3494ed171df4d7214210afacd88b26dbbb7c748","4403813","1508615631","10/21/2017 7:53:51 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xafa72fdd9aff5177fa402469c688c21998382854","0.0004" +"0xd06dcecc3461ed8c04f25ed00d0f79fa38f3905dae3f3ffe4f2b90e9d160558a","4403847","1508616136","10/21/2017 8:02:16 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","14" +"0xffd33c425e6da988f470987db7108a29469a5c22202746d4ffc26e649c56e8c0","4403881","1508616648","10/21/2017 8:10:48 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xfeb80e4a350034f7b441f5c393da0fad7e0f16e3143b8ee7083ac6c9a7cd2415","4403976","1508617917","10/21/2017 8:31:57 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x4806cd87d088b79a9a4adc34393bb9b8c34947117097133ead654efc4c27cca3","4404902","1508630745","10/22/2017 12:05:45 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xafa72fdd9aff5177fa402469c688c21998382854","0.0002" +"0xcbe02b02836f03eae276a6133903812b3f2fa1773da25814bd4c5c5c6481545d","4404956","1508631480","10/22/2017 12:18:00 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x8e7601f7daad7a0993474106d6fe1e1761326e25","49.995704778" +"0xc3087f3475e26e81ecf78268a4a3afa122fdbafe8bae3968dffa7096b83a5ff0","4406251","1508649044","10/22/2017 5:10:44 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","12076.847" +"0x63dd6f4325271796e4fa4c2292dcb2621825f3f82eb3d797aefbd601fc25d7b9","4406267","1508649257","10/22/2017 5:14:17 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1" +"0xa6070a826c2845ed07bf349b597881e0eba90059c28530ea384c46398b050e67","4406781","1508655786","10/22/2017 7:03:06 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x1f40bdb81289e1781c0a64ea3bfcdb067842901c945bf15910417c5538369472","4409372","1508691435","10/22/2017 4:57:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x40df61f2bf284187f7ae53f2a07879a6cfc3ab1668ae5a2834cf57a91841e429","4409528","1508693818","10/22/2017 5:36:58 PM","0x5f6982d7f4db3de3588c194fa9f1e9941ccaf147","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1510.7" +"0x45eb1a4a71cf57e9053722f883d53cf4496a35f46d9d88278336f83c04c9214d","4410092","1508702213","10/22/2017 7:56:53 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0.107090622" +"0x661ce9516fd0de1b5f53e113809d3404baa9e97f89083a8ddc7918b516c36420","4410296","1508704882","10/22/2017 8:41:22 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x214b656dd7c78de08db06a38ffcdd3aec4b512edda83fe7023daf455ec9496c6","4411283","1508718345","10/23/2017 12:25:45 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x44c93ed8d717032cc3da894a03b8834a72221b7d","1000" +"0x6efad383a96fc73d5f7740b36af63c1e296d834927660f75b8428b1edcb88e1e","4411343","1508719236","10/23/2017 12:40:36 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x8dfe087b8f839151114a64c9e77c13471f071becaad0ec90fdfcf0d1d611d708","4413887","1508754347","10/23/2017 10:25:47 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0xc5a71a01ee1f5ee7b575d00e8e6d8e3433bfbe02ad304cbd4ecd0a11ec73ecb9","4414635","1508765384","10/23/2017 1:29:44 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x58e075a268290c9174f0fc77ab9260fd615ae0137e33b11733fcfec9dacf2db8","4414785","1508767191","10/23/2017 1:59:51 PM","0xb521c3e4c6cc5591f1f0c06e4f47e661cee64168","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3655.334" +"0x1b735e2ce26c316e2e167ba3332840dfb9d80182d5c663b19b7a091e9c9350ae","4415087","1508771210","10/23/2017 3:06:50 PM","0xa59ab42965d49595c22a759a69c01b7150066d99","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","50000" +"0x6bcb01cdd8ab91fdb51d3090f3d51427afccf2f93a0b6cf82b05ea7b5eaa1cbd","4415099","1508771409","10/23/2017 3:10:09 PM","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50000" +"0xe267019d5b76ed1a0ba9e926f549f6e18df0a9b984bdd7b03d63a17330aa2951","4415105","1508771491","10/23/2017 3:11:31 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001538461" +"0xd13042772654f3a489132968592a2c4efc3f033988c5e8e83be14ecd1c399e70","4415597","1508778426","10/23/2017 5:07:06 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0x4d920f21e21e83d8cc3a7c0b47780f6d188ab46a3c4a23a2ff5d36856fa31dc5","4416023","1508784656","10/23/2017 6:50:56 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd7b07c365fd3353ff70dd20af74eade91f601c35","0.99690958" +"0x948cde9d27c81808dca951e6f3f6a84844db8df903b996c413429a2576efc0e5","4416025","1508784680","10/23/2017 6:51:20 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x71dc235c5f6b0e5b781b07163b1baa00eb189063677b2ca442b07ad6ce3a2e66","4416091","1508785463","10/23/2017 7:04:23 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd7b07c365fd3353ff70dd20af74eade91f601c35","5.982" +"0xf511c561886e270509c84d05accd54904a5c532fff761b9dcc17b0e37e418349","4416101","1508785638","10/23/2017 7:07:18 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd7b07c365fd3353ff70dd20af74eade91f601c35","0.017946322" +"0x94a20c153e89a76bd08a745f1488d152ba4174be28482eff247bb1c79b21626e","4416110","1508785812","10/23/2017 7:10:12 PM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","19" +"0x5735f2bdb972e37fef28860c2b2b3a34de1d56d102d1830e039afd7159788906","4416115","1508785901","10/23/2017 7:11:41 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x5515d6a1a2da6baaac28159f7fc09207a072720e6501b89624b99f8847dec277","4416120","1508785993","10/23/2017 7:13:13 PM","0xd7b07c365fd3353ff70dd20af74eade91f601c35","0xa05e7ce5ad02853bbfc4e87fe515bb64a2f8496e","0.2" +"0xe3e636eee96b7a7b9120bbd7fadfe921a74d1f1821043c94d34c215cd9d4ea76","4416135","1508786238","10/23/2017 7:17:18 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5dc846b658003d3a17eb726fcd00a7af68322ed8","3357.999999999" +"0xcfd7d7a161b84db7458e7d2d9f769ce0ce54b247d62002c3c1dddf14b838ea2b","4416309","1508788657","10/23/2017 7:57:37 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0x38fbf81e9b316b9605a5b8357ad746cd74921012f47806da8788fa4700d61b22","4416333","1508789024","10/23/2017 8:03:44 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","2" +"0x9dd6cd8676395831ca904c4e2d5fcf34dfa77ebc6227de3a7cff62212b06ff75","4416368","1508789416","10/23/2017 8:10:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","3" +"0x4dbaec297c7dd10e80535653ae4f349c651846fb8185229f17f0d4d363578bac","4416437","1508790368","10/23/2017 8:26:08 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd7b07c365fd3353ff70dd20af74eade91f601c35","1700" +"0x26c5ae0506ee27dc6a1935fa609b0708e995e6dbda2d568927706eb08081385a","4416468","1508790785","10/23/2017 8:33:05 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.666666666" +"0xa3fca3c48c15a21914dac0f04f30e7be10f1f2faa979ffcc5e235acb05597929","4416474","1508790910","10/23/2017 8:35:10 PM","0xd7b07c365fd3353ff70dd20af74eade91f601c35","0xbb66c47ed168cd3cf22dbc28f88d6784a3799a12","1000" +"0x13d55ee38a81a2fa416712b27780e274c2bae1755c3e102d5e285bf0113de253","4416497","1508791187","10/23/2017 8:39:47 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","11.111111111" +"0x69853608ff2799def6f30835a353f428e69ab6397d7316b24e73d70223d641a0","4416603","1508792680","10/23/2017 9:04:40 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.666666666" +"0x393d0fa8f81d0e927e31b0de2b1189b29340747dac25c0a6e3d6fbd226e40942","4416651","1508793236","10/23/2017 9:13:56 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xafa72fdd9aff5177fa402469c688c21998382854","11.111111111" +"0xd39d2df4a8734378265233d6c3bafa102b055eb3ca1d567daa9ef927b8921ed9","4416660","1508793314","10/23/2017 9:15:14 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xafa72fdd9aff5177fa402469c688c21998382854","1.4285" +"0x09f0e7abb462623f8728fe76736f3ba0fdac648b95ab2e1363f89ecb2b34bffe","4416753","1508794479","10/23/2017 9:34:39 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x2fd27b8e55b86ea1f68bae3177547f422bc7dc760f9e1758475339f2c98f79e1","4416758","1508794558","10/23/2017 9:35:58 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.022222222" +"0x81bf0b0cf00ec6c8af24fa04a643a02cdf806eddd46b670c8e23ec69f97b95f1","4416766","1508794662","10/23/2017 9:37:42 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3f70c5c264c17cec12a026f599ad8564c30ecf41","1" +"0xb0d56350128b6b8d18510b854840bd3fadd751268ef9b4f266afa34c8d2baee8","4416769","1508794715","10/23/2017 9:38:35 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0x0247424f075dc24961f47dd61b6d9e2600863471e4c1f3d082620d3aa0dd4440","4416814","1508795337","10/23/2017 9:48:57 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x664ea50d50e3eda20cfa3c5a06b4d9f578ef103baf36661b128aa923a4ad0d8a","4416819","1508795393","10/23/2017 9:49:53 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xafa72fdd9aff5177fa402469c688c21998382854","1.4285" +"0xdef065ceea8fa010ace496739a1c0bdff1bd02c44af59bffcdbba09f2a66bb07","4416826","1508795454","10/23/2017 9:50:54 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xafa72fdd9aff5177fa402469c688c21998382854","0.066666666" +"0x0d5200b2b758ee256c9bcd1b87e493802773b682e561753e0e25e521d16a18e1","4416834","1508795548","10/23/2017 9:52:28 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x2575c5520e86318abc21cd210023c32d8ac74eb00fb3b414c141657d6c06275b","4416929","1508796849","10/23/2017 10:14:09 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0x1d5e6afdd84fd247d2ebaf7709b5815af923a43e9331666a715c470b8948bd8f","4417139","1508799689","10/23/2017 11:01:29 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002857142" +"0x56a923d64204e5cf4dbf32efa3d9ef8638093e9514a71cd32484149e113ed21c","4417140","1508799712","10/23/2017 11:01:52 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","2500" +"0x565b22ff15bd0e953ee3b61f52c592353bb22e28a1bb7347c4eb25d2e63c9d04","4417238","1508801219","10/23/2017 11:26:59 PM","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","0x09a727ccbc716cb671495300d3839e04d8aaa877","1" +"0xc95f2477e804c200eeb4fb37cc3be97240eb96a1dd76f07f2417aa3f448e492a","4417247","1508801321","10/23/2017 11:28:41 PM","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","0xab86fc926d0711215af9e5133074a5b6ff2ff541","0.5" +"0xc628930b84128f1c2af088861d035117ae6a685af9ef58882a4c601d483913d4","4417810","1508808312","10/24/2017 1:25:12 AM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001538461" +"0x3b442118c8981b7645f8f16e349a5fd419e27d1ff0e23ec3799530af5d586e88","4417836","1508808779","10/24/2017 1:32:59 AM","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2498.5" +"0x9e6fead36d70af5232f2fd976aa30a5464691b8f8c106c96ff85d4bb11826e6f","4417890","1508809706","10/24/2017 1:48:26 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0x9b76568d3e21f8dad240c50150c7c23bc607bc88e0576370515df3200c4604eb","4417936","1508810212","10/24/2017 1:56:52 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","3530.646410406" +"0x07eed8bb404562cf65e26de8fa7ca6b6421936e69d7ae682c49b1b2dfef2e7ee","4417982","1508810753","10/24/2017 2:05:53 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0xf2944edf6ff49c4efda10c49b6c536f62b1b89bc352a839ecd59d9038f418a02","4418014","1508811193","10/24/2017 2:13:13 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xafa72fdd9aff5177fa402469c688c21998382854","0.0004" +"0xee25ffae94d54ab9b17fc5c890f12b53099ddb78fa37dde270db215d37586e6a","4418049","1508811654","10/24/2017 2:20:54 AM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00117647" +"0xedc7acbf352b4c56414122ea13a763e1fa1b6c7a9386f94e67053553de9f8da9","4418111","1508812527","10/24/2017 2:35:27 AM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.002857142" +"0xfc43dfadad25c5dcf0ccf51d6c631f2b71a1f156aacd66a93904e307c1b07706","4418241","1508814566","10/24/2017 3:09:26 AM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x74c06ae43cff271791ebd72f3679a6647ff8b05887f3c4fd43d2bd66cef954bf","4418399","1508816847","10/24/2017 3:47:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x0a72ebae0321b78bf42b5846c57f90d714a5cb31","805" +"0x45ddb8031a1524a802d896e6c53d59332247a27e30390672bc2fdc9a2d418700","4418451","1508817482","10/24/2017 3:58:02 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0xb0660506cd0a7d00d6159d9dcfce9e8efe2350ee6932a3086a342393e94a91e6","4418611","1508819687","10/24/2017 4:34:47 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.666666666" +"0xa467cb821e702429bb8529ddfedb58c048a47a9ce80e391cfddf9591e8d06666","4418710","1508821214","10/24/2017 5:00:14 AM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0xd8c7b12d376b68c2a112c7f69c897b2754cad631325339ab9936c8907afd1145","4418759","1508821942","10/24/2017 5:12:22 AM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","4" +"0x91fd6b378a79816760a697b73b1df1ab6fae1b3550d178bc3b777115bb4fae42","4418766","1508822085","10/24/2017 5:14:45 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","5" +"0x492cecf4ce892e1720a23985123f823bb6ee700f53de677042c2186ea88dc285","4418777","1508822259","10/24/2017 5:17:39 AM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.5" +"0x4002b95bce358308c0f9d95be0b97e43320599d1b8f65eed93271c106cb8b620","4419069","1508826230","10/24/2017 6:23:50 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","2498.5" +"0x39dc409b7f37af466b97b9d4be8fe8c50aa71c00faab6ee8b43685275257aad6","4419244","1508828676","10/24/2017 7:04:36 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","1.002004008" +"0x26e8e4ec4e5177f33c1a1b449ca2295c3abb82e4c0a8e3a547bef64c673c722b","4419294","1508829402","10/24/2017 7:16:42 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.001538461" +"0x2cfecbc89ec1390128b3e437c5012bbc5c35d8159ec210666dcc77c2748edd6e","4419313","1508829640","10/24/2017 7:20:40 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0xce57444a62416a3c394da18cf608e5900e4fadf37b79e4fd6f7f800dcb1bb4f8","4419333","1508829923","10/24/2017 7:25:23 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x5fc2e46e5a1e5952460f6f3c1771d37c5677c3d9e0fd4409f3d113de1ee94d15","4419376","1508830520","10/24/2017 7:35:20 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","4010" +"0x25a8d0d151831297cd6ea4c68ea54258ccb6cffdfedb9b29395f5d2b384e65b5","4419394","1508830828","10/24/2017 7:40:28 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","3996.977211707" +"0x9eadde9d8e663105af8de3486ac59f2e09024534e35b8c56569892b601cc4fc6","4419424","1508831200","10/24/2017 7:46:40 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","8.016032064" +"0xcb4d6b23894beefafecf98c086e00311f6db46a2363c468b7d8a254e6ee19ce0","4419445","1508831498","10/24/2017 7:51:38 AM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x516dbcd038ea68337c582e8ced9a06589d30a030","3.333333333" +"0x4dcca06bcaed504232598ebcfee66a43586fd59b52deed2063d6a52484230b20","4419600","1508833691","10/24/2017 8:28:11 AM","0x5dc846b658003d3a17eb726fcd00a7af68322ed8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3357.999999999" +"0x367bca8f92713a04dc849e8851179c0627a739098faf451b0765d8a1c6f85513","4419661","1508834585","10/24/2017 8:43:05 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","1317" +"0xece7be4b7fb275dedea5786303e72bc147b522c763afab36d0db9399b56a4ee7","4419666","1508834666","10/24/2017 8:44:26 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1280" +"0x5d177831955894e226235238b8cf6f7766b5d0b0c4a14811b0b7f1db16511ffd","4419739","1508835517","10/24/2017 8:58:37 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5f6982d7f4db3de3588c194fa9f1e9941ccaf147","0.150600241" +"0x4c2c952607c0a53a60f93d2b66c24bd712034c77b6436919a69bb8f0bbdecf24","4419828","1508836706","10/24/2017 9:18:26 AM","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2000" +"0x682c02d41a66a44a3490eff021db7d201e3b827db0ee91579c25c17ce6c39986","4419898","1508837566","10/24/2017 9:32:46 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","150" +"0x72617bfc5a87f68c64d9de24ebfb11edcbf0b818ccaab1a5008d5fcb627cbcb8","4419935","1508838091","10/24/2017 9:41:31 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","637.727729103" +"0x5658702baa794d9981a190c38bee73a6113991ad289d0aff157787ee01089b52","4419964","1508838427","10/24/2017 9:47:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","200" +"0xdeb64ebddf597387e2e8b47f77ae1db21b5de4f50ca853a831eadf2e49fcea7d","4419994","1508838855","10/24/2017 9:54:15 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xbf29685856fae1e228878dfb35b280c0adcc3b05","349.996" +"0xa51eb4f210b463a8cdae185b811544b94b6dd89f090fe94c4620f5160f1649de","4420146","1508840931","10/24/2017 10:28:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0408f161ab4e4be0680e4619d60e412548a43790","0.15" +"0x17de4c15854572289bfdb30e5cc35d9205eadc238d9271caa290225b39823c79","4420152","1508840992","10/24/2017 10:29:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0408f161ab4e4be0680e4619d60e412548a43790","0.262" +"0x492647c5fdf66c54760e9363657ed71f7207f6e018b4056fde65ae9a9f98dd60","4420244","1508842398","10/24/2017 10:53:18 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0408f161ab4e4be0680e4619d60e412548a43790","6" +"0x440f68453b597adca76a6eb2c1b58d4bc7f6935394f7e6606f8b524f9e609a10","4420296","1508843162","10/24/2017 11:06:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","72.139" +"0xe47e17b24480d4c26a765441b8484009e698cb59d00892060df70ddc2beccdd4","4420442","1508845122","10/24/2017 11:38:42 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x0408f161ab4e4be0680e4619d60e412548a43790","650" +"0x013f68fa1a406958a9cfe4673ffba62d499947fab236fd92a5f88c6f493e55ad","4420560","1508846628","10/24/2017 12:03:48 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","11.111111111" +"0x1754cec6ce6a4bd195940d5fe0f72e6c5c9ce81fb240b06b4b62d36e67a89914","4420588","1508846964","10/24/2017 12:09:24 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc2b9dc350ee4f21f105e4feb894b12ce093f1dc1","203" +"0xb92d149e2d83c00ee3b6366209b03b5aabfe42810c70f9d1098c7ec9df9b4ac5","4420636","1508847639","10/24/2017 12:20:39 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","1005.065262" +"0x235ab290b92d2aea0aa4a6637382d5582d5a7622d85f7b75716c8122ff0fda0a","4420670","1508848141","10/24/2017 12:29:01 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x56031f7e380780418bd3f3da2ab39ff1556366a808e4f1dbd52a78a87b216a08","4420745","1508849120","10/24/2017 12:45:20 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","63.198" +"0xd4909669e4a78aed89484d279cb58d7a07f7f3be1b828c64baa064ff4aae1b15","4421276","1508856566","10/24/2017 2:49:26 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","234.594194788" +"0x85a04e6937941b8685428cba3542083d70df7fe1717e6760ea5e7a2fcb4b17d2","4421622","1508861586","10/24/2017 4:13:06 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xbae9cd80ef7908174cc11b2dd3e0bc7f42ba67d6","111.111111111" +"0x383caf749f5afeb6576f19b83b04acb22dabd5d484b0ea9c656544299f8e7d53","4421659","1508862239","10/24/2017 4:23:59 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xbae9cd80ef7908174cc11b2dd3e0bc7f42ba67d6","150.605355555" +"0x199a7c5b2b1f107c07f92c55603e0b9bcae3a8e45a5a9c48ed40c5f0b4a0312d","4421809","1508864544","10/24/2017 5:02:24 PM","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","0xbf29685856fae1e228878dfb35b280c0adcc3b05","6000" +"0x9b124fcd631af23f45749a3e35ea4ce8e8e3c6f59185364b1341addbf3ea3d1c","4421830","1508864769","10/24/2017 5:06:09 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","5000" +"0x7459928b6ab9feae828bc93ea7c2c22cfc1ba5b35e38f6316d209c12a63375ac","4421870","1508865376","10/24/2017 5:16:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb521c3e4c6cc5591f1f0c06e4f47e661cee64168","7141" +"0xad6d462885e2c6d0fe3c52b837c0ead91ce961e3fc21a68a54884ddfa5ac3b03","4421886","1508865598","10/24/2017 5:19:58 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","1095.47" +"0xbf276896e144d6316846c1d58eb486440a4163d7ab0da0f8d3f577a527c23fd4","4422066","1508868041","10/24/2017 6:00:41 PM","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","0xbf29685856fae1e228878dfb35b280c0adcc3b05","40.43" +"0x4117e9893f9b452bb77302389d043af55b375a6105c378fb4dd2aba9951c8b29","4422075","1508868176","10/24/2017 6:02:56 PM","0x654fb288a6e33ea434037f0fe2bb996ce349c9fa","0xbf29685856fae1e228878dfb35b280c0adcc3b05","7035.869" +"0xadb0f0c9f3031cbf51462fb4b2e3c30485256bcd2d7670c957608d98ecf14946","4422434","1508872663","10/24/2017 7:17:43 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.666666666" +"0x4837436612868c36a8f96e35775ee035290b5c5039a76a85a41e55c0e19ced2d","4422521","1508873940","10/24/2017 7:39:00 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0x77c1923ca8f67d9905b8d42cecbebdc6d1a02a4716504971a0860b58c53985c8","4422531","1508874123","10/24/2017 7:42:03 PM","0xb521c3e4c6cc5591f1f0c06e4f47e661cee64168","0xbf29685856fae1e228878dfb35b280c0adcc3b05","7141" +"0x1a0150b8221589022b202dfa67ca05ac92ab3639d2d23ddddb9402e5dcd805d0","4422733","1508876604","10/24/2017 8:23:24 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb1f46545652f4606b72153749b6eb8236c9607c1","100" +"0xcf05cf112819eaf7f387d657161b04c6bb9a7a0e4f91694f7d74197cf208060a","4422742","1508876764","10/24/2017 8:26:04 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0xae46eafa402f108f10cb681b70192d63865b6e8cbc5f0adb36388ed83c36c18a","4422841","1508878291","10/24/2017 8:51:31 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x6db3435e9e4cb48f30863689cb7eb5a4630304999a55a2a5338f72222afffd64","4422950","1508879563","10/24/2017 9:12:43 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.022222222" +"0xb3fca6ba5747e1ae8d23e6ebd8d90032919b7837e9d329b7ece765f13f6ff122","4423021","1508880438","10/24/2017 9:27:18 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x94ec349c35566cd3269aec1745f45f1b9fa031847c33a9549ad4380cbdc8934a","4423094","1508881541","10/24/2017 9:45:41 PM","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.002857142" +"0xca7d515cbab73281ec48be49ead3dac22b9c75f0314aeed021d17f2066848788","4423096","1508881587","10/24/2017 9:46:27 PM","0x28c7f82199522d0608d50a835f4cef1b0a771b7f","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.00117647" +"0x88750e312a4643ce4eb2e07444579505733e460e882009334ced6c35362c26d1","4423143","1508882215","10/24/2017 9:56:55 PM","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000833333" +"0x786ef77948aeff39746452782f8978ae9f8752444cbc70903c21785245ace8f6","4423255","1508884063","10/24/2017 10:27:43 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.066666666" +"0x16ec27abdf9cba4923312cbd695271bfa490701fb62f2ff06ec33dd2e6a5df85","4423381","1508885741","10/24/2017 10:55:41 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0x7c367314196f284d6f74b5e0425aae29d962a5a5299e705d1db123f203842c77","4423466","1508886856","10/24/2017 11:14:16 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xafa72fdd9aff5177fa402469c688c21998382854","4E-06" +"0xf21aa2e89abb09f119c1c1deaf04a0f913428dd273c0f3b2c13a56aa2d0d87d5","4423532","1508887778","10/24/2017 11:29:38 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0xafa72fdd9aff5177fa402469c688c21998382854","0.006666666" +"0x9a4d5670475afd6971976a09640ae99821da5e0cd79839c213a20713885d43cf","4423546","1508887971","10/24/2017 11:32:51 PM","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0xef2db123df9a3db166a2f8b9f67db22667e696c7b17c46f5f7de9f7993457eac","4423615","1508889019","10/24/2017 11:50:19 PM","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0xafa72fdd9aff5177fa402469c688c21998382854","0.1428" +"0xfb851852679807439c8ac4e1064bc71201535eb4ca5cb981d1018569dd2f9bbb","4423841","1508891939","10/25/2017 12:38:59 AM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0xfc57f3a131a63d588393141ab53048d91044460a09ad7180092033a277772141","4424095","1508895321","10/25/2017 1:35:21 AM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.333333333" +"0x2e57471cad82e316586762024a43ca08d87d351f1b537963e8b6bd26871b76b0","4424634","1508903293","10/25/2017 3:48:13 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","86" +"0x9b473a9a03059f895681b3b59462335040deacae14f7ba427dd1274c607b1dab","4424644","1508903419","10/25/2017 3:50:19 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0xd9a57dd2a8ce0cf517cdb3317260f9f3e0e20bf84f27523fa21365de25c65dce","4424697","1508904288","10/25/2017 4:04:48 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","306.931025" +"0x720a841e537f58175692fe4d5ea401c2ceed8bafbc21dc5e2bff2e1c2ea343e9","4424804","1508906063","10/25/2017 4:34:23 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x84f44f8ad9c1eaf5de4c0962e385c67479caec33","907" +"0x266eed08c65346b2443d1cbe7d3d39cf53d80f77f6e7fa08140eddd038f96d24","4424881","1508907130","10/25/2017 4:52:10 AM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0x1ed614f2936e3695a4407dedd4eff311130c56f588263df1ae9d8751507f5d47","4425393","1508914284","10/25/2017 6:51:24 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0xa6e705fd760e27dfef1a1e3fb3ac198000dbe4c4c8375ea5c6b2163c88613ef6","4425494","1508915616","10/25/2017 7:13:36 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0xc0c9dd486baf39268679b90b4d410db1c12abfead061d69e218c60953a4c4911","4425583","1508916791","10/25/2017 7:33:11 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.2" +"0x6d0749c88f5b96cd8296611b2a3d1d88e9c2a750cf31d0bdc712142f816a72bd","4425982","1508922736","10/25/2017 9:12:16 AM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0xbf29685856fae1e228878dfb35b280c0adcc3b05","40000" +"0x3d0e3093a3d6c4250fa03fd430feaff26d2b631f31f78f417012bc8529e20cca","4425995","1508922923","10/25/2017 9:15:23 AM","0x43764357c8aeb633adc6433e85e331d0b913fe79","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500000" +"0x301922dbbf3e982cc4693302ad89d2f8d6c821c9748ce2886c4aa9142d43c525","4426303","1508927152","10/25/2017 10:25:52 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xf99a0077b1ad5ebeeadfe80fafaecafccf9deb58","133.333333333" +"0xb40173ef83a9c9af597c83288e30bc5e0c81d826a413f86547cbfc18f1b77758","4426695","1508932729","10/25/2017 11:58:49 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","2800" +"0x494f6184025b2a63ef524eff95616fdfec5efeeb8c09f5c9940fe66c956bcf90","4426725","1508933032","10/25/2017 12:03:52 PM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x8b182a4526944fa498970732a69a95d281c3c8a9","2800" +"0x6a678a378ce061e35b838186a6af70de0410d77ccfe8275263680d1b8af78feb","4426738","1508933210","10/25/2017 12:06:50 PM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2770" +"0xc4d4c74c54024e01b5392cba906b8beac526f7fb89a51504766d4dd4739c8bf2","4427507","1508943944","10/25/2017 3:05:44 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","150" +"0x699b168b5979243b91e7fcf12b2a1cafdd41d8e6d448cf4a4b46d1152dc0d248","4427919","1508949516","10/25/2017 4:38:36 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x6d0762399b3b31efce668df5bbbfc0b1f74c9956","0.200400802" +"0x25fd5b69f6d8412014f7849d4caec6604541edaffa86e5730044ca4fdac11783","4427922","1508949550","10/25/2017 4:39:10 PM","0xbae9cd80ef7908174cc11b2dd3e0bc7f42ba67d6","0x9d0249be2a5c03a13be85dbd91863a9246785462","10" +"0xd571c4fdc0a3202a0ce35f46679562861d88556a7d8ef3a449497c5f0a7a2ee5","4427943","1508949770","10/25/2017 4:42:50 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","8.016032065" +"0x147bd88b65c1fffbc52bcf79c35d74edac6964a26b63ecf9977a968ed5dfd163","4427949","1508949878","10/25/2017 4:44:38 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.11" +"0xe37816ccb05cacfa1045f1fb347fa69c4f53466bd41d9125b2bec3cab2e28b22","4427965","1508950082","10/25/2017 4:48:02 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x516dbcd038ea68337c582e8ced9a06589d30a030","5" +"0xd573e25a6bcb75f47cd205e1236cd6ba4e27921723cd68d3133613907cbdb14d","4428008","1508950673","10/25/2017 4:57:53 PM","0x9d0249be2a5c03a13be85dbd91863a9246785462","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xfe548159d8c3b9049c246fd605c14e24a06be5d5870e853cfe75f56cfe92947a","4428035","1508951002","10/25/2017 5:03:22 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0xf2bec4d7e2ce6b280a37839cbb9129dd941dc439096c5eabbc15b352c9a3e8e6","4428067","1508951423","10/25/2017 5:10:23 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","20000" +"0xa85b3747abcfdc31aefe09f6b5733bcbeb784f394f97aad3607faca6fc2f4cbb","4428068","1508951437","10/25/2017 5:10:37 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","20000" +"0xb0091ecea3461ab435d9d0ba3a14cfec493c8c0fca8d14909f5bfcae234ed025","4428076","1508951604","10/25/2017 5:13:24 PM","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","40000" +"0x29a3040f13a40411d8a9027ebdfdb881217aa1c31562cddf14eb1370dfd0a6f8","4429216","1508967418","10/25/2017 9:36:58 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6c0b9a99c1ed76948fea1038be2c56ebb8855763","200.000465057" +"0x8f7fc0a96c4f804884691184de28d9bcd48c3888326c43ac117f1c583ea23dae","4429339","1508968971","10/25/2017 10:02:51 PM","0x740d4b3119b956c1d19608da39730499dbce4c01","0x57e9d807c28e50432f39220ebcc01bc1ae07d7e1","899" +"0x2845c5a7778bab6269cfbf69ad3ae5a2cb58c204269ddc2446a7ddd1acde716c","4429572","1508972068","10/25/2017 10:54:28 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0xf6c7822fe1b559d33e6e9b48d394f03a5c95afcd85cb7e9e86e583fcd3476179","4430028","1508978856","10/26/2017 12:47:36 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xfbd4c8966b35b9b8ec008700cfb5da6b2591d119","2000" +"0x8fd4741a6acdf6b378155fa61ed42ef3c6edaf50debcf694ecb1ada69380bdee","4430036","1508979010","10/26/2017 12:50:10 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xfbd4c8966b35b9b8ec008700cfb5da6b2591d119","800.571" +"0x8f7c2934a231280d395efd7caf664a891ac8499a6cf33348d41f0da94937d772","4430420","1508984271","10/26/2017 2:17:51 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","2000" +"0xa059abf8030cc0bb8cb7ccf70abd30d67dd3864043291522c4168274d4d24389","4430430","1508984400","10/26/2017 2:20:00 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x78b0e4933f5b7d90102367e28efcde256998411e","2010" +"0x9e1c8e7826b2707a4c1e2c42bb47a257cbdb408aaeca62abf675a447f6ca92b4","4430437","1508984470","10/26/2017 2:21:10 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2107" +"0xb6af6567eda804a4df276cbd1c312ed85d27195f820a1fef84b97f49d0d0d381","4430486","1508985259","10/26/2017 2:34:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9ca474f89afab79df940ae9e1192a6b2fec82063","3700" +"0xe55d286e0ce3d8d1053925da1ede462d5dce92d7d8417d4938edf8941f047c72","4430487","1508985269","10/26/2017 2:34:29 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","3600" +"0x4f06cd73976d191b69449cb85410d84f7074ae6c809a63505dcbcb4d85900069","4430495","1508985333","10/26/2017 2:35:33 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x78b0e4933f5b7d90102367e28efcde256998411e","3600" +"0x5a077e813f9a3ccf4514781e1e94ca8e131fac44300a25154f14c82d79dad6a4","4430501","1508985418","10/26/2017 2:36:58 AM","0x9ca474f89afab79df940ae9e1192a6b2fec82063","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","3700" +"0xe4a899f8605e674901f22af61715e067817c2644d3b5b2ec1f61d5c487d57f9e","4430503","1508985435","10/26/2017 2:37:15 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3600" +"0xbeb5a2145695ba415027e2e84e981f1879969b1722922758c0d2503eb609b2ac","4430506","1508985466","10/26/2017 2:37:46 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x516dbcd038ea68337c582e8ced9a06589d30a030","3.333333334" +"0xbad3d7504b8e8fb77c415062898ff29d6cbbfd05e7cc563a654b7d448a2aec16","4430845","1508990107","10/26/2017 3:55:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x381838539ec09493ca7a8df60c89fa6fc13230d1","40" +"0x7c098c2f27142128dd0a6a864cd70a5b7a4172d8569ea6ccb144eedca232cf29","4430846","1508990156","10/26/2017 3:55:56 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78b0e4933f5b7d90102367e28efcde256998411e","1000" +"0x2ffbf77d31a0b6bc6c05ac60145b788d72769c56000932be8e22057be2217055","4430850","1508990216","10/26/2017 3:56:56 AM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","1000" +"0xac1004b5acddb5f769004935e0ed0dcc2d4693f6450d8bb6ebf437dd86eb2965","4430858","1508990281","10/26/2017 3:58:01 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1010" +"0x1584af58f9bb2ccd2c4a697e36144808e0ffdce07959db5a2ea71dbf9d066d5f","4430940","1508991630","10/26/2017 4:20:30 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x381838539ec09493ca7a8df60c89fa6fc13230d1","1500" +"0xa2a4982714d45a9ed887b0e26092652154ae9f872f4aa7650f3fb3f7b47ffe48","4431348","1508997224","10/26/2017 5:53:44 AM","0x381838539ec09493ca7a8df60c89fa6fc13230d1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","40" +"0xff4e43fd62e9f81e6230e96b7ddef83fb35b8d42cb1e8100aaeedd1e9a6dfe53","4431722","1509002437","10/26/2017 7:20:37 AM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.666666666" +"0xaa4d664c84d726c04e08449a70bf653e1ecff392f0a1bfae3d23383d6244fb51","4432008","1509006510","10/26/2017 8:28:30 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x7614fdb930c3b2de46e611f1b66354202d1c9a21","0.001538462" +"0x5350efb3c813ff9ac3f90f6de94fd73da3279691af6c1f44f7f410dea205dbec","4432030","1509006902","10/26/2017 8:35:02 AM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xd0573658ba25934d9bc4d13412bf7350ce6dbc86","0.2" +"0xbed74375915cab15bc40f53ceba4eaf1d1dd56b00b40f60a25e414f910d48cfa","4432581","1509014976","10/26/2017 10:49:36 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x1700ee184823584631bb00ada7b7afb3802fd081","5" +"0xc8a891177b7a7866d9fad9312d949dae74b631ee7e47ddd4f8a8c96752094713","4433121","1509022659","10/26/2017 12:57:39 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","11.111111111" +"0x4bf3d790294b4ddf9e84034cc7d882974f970b96263c488649d2b027151df7fd","4433187","1509023659","10/26/2017 1:14:19 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","2088.888888888" +"0xaf3688a006470769d506f24966bdf2ae4f5cd4049521ce1b460c99f7d9599e3a","4433398","1509026525","10/26/2017 2:02:05 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","500" +"0xd2a0a0edeedc6b2f1228e79e8867644c4334bcf7378b9a75f07fa51578cd250c","4433505","1509028150","10/26/2017 2:29:10 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xdeb8eadbc6b64bdbd7871d9a651dfa5def4d36e7","2500" +"0x82d8327913aaae514f066c43bcf4b4c9da8b37140a997e8bf62373955f05a850","4433914","1509033973","10/26/2017 4:06:13 PM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","2000" +"0xe7f5a0df5a7f981d2463b38bee30ab72d4a64616c7366f590442ead5d6bcae06","4433923","1509034139","10/26/2017 4:08:59 PM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2000" +"0xa29e993e5e0dc2fa5ba253aa236385d6bc87a93008d05f6b86814f2bc4a86658","4434204","1509037703","10/26/2017 5:08:23 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","3999.999999744" +"0xbd6e1096f800d44b9078b42489f1a1c9c2744e97d9e5d46aeb1a2eddf704b99c","4434219","1509037933","10/26/2017 5:12:13 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","255" +"0x40d508b83f21454ce7cf92374fa0e5e4fdccd55d8a7fdb6c78bde6d00aa2ac51","4434232","1509038159","10/26/2017 5:15:59 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xe819e7cc4928234227d8a67b8f4276a3a117219d","33.333333333" +"0x69a394f6cf6f43700442aded7071e64571ead0a99fb6811b442df9b801b4ed8f","4434245","1509038336","10/26/2017 5:18:56 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xe819e7cc4928234227d8a67b8f4276a3a117219d","1411.111111111" +"0xf8c91359593849f9ee496e47d005e1252e33b4a44f89c8a7653ebee4b09444f0","4434251","1509038488","10/26/2017 5:21:28 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","306.931025" +"0x36ae864afbe4ea248bc9232f76b6b78363e46714d838621931f5b373f6b4f2d8","4434260","1509038691","10/26/2017 5:24:51 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xe819e7cc4928234227d8a67b8f4276a3a117219d","310.233906154" +"0xb32d03c8d017c8a46fd37022e21c0f10954dec3eb39bb59a23d1b4c8fe36468e","4434270","1509038867","10/26/2017 5:27:47 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0.025421196" +"0x1be179d41e0a2707382f42fea7f3d020ed6f0d51e46f98f1d391bf2aaf261bc3","4434304","1509039318","10/26/2017 5:35:18 PM","0x9e991aacfe62f4bf93c13343cf1f9711e90017d9","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","3508.491859841" +"0x2b639621075f20b820c485f6d4f35a9eb24f891fdf5f0b467e5d3553dac9dfdb","4434491","1509041590","10/26/2017 6:13:10 PM","0xe819e7cc4928234227d8a67b8f4276a3a117219d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xf7e7a4615ba8fde1e24b28d5bee6503784928e86354f62ac0ffe976c87b4538c","4434534","1509042145","10/26/2017 6:22:25 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe819e7cc4928234227d8a67b8f4276a3a117219d","10" +"0xa911dd650ca832c76958d9040979d56b3548bdc86704b91f2a18556f4bd0ae0c","4434543","1509042322","10/26/2017 6:25:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","77" +"0x774ebed1f75bcb8f485b28b6e667446a7736e2b7a8d04913b2b29a07afa08928","4434545","1509042376","10/26/2017 6:26:16 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1083.590259582" +"0xb2cbc7912dd02e4fd1292d1c81ddce82ee2874bb33c77e988cfa9560dc1a57d8","4434545","1509042376","10/26/2017 6:26:16 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","900.068793705" +"0x6ea6d5964b0cb617a5fdf9a071f80e62d4e5db9732f43fc5890bd11dffa55246","4434549","1509042440","10/26/2017 6:27:20 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xe819e7cc4928234227d8a67b8f4276a3a117219d","3724.14963393" +"0x95c79b013f5eee6c924107902005e07b5f0578fe49a9fe7e0d4b1cc05c0b4a7d","4434565","1509042655","10/26/2017 6:30:55 PM","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0x30562bb6017dbcc3b1cf95e96f20daaefa404be5cb1659ecfe14a1f71b2e87b5","4434581","1509042882","10/26/2017 6:34:42 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","4189.668338171" +"0x642049b34d4a861e497950c5a99413a6797b6c874c2e53173dc832f1c0ef64b4","4434604","1509043152","10/26/2017 6:39:12 PM","0xe819e7cc4928234227d8a67b8f4276a3a117219d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xb56ce2743c4993ec4b4d28d0064d64192161f0ad0e2c6047532c808ee5c723f5","4434604","1509043152","10/26/2017 6:39:12 PM","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","0xbf29685856fae1e228878dfb35b280c0adcc3b05","77" +"0x3c8120fb46b450d7777e0599c15311830751a7f4e0d8644870452381493ad21b","4434616","1509043252","10/26/2017 6:40:52 PM","0xaabf8c4e96e5e84b54eed302310ac86e201917f8","0xbf29685856fae1e228878dfb35b280c0adcc3b05","200" +"0x43bd17a95aa274f3ff432c129f1a351652f3272331f4a2bfe0ed1ca8729e14e5","4435494","1509055611","10/26/2017 10:06:51 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","14850.700297713" +"0xf18ffc19773b5fd0b79d17f920c96de627578ab3fe7cef6d11ca1d022982d09e","4435514","1509055861","10/26/2017 10:11:01 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0x2600eb81adc67b318a72fc25204dc5db1e12cd6f80aa53fc5385772540d690b6","4435547","1509056356","10/26/2017 10:19:16 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","9999" +"0x7afdd2d2dab13247eea308de5e487b7644e0d1ad85d426d02362febb20fccc9b","4436427","1509068646","10/27/2017 1:44:06 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xcf2c47baa3a232c65d2a2d96bacbfa7a436eae21","111.111111111" +"0x161f26f293d0ac1bb913a0c6a924992f325654a305daa74ef3e32d2411070556","4436543","1509070133","10/27/2017 2:08:53 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xcf2c47baa3a232c65d2a2d96bacbfa7a436eae21","111.111111111" +"0xd95e37967a802513432ba63f1091e063ffb4b9654ebd0e79e272176fe146a880","4436686","1509072003","10/27/2017 2:40:03 AM","0x186b7506c3399e42c9e8c434582f7b4a1212de47","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","13000" +"0x46236ec8106fd94fa2037e9d24d5a70157e74a77f8b8f5fc8962d6788af37141","4436826","1509073809","10/27/2017 3:10:09 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","2500" +"0x4e36177eb082dba0cc07a32674cd60f94e8d5d28f84d824920a6a8c821796654","4436844","1509074107","10/27/2017 3:15:07 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2500" +"0x7998caa56e00d14de3382e76f90916063168c7146e47dc202e1007a101a49909","4437093","1509077254","10/27/2017 4:07:34 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x242605d4ce06dd88e96acef949ed823fb73a3b90a80a8badf56aa9888b06e148","4437118","1509077647","10/27/2017 4:14:07 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","250" +"0xe27c8712e6e8d36eb22b5075143e707b577807a0365ad0abce97a96f1a40f8bf","4437531","1509083336","10/27/2017 5:48:56 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","1700" +"0xd90e39b7cbf2eb4dcb6c1f487d8d407a70948f8c185d8da97605ea47c123b243","4437543","1509083435","10/27/2017 5:50:35 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","1700" +"0x270364fe0c8f6dd0eaa76c46dda4177d40874bf2dd2fc01142535f6bb2fe8571","4437804","1509087162","10/27/2017 6:52:42 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","2600" +"0x9d119514e221fcc20822aeb397a6deb87b870eeba184a869802594ed3351c755","4437814","1509087288","10/27/2017 6:54:48 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x665bbe8f8a101dad34049d29860956d38ed8c7cfb2355090e1bddcd3bb2f2d8d","4437842","1509087702","10/27/2017 7:01:42 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2500" +"0xd214a1fd4e7533b6678b1d5f3680ecad18e694835fee6bfac0a4cf4c00db3a17","4438460","1509096072","10/27/2017 9:21:12 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x81780cec7fa4ae86caabbb7d961c4c618bb99ce8a4e506d7818df61beeb053ef","4439208","1509106641","10/27/2017 12:17:21 PM","0xd59287c566816360f12d6ad9a6bba0ac8a1ad72b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","89" +"0x4b8f336d8e9fd22c6e9bdac6445d32673d82469b7653c5593babe3196b478468","4439713","1509113678","10/27/2017 2:14:38 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x39d52db574854e7067b6c970abe6f765c3024cac","2492.336" +"0x513bd762580bf86fa0f7b501da3a64dea653c06b2bd047f651255add761016b7","4440356","1509122906","10/27/2017 4:48:26 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x780caa3c8419390305f812ab040a354835687000","2000" +"0xcfda99af56096c0c59a7c58553dde7074915f1d245998ea8146615bf8a26943f","4440422","1509123802","10/27/2017 5:03:22 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","40982" +"0x3ea1d939d02ae8dc3937e76f0515b803c13e12f6ca8b26ca9fcd50dec78b6367","4440428","1509123906","10/27/2017 5:05:06 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","40982" +"0x1581b4f626b9ac346cf6f3354c731e5fbe48a9d140038a66673e4b9e1082c25d","4440579","1509126188","10/27/2017 5:43:08 PM","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20000" +"0x7a3bfd671735de67b45a0745b7256d430158e017e27cace376c554df6f443d52","4440893","1509130550","10/27/2017 6:55:50 PM","0x57e9d807c28e50432f39220ebcc01bc1ae07d7e1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","899" +"0x31008d6769576862cc25253ac3ae6dd58846a8570003803ef960fca302d89bc6","4441221","1509135101","10/27/2017 8:11:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","2400" +"0x45a44962e59c54e071b484f9cc763b6aa40ad7eb67fe6d0acf7bea6c61aa3791","4441257","1509135519","10/27/2017 8:18:39 PM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2400" +"0x49a790608d7fa7ea02062f0114bfc155d319d58373633343bc3f4e344cd71386","4442299","1509149840","10/28/2017 12:17:20 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ca19ee2694a12cc6cc33881e75d7dd96b906453","1000" +"0x7fe2d7a419d3075a09819c1f21de8d4f41530b2e38e0bf1d3ba7f32e024bd43d","4442315","1509149975","10/28/2017 12:19:35 AM","0x2ca19ee2694a12cc6cc33881e75d7dd96b906453","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0x36ece1d163029e555daf8fca3be97ba141e2ee487afc63f6f3c0bff8b9f0828f","4442416","1509151401","10/28/2017 12:43:21 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","762.802" +"0x8c487e2fad86413cac6abf9777477381b1bc008738a9b6335f4ed8bf9e8ad8c5","4442769","1509156245","10/28/2017 2:04:05 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","637" +"0x57cab00bd489a8b1a03d82a3866d2d4815a3135c826423e47ca0ab6aa86de538","4442784","1509156432","10/28/2017 2:07:12 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","513.416" +"0xe6dbc28692bfd4887ba41d95ee08e4e0f25291ebfbf5479de878d71605f445d3","4444619","1509181875","10/28/2017 9:11:15 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100.063" +"0xeb47aac6a6f641d6412c06135057213de46b05b82e5d744ef27fb79a6287868b","4444624","1509181967","10/28/2017 9:12:47 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","899.936704778" +"0x98a7735f8b2f3d2d8f7d776a3f8fb0f233aa7305cae4408f1391132fe33843f4","4446204","1509204033","10/28/2017 3:20:33 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2851.7" +"0x4f59de2d46b7ba685917a3d1e97bc1f2292825c751ee54e9135859a442fc9b29","4446393","1509206469","10/28/2017 4:01:09 PM","0xe914acd0bebdbd81e5232dc93939747ed4bbea31","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.1" +"0x559f9248069699d266a5dfae87f623f9f6691957c9f4cba1920d44b0db651de7","4449001","1509242345","10/29/2017 1:59:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1150.416" +"0x0f0a1c57a688d5ff6d7600e80c143de114a0f64aa12a25b228fd7dd312f8de3d","4451310","1509275229","10/29/2017 11:07:09 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbce086dc26e799dc74ec0e2e5c6e351189d21a97","47.622252466" +"0x943f9c4cdeb257d141567629a4d9e284352f485f6a851e63ec6e8e9e534e3a7f","4452264","1509288831","10/29/2017 2:53:51 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","0.005" +"0x0586ff48ada2652af34b08f5253ae74034499c971a22f7983de58763bcd45768","4452273","1509289049","10/29/2017 2:57:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","0.000487925" +"0xa7bf5a5800ec26f3862fe3e638bdf08e4e87a43cf3983f46a157eadfd12b6847","4452671","1509294661","10/29/2017 4:31:01 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","51.650906452" +"0x58e1b0d9bfb345a9eaf453f4f37c16c1e52fdc9534397b0a96a9fb629cf5aa29","4454296","1509316731","10/29/2017 10:38:51 PM","0xad91ec285a09ae31a4589b32e8b11257b0c302a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.666666666" +"0xef06ff3a549e4245d3bb32cc8c002746b6ce117cd543362a596fdd314c03a48d","4454371","1509317753","10/29/2017 10:55:53 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.066666666" +"0x0518bf2f03b7ce49a98ccf8a76670c59576aea64f84d55bb16e2a136b8ec8320","4454679","1509321988","10/30/2017 12:06:28 AM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.066666666" +"0x0240673da54c2f7858596cdb0974998ac976b5bf36dbc5df397bd2bf5f0ec6d3","4454683","1509322062","10/30/2017 12:07:42 AM","0xfbd4c8966b35b9b8ec008700cfb5da6b2591d119","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x36cb6ed2b2e59d40e1964a6abb3347d3245ccdf7e4bfba5fb09e9b58966fff4f","4454791","1509323435","10/30/2017 12:30:35 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x20fc9b40d84db97c9c239e70a66c65922492c6476d9cae707268ec8a5c146267","4454820","1509323863","10/30/2017 12:37:43 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xfbd4c8966b35b9b8ec008700cfb5da6b2591d119","1000" +"0x6a69b3f9b7c7c1cdc48e70d730d2c4281a97de4b0c71e0fb0f332d9faf624945","4454995","1509326220","10/30/2017 1:17:00 AM","0xbc8959b7a52cd26d7d0ed3ebd6abe2ebee294f3a","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1498.5" +"0x0cf69a32101ee508dbb7bdc5093257e065e03bb01f9a826dc4a7e2a708999870","4455056","1509327151","10/30/2017 1:32:31 AM","0xbde173bb88045f4810f31c5e89a100e11b756a8c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20" +"0x0280a8b2464e4539caab1dc469a66af9100e04996e5e713a7c97b8310b20eae1","4455151","1509328680","10/30/2017 1:58:00 AM","0xfbd4c8966b35b9b8ec008700cfb5da6b2591d119","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x8043f72e33fe161ec52f18ba32719ba37a4a66d7ec14023155230c2310868e3c","4455252","1509330448","10/30/2017 2:27:28 AM","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0xfd4b81ceac9984f025c11f2bed51a7b9139ba76ded2a7ddc25651201cf6c16e9","4455276","1509330741","10/30/2017 2:32:21 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","100" +"0xa91671d3712f60f68a5f95967ce96bc75540bfd72dfbaba2317eb30d9b2f3280","4455318","1509331256","10/30/2017 2:40:56 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb1f46545652f4606b72153749b6eb8236c9607c1","1000" +"0x3b5187337263be35f97ac8ea942ff33f3458671d5b9f70bbda44da0b056463d2","4455328","1509331373","10/30/2017 2:42:53 AM","0xb1f46545652f4606b72153749b6eb8236c9607c1","0x0f4b2f83cda873554e578c42a177694f4e71b000","1100" +"0xfc72ed7179958f69ebb1fcbd8e87c2ad3821731f9c487e6b058235c26985ddb1","4455334","1509331462","10/30/2017 2:44:22 AM","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xa1a221580a5385be1d5af803c786cac4198c4ff2576f474a033f0bf55978f69d","4455420","1509332524","10/30/2017 3:02:04 AM","0x31d807e1ed35f84248341461c6a2c44db722877b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0xb580b11222cdf3721aab729cf2fb2219552c80773323cdcbecdbcf7083a1d302","4455485","1509333485","10/30/2017 3:18:05 AM","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2700" +"0x20ec9efe4625b3ed7b780430ba443f159889b051b5f201a12c9cee3aad44d142","4455649","1509335775","10/30/2017 3:56:15 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc75b034470babf5e4fc695859945a726726d48f6","10" +"0x86cdc624df962c7d0282c849924f2f1f5830b68cbde73032aef96654325e40b8","4455655","1509335908","10/30/2017 3:58:28 AM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0xcbcb81f316e33e80a7ee1416056a7d4f1cc2f62c49f3229a9b39a8c25d994db1","4456183","1509343173","10/30/2017 5:59:33 AM","0x0f4b2f83cda873554e578c42a177694f4e71b000","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1100" +"0xb0b3bcd2778c081096ab777fc849e270d24a940f9786f37abad8af424369e5f8","4456370","1509345952","10/30/2017 6:45:52 AM","0xbce086dc26e799dc74ec0e2e5c6e351189d21a97","0xbf29685856fae1e228878dfb35b280c0adcc3b05","7" +"0x0ae14de054f3983cbe8026e901397a00b5f55aab0bac86063d898f4bf16bd5da","4456429","1509346877","10/30/2017 7:01:17 AM","0xbce086dc26e799dc74ec0e2e5c6e351189d21a97","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xdfb868d98941c8f4da6fcba40ef8749304b7cc46fd6200ef45c0d95039296f21","4456984","1509355041","10/30/2017 9:17:21 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8e7601f7daad7a0993474106d6fe1e1761326e25","999.999704778" +"0xcd7c270ea135f82643a687ad74d261d2cb5801ed7aade60b07593577c4915226","4457378","1509360420","10/30/2017 10:47:00 AM","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500" +"0xd57b6e83a27bf681a769540f0be6a3f209dcfd77e1c2297ef2f4b734a2357ae4","4457468","1509361492","10/30/2017 11:04:52 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x22c3061ef055ce29524b70e50c8c9bbebd50d6dc","500" +"0x282fec25ad1e504b18100751795808f3492304651a7840760cfe58f94dd77250","4457541","1509362493","10/30/2017 11:21:33 AM","0x22c3061ef055ce29524b70e50c8c9bbebd50d6dc","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0x3e98fa691a09f0e47e3bd7d77a3c8149e0cd80d9d801e79d593df963322aa933","4457747","1509365533","10/30/2017 12:12:13 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe819e7cc4928234227d8a67b8f4276a3a117219d","1089.96913018" +"0xef2df7a1809de5911a62d737325feb14f4616b33714927c95cb8eb2e722ca3e5","4458008","1509368806","10/30/2017 1:06:46 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbce086dc26e799dc74ec0e2e5c6e351189d21a97","0.001694747" +"0xfd3ebfa4590f56fea35d9bd67817d453bbde8372f86c612836ec8eefcbff7345","4458486","1509375555","10/30/2017 2:59:15 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","10798.697" +"0x882c850ac618515066152a8b2002e04d768c1cd87e7b79bfd8cdd301dfbe0c34","4458487","1509375565","10/30/2017 2:59:25 PM","0xbc43454e4b5c4cdbb2099449b76e11664307a1f2","0xad69515de0c75bbee0d13e14b157d735b4d41a18","10984.432" +"0xd5f87157054c3970d85e315592d8f87d2b004fe82843aeb2613293a1dae07a4e","4458504","1509375837","10/30/2017 3:03:57 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10598.697" +"0x0bf64a1a5afd76ffa19c002ff15ce2108edade2763b4ce6abea5256d918562d1","4458568","1509376846","10/30/2017 3:20:46 PM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x991b5306d6e9b018ae6a4934126a0acea37f0bd070de7df9bd51e5edcf672e51","4458723","1509379048","10/30/2017 3:57:28 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","4519.323" +"0xbb99aa921d3c9c513bfe4de811c44f5a0aa467a813e78d0a8f21097722ecfb37","4458794","1509380212","10/30/2017 4:16:52 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x39d52db574854e7067b6c970abe6f765c3024cac","9720" +"0xef3a58879b56656fa20a2baaf24ca5436748cfa1a8d50ba427a0eeeac80c2328","4458965","1509382855","10/30/2017 5:00:55 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xfb7b4c771149d5896e93dd5186302d1a0268db6b","10" +"0x90167faa150830a5f780fc49945b81baad8ed27214ec69ab2eda4c0f1959d327","4459272","1509387126","10/30/2017 6:12:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","10598.697" +"0xd72983f65514c2b1426b35f5211ca857d73304479cdd2cac94a990acee6bb676","4459282","1509387277","10/30/2017 6:14:37 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5555" +"0x639197a3be4111e1afa361c0f27f5eb5e84cc0cc2ad99ef076137bbf01be93d3","4459321","1509387698","10/30/2017 6:21:38 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5000" +"0xfbbbcbafb67ccada885acaf7da0592d7ea2d66e6da37c734ab9926e772a9082e","4460069","1509397966","10/30/2017 9:12:46 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x4ffa795dfa25cba3ce04e70aff9edc77ff8d861f","1111.111111111" +"0xe0d7e36fc88c166328511c1b962f41f7e1757369ec1aa385d3cb5b1d161326d4","4460121","1509398768","10/30/2017 9:26:08 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x4ffa795dfa25cba3ce04e70aff9edc77ff8d861f","1222.222222222" +"0xb0bb390d92e561bbffb11604a91d60b33dc5144675738c184a4dcb9c1bdec739","4462161","1509427899","10/31/2017 5:31:39 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x5f6de78db62b1ad9744ef8f5d57183453dd3adbe","2752.045268109" +"0x4714763f43b02f0df0dc7fcc5c7aeab2b313199712d4c2ecd0d82f1049a299d0","4463268","1509443052","10/31/2017 9:44:12 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2625.000000001" +"0x21b04ce322389f64fcc9a7bf9558b8db63689317f8b6dcb5b8adcaf6770634ca","4463301","1509443509","10/31/2017 9:51:49 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1794.437524781" +"0x2e0ea3e1626318226db0e696495aa62dbf70b31e094560d759f124d03c3773e2","4463856","1509450945","10/31/2017 11:55:45 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","5000" +"0x9f903131d909267dffe609d0b9a7b634df6fd2a313b010a5c0556400cfbc8971","4463871","1509451078","10/31/2017 11:57:58 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","55" +"0x36e409100981545ce45b7ebc4a5990d9e652921f5323b745c47bbe55ae07ef9c","4463871","1509451078","10/31/2017 11:57:58 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5150" +"0x83107731b67854fb9a06e236871bc4f8517b24935f52f9f9937b3a521b6652f6","4464160","1509455281","10/31/2017 1:08:01 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7f92a6de697a1f0d3e5b12c5626a2c1afcf9b26b","237" +"0x1251cebcafa5b3f271241beeaa643d514480deea3a43231e7a208219f2efb49a","4464162","1509455374","10/31/2017 1:09:34 PM","0x7f92a6de697a1f0d3e5b12c5626a2c1afcf9b26b","0x70eb10dca81ec3c8b927e744785d270023297a20","237" +"0xa024139403db801846f0f319c643f0caae5f12a2c3b568614bafc37a5fbe5b6e","4464799","1509464180","10/31/2017 3:36:20 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","350" +"0xb8e5e9f36fa59f1ee6a45205369fab58524e63bdf258a117e9fc4d613fd415e3","4464822","1509464605","10/31/2017 3:43:25 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0xbf29685856fae1e228878dfb35b280c0adcc3b05","350" +"0xfaa6156ee366af442dab33de5a9878db5513e932e2df9cf7782ce627da15c840","4464900","1509465617","10/31/2017 4:00:17 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","10" +"0x6dd22641ca1f2379e237421a3f0f435e501336980ab2f60abc68eee15a88791c","4464910","1509465739","10/31/2017 4:02:19 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0x387b40e03326f5f4058add5287c3a7af061b6f3f","10" +"0xd465cef5ce5a1867f3709532d6dfc35e294987252ead0be2156881cfb86a4c5b","4464920","1509465861","10/31/2017 4:04:21 PM","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x5d7f46a890b8003c8ae77f9146a11176b308a7bb8bffe841f42f1bcd93a88d6e","4464946","1509466171","10/31/2017 4:09:31 PM","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1.616" +"0xe8892d666c96ba0e1bcc634f01e0f570943ba7b0afd5b4b7e082849aee52c78c","4465027","1509467269","10/31/2017 4:27:49 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","340" +"0x89a7fa2393fa054c42c82b6cee20b0e197ca14769744c1f272931e8c0ea383c6","4465032","1509467360","10/31/2017 4:29:20 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x074a668ec5ce20a83a1413a036ecb01bda8fde7e0e181db95fa1213dbd4cc85a","4465429","1509472813","10/31/2017 6:00:13 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6c0b9a99c1ed76948fea1038be2c56ebb8855763","1300" +"0x15780bdb30c4d550e0fc797914e3a5616e87f37ab94612823c2fee306f11cb86","4465613","1509475412","10/31/2017 6:43:32 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x6c0b9a99c1ed76948fea1038be2c56ebb8855763","490" +"0x37a7d78fe9cc07525d265ee6ce69fd4295757cf5046fffc6e0c310e25fb55349","4465719","1509476932","10/31/2017 7:08:52 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","2625.000000001" +"0xa1173a96d8f16633622815cf0e0944b487d833da2edbabea6dbc923f0529d1f8","4465738","1509477242","10/31/2017 7:14:02 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","4989.344751005" +"0x5d70c2f45bcdc309e52ea01cba37ebb00347f1a57241ed56971f6373a704a532","4465754","1509477432","10/31/2017 7:17:12 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","471.050926621" +"0x990ebf365b016d73cb8b520d5ed6ddb7d04918cc3d31039b2e70f6b7562dda35","4467108","1509495879","11/1/2017 12:24:39 AM","0x5f6de78db62b1ad9744ef8f5d57183453dd3adbe","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2752" +"0x432569744db9e95a45aeeb530cbb7fce7ad3340bc8c7bac879388c58582f7719","4470578","1509544113","11/1/2017 1:48:33 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0xbf29685856fae1e228878dfb35b280c0adcc3b05","300" +"0x16f20b3610466cd9073453c863f8ac433ddbbda9ed55cc465e90e58a75ebbb22","4471090","1509551634","11/1/2017 3:53:54 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20" +"0x43105184bbf8ab00cb60ab0d5068c67971599e11fc26c4fae3f37cd094668680","4471511","1509557910","11/1/2017 5:38:30 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","10" +"0xad53b073277f5623056289794d399e64b1c25df7116034f34ecb0c2b9cedd66f","4471515","1509557965","11/1/2017 5:39:25 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x20a28dfaad58601ef902893bf3edbf6862985621","10" +"0xfb6f7019ba1c39e3618242930fe639132348e5547bc81cf786af73cfe8ea4dc8","4471526","1509558157","11/1/2017 5:42:37 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","38" +"0xfb816df77ffc6c47188cb811df510c86e389a83046c52e8e152bb18054fb3216","4472646","1509573768","11/1/2017 10:02:48 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","6000" +"0xc10c6ad19b997e0901c5e81b6c94485d1566aaeca7571ee38918980559a24e47","4472777","1509575605","11/1/2017 10:33:25 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","6000.697" +"0x63918799ec1e3e096b3981862f497fdf9b0e8b61c2c26ef40ea64c221554ef40","4472837","1509576516","11/1/2017 10:48:36 PM","0x516dbcd038ea68337c582e8ced9a06589d30a030","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.333333333" +"0x4655102b6d6af838e30de00eb73dd162e71e2b19fa8cddaa152b9505c628dbf0","4472935","1509577740","11/1/2017 11:09:00 PM","0x721948a802f41159348e67fbcfaccea8a2b04c27","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.066666666" +"0x574487cded1aa8f5325c04d8288a18db24789be200d7b5550209a54c1df53d49","4473026","1509579006","11/1/2017 11:30:06 PM","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.022222222" +"0xa6bb9ccb345507c18976c639de214308ed15a62e2e148b6355f71b46ff9c2595","4473204","1509581594","11/2/2017 12:13:14 AM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0.00398765" +"0xcbb860f7fcbd7dbfd08c36719ac186feb8596185f49fbc86e7073c1a857fb7cf","4473239","1509581987","11/2/2017 12:19:47 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2ceea4079a67c905650cd6095bf429db654ce6db","5" +"0xbf1639648c741fd2b04fec2a271b025d43b835614b439d07b3d6d5b170df5088","4473675","1509588315","11/2/2017 2:05:15 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3ce536ff157777dd23ea7ec3a5dc6302aff9ff07","3700" +"0x42af52a397999d7b2452d5d3fcbedc1135d9fa79d194b313582052e3fab6229b","4474114","1509594599","11/2/2017 3:49:59 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x49249116536fc33fbd180d85f80378b6398dcc753cfa204f7cebc59c33f181a8","4474627","1509601884","11/2/2017 5:51:24 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x413cbefcdccf1addab5ad294a858d30996b89182","399.999" +"0xbb0b0a4fe0cb086b2d1fbc56becacf9f110ffd0b5f78585809e9b6be1b9a5bce","4475072","1509608187","11/2/2017 7:36:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","49.988" +"0x8c0eacafb31560336b73107569e7f9d50b630618c86fb391a05ab71875afc5d1","4475874","1509619336","11/2/2017 10:42:16 AM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x5f08181d3fdc7160a63b2951a1a41f69e9affaa2b8b2ef7af5535ce6ad76ae56","4476027","1509621580","11/2/2017 11:19:40 AM","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","5" +"0x3c1bb2a0a29d5749cee74a6e7b53ba9da8c3c39e3c95a5079c05873cc5115bc9","4477495","1509642078","11/2/2017 5:01:18 PM","0x5c03df0229600abbacc1ee55e0b70b652b080b12","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001538461" +"0x0afa1762e83612574d32642af480965928e420ffc4002ac9ade7075d6bbc6087","4477635","1509643900","11/2/2017 5:31:40 PM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x77cd2c563bb8e60547faf10389ef6b8d7978422fbbb020bcfd2e22e3f71ec9b3","4477773","1509645653","11/2/2017 6:00:53 PM","0x6282207dfbafa5babd719cf1626ec86a1e88cadd","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","9" +"0xa48c91b1b47095b641f82bb7754d0c54f7676fb94180bfc58ab20899d19fc1f6","4478131","1509651227","11/2/2017 7:33:47 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x59613ed33389b035f2a650587077b4d26d4e8f05","531.999999999" +"0x24c543f95fb5935e1d7f2d6dd01e3496a4aef752cda83245cf84d7806ef34d81","4478406","1509654824","11/2/2017 8:33:44 PM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.00201" +"0xa1faa8ed0a1a0c5885587e4835ed979983ec225eb29afefa76ca7571603a67d8","4478499","1509656189","11/2/2017 8:56:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","10" +"0xf99a6720575cce7d46963954c3769c191bf502abebcf7bc7e5026270eec37aca","4478507","1509656283","11/2/2017 8:58:03 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","10" +"0xf46a723148ce01e364f4450a91f4ddb6effd26c82f1c1d415f2392011f3edd94","4478575","1509657163","11/2/2017 9:12:43 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","2" +"0x2d284cf848a41993061dde6c4d5158a8c1b0f06c1a2b689871395c2c84bb13f6","4479410","1509669006","11/3/2017 12:30:06 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5f6de78db62b1ad9744ef8f5d57183453dd3adbe","250" +"0x6641164598da9dd5bac4e0c966f9a8ab7f01f0cf03f2fc181058f0a138ce036e","4479424","1509669171","11/3/2017 12:32:51 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5f6de78db62b1ad9744ef8f5d57183453dd3adbe","2502" +"0x224ae2da66ae8f60b49d5f7394995edc34d97da73ef3c09156c0d48f4a631c74","4479454","1509669558","11/3/2017 12:39:18 AM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0x721948a802f41159348e67fbcfaccea8a2b04c27","0.3" +"0x124efa85aa32509c96e888c0906e263f8a1ae65f790c8c83993f30d0377a2f35","4479622","1509672113","11/3/2017 1:21:53 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x43764357c8aeb633adc6433e85e331d0b913fe79","420149" +"0xbce1547014e374c6a1bfd6b0f07717acbd9611057517208bfccd4a5c4c965989","4479746","1509673930","11/3/2017 1:52:10 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0004" +"0x44be27ef1e6ef4a5c327fa074471379fe79cfaed1380d28ff04f1afa2a58336d","4480257","1509681008","11/3/2017 3:50:08 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x52cdd2dbbca74b3cc81e8ca5e39ff6c4f14452b7347850c2daedfd35b69f7042","4480397","1509682986","11/3/2017 4:23:06 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x820c55cff09938530a9b1e81a811fa25c4cba569363f5b3aa2396afbf68ce9b6","4480510","1509684584","11/3/2017 4:49:44 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x62ce51d070996b13de1154d5dfdeda3a311d2c5a0d6081175f56e0fab73b748b","4480674","1509686773","11/3/2017 5:26:13 AM","0xbce086dc26e799dc74ec0e2e5c6e351189d21a97","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xb0c1a4c64c12ad11c3b08ef19d3ddcd0ad78e898d7a4fa1ae77f77a82759fa21","4480802","1509688694","11/3/2017 5:58:14 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x70b6c8e62404f7fffd68e7b420be94c2cea1695a","10" +"0xbd1c13a25e1228dd08613d9e65f72507c2cfe2f3df635262614c4c80ff9624ff","4480865","1509689471","11/3/2017 6:11:11 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x2ebe5aa9282d52a80ea0c50ed25ef20cee31d930","1017.254673776" +"0xa2422593a9b7dee12fd97c6e1b9d872a1d3c16596558ebe3627d217b87763be4","4481543","1509698471","11/3/2017 8:41:11 AM","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","0xbf29685856fae1e228878dfb35b280c0adcc3b05","885" +"0xa14e51cc45e57836f84e1104a3edcd90bc1f284153389654b57c42c12fcb65a2","4481690","1509700510","11/3/2017 9:15:10 AM","0x70b6c8e62404f7fffd68e7b420be94c2cea1695a","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x8c7018cba70b2de08e0c6d974f63c6d76dd9a65dbce1ee30153266446febc20b","4482118","1509706960","11/3/2017 11:02:40 AM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0xbf29685856fae1e228878dfb35b280c0adcc3b05","4500" +"0x83b6abc798546966db64f45d6e30258d5334fd2ae453be97ffc98d6e91979c8b","4482653","1509714256","11/3/2017 1:04:16 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","210.844" +"0x9e372212ded7c612533f0a361ab79f104abb659dae78ff7c5ffad3919787bcac","4482719","1509715228","11/3/2017 1:20:28 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0xbf29685856fae1e228878dfb35b280c0adcc3b05","210.844" +"0xf4e1b9ed6150f0b0e3560cdceb2ddba471e352e4c731786f1860a11b3610d3d7","4482796","1509716256","11/3/2017 1:37:36 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","210.844" +"0xd097f9b8332d8ea96055e704466eb66e87e25bebf142fd8fe673def207f2d31d","4482902","1509717653","11/3/2017 2:00:53 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xc6bf85026ae997894e4c765156d27ab57029961b","10" +"0x3b555bd920948df9eaa11c4aab93b75bc732ad2cae434cc6c6c3b778c6ce4def","4482948","1509718192","11/3/2017 2:09:52 PM","0xc6bf85026ae997894e4c765156d27ab57029961b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xd0af3cd7fe4b9d6c1a2add84cd687c930b4bc3513239fa5808267c00f1633c08","4483167","1509721485","11/3/2017 3:04:45 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5b78e67c9b18458ac4edcb5fb7c3e66fc81a59ba","2999.999999352" +"0x8e669845cb1451484ddd399cc217938c4c201b7265f06eeb449fc1a4690c2ec2","4483174","1509721617","11/3/2017 3:06:57 PM","0x5b78e67c9b18458ac4edcb5fb7c3e66fc81a59ba","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0x7136dcfe68d5631a805d9e15df9d2616e803da111f411889cb064043e0369a3e","4483220","1509722359","11/3/2017 3:19:19 PM","0x5b78e67c9b18458ac4edcb5fb7c3e66fc81a59ba","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1000" +"0xec405907ab021c8ad5c31fa58743dbea3174153b82c76a471cb55f975ad28dfe","4483231","1509722580","11/3/2017 3:23:00 PM","0x5b78e67c9b18458ac4edcb5fb7c3e66fc81a59ba","0xbf29685856fae1e228878dfb35b280c0adcc3b05","999.999999352" +"0xe697edc975f0bd5418285ec752a1000fb2cc4a4c134389101826a1a3215bfbfb","4483274","1509723155","11/3/2017 3:32:35 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","885" +"0x7385e379eaa33ad4d9ecb252ea75d20986f7be4d23fb9542a45b1350d8b76b8e","4483289","1509723329","11/3/2017 3:35:29 PM","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","0xbf29685856fae1e228878dfb35b280c0adcc3b05","885" +"0x8f2d25f691c8c7717c7fdca1b84c0f47da5cf5fd1251c00c4266516fd98364ba","4483585","1509727531","11/3/2017 4:45:31 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0xbf29685856fae1e228878dfb35b280c0adcc3b05","25" +"0xe562d822d68f9e5cae8314e7711fef8d740d1ed2b8a0386d2aeb1511c0ff4988","4483842","1509730862","11/3/2017 5:41:02 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","25" +"0x545c81e338bb8471052d49ee961be0a5abe7dab698337e6d67fb1a6ac52b3df1","4483911","1509731749","11/3/2017 5:55:49 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","150000" +"0x1173a28d6c8328af68f95a53a75c06d41fd5646fac86a4710709bfb9989433ea","4484009","1509733177","11/3/2017 6:19:37 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","25" +"0xa196896c7c76a100037473ee7e5324f3d20afc0e968c2ecb81d71d79c70b64c0","4484096","1509734277","11/3/2017 6:37:57 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x77d42d16d79da3d11de0c59cd74cfe91d1add3b0","1" +"0x4b62d708eab88617b19611c21ed60bdbc436b21dcc4bc817e589a943dc991b9a","4484346","1509737688","11/3/2017 7:34:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x42f1cd96e3798374963db6d1670d48952495ed2e","100.397" +"0xb0b46684de6112675451ac76bf4be9b6acb78e5f410dee413f9ad1325b9cf3bb","4484349","1509737788","11/3/2017 7:36:28 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x42f1cd96e3798374963db6d1670d48952495ed2e","800" +"0x47e94bd0ef7f19faf1297e7b5e0327e68e68ab27ba2b092d018c10044ca17509","4484377","1509738214","11/3/2017 7:43:34 PM","0x42f1cd96e3798374963db6d1670d48952495ed2e","0x79e35676b1a3f1c717678635663de01c66ed2e20","20.397" +"0x5a85af20edcfc1348e09f354de72d83bab41a33a33bbc9efca1a289f6e383907","4484461","1509739405","11/3/2017 8:03:25 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","2080" +"0x063cb1646faf253187b864f42f62a3a81b4677ea8b67cdb8ebabf08026098b15","4484471","1509739524","11/3/2017 8:05:24 PM","0x2ebe5aa9282d52a80ea0c50ed25ef20cee31d930","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1017.254673776" +"0x13ba183384850963daf0421892d2c7e479fc4c0004b36272cfeec637c6b07873","4484472","1509739532","11/3/2017 8:05:32 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2080" +"0x854fc3bcacd66835b560e7a966c71c68773983d58d14db6ae032be24fbe1f7a7","4484723","1509742679","11/3/2017 8:57:59 PM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0001" +"0x69ab8ff6accc61a1292c4cf64530f9180355dce92e1356705e35947c97d666c3","4484746","1509743134","11/3/2017 9:05:34 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","100000" +"0xaa7d064a937b24bb91527b079ebf4a2aa598f12f16c1dc37aa743e38729c2cf7","4484808","1509743900","11/3/2017 9:18:20 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100000" +"0xd0d10be4e7a3adf8dd697e6a59077d707312a77dfe2b0d4332cfab1382bd4329","4484825","1509744142","11/3/2017 9:22:22 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xb76e5f8b2e72975b7cd1fdde069e7fb4ad80761b","2.000297713" +"0x00743cd9102ee1fc60fa54186f46437d7b1c85dfb66f4a20dd87b3bdfb8c7602","4484837","1509744308","11/3/2017 9:25:08 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","2000.97" +"0x29bfd15e49f7a5836aa21b462611e8bb8851d45481dfb5902dcae55fe28576f0","4484841","1509744408","11/3/2017 9:26:48 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xb76e5f8b2e72975b7cd1fdde069e7fb4ad80761b","200" +"0xd657924fc02267e3767e6a6ee41d74b2e1f70a45205b6af570a240f4fe63244f","4484853","1509744576","11/3/2017 9:29:36 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1600" +"0x5e27d4f4b05afb48b456bac802b23622dca588752d87e9ca7ca212027d7d7aec","4484868","1509744757","11/3/2017 9:32:37 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0xc56c96ad2de75fd1450774899b6195cd8d171716d5a1a7288a57c2cb20d25bce","4484882","1509744934","11/3/2017 9:35:34 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xb76e5f8b2e72975b7cd1fdde069e7fb4ad80761b","150" +"0x60c04d337df918281860014a2170977307eea004d0f30e3f8e894fd34f5f2870","4484883","1509744943","11/3/2017 9:35:43 PM","0xb76e5f8b2e72975b7cd1fdde069e7fb4ad80761b","0xbf29685856fae1e228878dfb35b280c0adcc3b05","202" +"0x8f552cf5142e87b79eb6feff1e0dc3a3f20db0259e6acfd93216d924d20c7b5a","4484960","1509746030","11/3/2017 9:53:50 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","22222" +"0x0b81667b39ac4cb1ba1b83ad0aa1c8b26223f16d4f0326e109c8b7ff7e496730","4484974","1509746153","11/3/2017 9:55:53 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0x9951fd770e908c9c4204833bcfdb5e86898e1c7b","10" +"0xd70a1dae983a294711c29e09ce1fbe97a32b09bfbc66833a877b0faf68cc537e","4484983","1509746256","11/3/2017 9:57:36 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","22222" +"0x5e562b4e24ec6c15886ddd3d4df4c00b4721c2b61c03330e3abdf70fde9985fe","4485319","1509751031","11/3/2017 11:17:11 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","75" +"0xa2cd433df5126f75da05598b7d09014d906c6af0271a0f65196a22946f81afed","4485443","1509752973","11/3/2017 11:49:33 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","50" +"0x2132dd3f352299927000dc999664a73e0d41beb3e2578fb189e92f96e1547bcb","4487965","1509788026","11/4/2017 9:33:46 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x09ed9b942c764698d96a80dda577d285a13a8144","120" +"0xe394c76e697ad79b8e95920cc5c95bbe274543737e182762c9edba94a4ba17df","4488187","1509791475","11/4/2017 10:31:15 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x035392de57aa4fe343d86494103dbe1b068a56c6","15000" +"0xa5ebd6f0c174c2304a8042857ab94eec6ff6f85893e286e867b5a0361026397f","4488213","1509791742","11/4/2017 10:35:42 AM","0x035392de57aa4fe343d86494103dbe1b068a56c6","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","14970" +"0x8adc1e47937dd88903467fa302e7d548212189614e285d7182208b41136a5eee","4488501","1509795468","11/4/2017 11:37:48 AM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0x3b86ac856a0be09a275cdeb6bb50a17f98623b5c","1" +"0xa6ba58caadbfd8bca5723f023f19029ea6547ed50c5cf84bfdcce1227f96a507","4488589","1509796695","11/4/2017 11:58:15 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x78b0e4933f5b7d90102367e28efcde256998411e","3500" +"0xf67d705b0b826776464fc0dccad8295b831c755d3d56f8dbc827d7feb8892235","4488610","1509796936","11/4/2017 12:02:16 PM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x8b182a4526944fa498970732a69a95d281c3c8a9","3500" +"0x18e715ab7dfb545a6d9b3d5e4c15250bb8e9799c274612cbbf1147c3711e4c70","4489367","1509807169","11/4/2017 2:52:49 PM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0xbf29685856fae1e228878dfb35b280c0adcc3b05","19" +"0x7ea6c22032ef7e23e15f357b2db1a99d520ac38aa5f7bf7f9ed3e76eff6d9577","4489688","1509811881","11/4/2017 4:11:21 PM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xab7d0269beb3ae0dcf1763185b3e0d3450f85f96209548388a6b75d8f146f678","4490407","1509822271","11/4/2017 7:04:31 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0xfc62b23a17e9138877f7a3bb2078697167ce3610fdc3410cf13a07d3f342980f","4490416","1509822401","11/4/2017 7:06:41 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0x1dab1cb0b47c2a66f97da8759c2a742980042f5a2dc73bca1bf95ed750aff278","4490423","1509822567","11/4/2017 7:09:27 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x900d50e5dbbe60b79a91c48a4b0dd28c3638f447c2551ec7064fd1ac78da0e07","4490432","1509822687","11/4/2017 7:11:27 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x516dbcd038ea68337c582e8ced9a06589d30a030","1.666666666" +"0x9b0ae4377f90f0f0851093ec52a07eed4f429951f8f4b94b787177f993a6d543","4490440","1509822833","11/4/2017 7:13:53 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0x3dd99671eff7a32d4ad0885264ca378916ac9cfe","2.004008016" +"0x6fb0e6c649eaa6cc5317aec37f41ab65c07b653a7cd18c3420d1e2cb7965f470","4490768","1509827291","11/4/2017 8:28:11 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x76a276a468ee511a6238bb51eaee967d83be79c1","300" +"0x449b55bf7161334c20f09b8c2fbf63a69a69c537a43186d2b504a4dc0be7720a","4491041","1509831223","11/4/2017 9:33:43 PM","0xff64f34e8511693e3dffa0e1fe037a6a65f3937b","0x9bf49c0d30afc293344526fd9acc82fa28486af4","18.182" +"0xa5f47e80fdd117ef47148e2bed1490bd0627377453eed93b1b02abf7b0b51c99","4491875","1509842116","11/5/2017 12:35:16 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x77d42d16d79da3d11de0c59cd74cfe91d1add3b0","1019.768949589" +"0xf620721f3c95b3bb3e6d2f72f9e9aa5a40b25ba556cf5beeb8aa672899fe2a9c","4491885","1509842255","11/5/2017 12:37:35 AM","0x77d42d16d79da3d11de0c59cd74cfe91d1add3b0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","20" +"0x2bd2d92f5ce68efed229b0f0ca2306fa4ee955186c46561a5f72e0440ca88f3b","4493038","1509858140","11/5/2017 5:02:20 AM","0x42f1cd96e3798374963db6d1670d48952495ed2e","0x1aef7b5d175336f9aa4ce4c9af86f2944e68e306","80" +"0xb4f8a3f9007938ccb0751ceec655a08eb443e02e06e9e4122fb492eaaff3655b","4493065","1509858600","11/5/2017 5:10:00 AM","0x42f1cd96e3798374963db6d1670d48952495ed2e","0xa3e9b02e4f09b21cf8dae862eb11c7a2fc3fac59","50" +"0x17a6c4dc5ebd14d1128541a5b7248cb23528b4369c6eba12d9188339b3081f0b","4493097","1509858997","11/5/2017 5:16:37 AM","0xa3e9b02e4f09b21cf8dae862eb11c7a2fc3fac59","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50" +"0x3eb710b3c1957a72900b915071ceee2736e176ad3a9d9c731ffb28abfeb6ae98","4493149","1509859657","11/5/2017 5:27:37 AM","0x42f1cd96e3798374963db6d1670d48952495ed2e","0x1aef7b5d175336f9aa4ce4c9af86f2944e68e306","750" +"0xae093a43bb97152960fddc9057c5e87f4501848a9e1e76ab9b5f9791b83398b8","4494024","1509871091","11/5/2017 8:38:11 AM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x918dc9ad955457dc84e2ff425fb2adffda3d0778d76243092d82eca88945cd7a","4494912","1509883298","11/5/2017 12:01:38 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","4519" +"0x3f81a27797cabca125e2a8a599aae3de735be0a87790ada8d6285c4fa01844f1","4495157","1509886865","11/5/2017 1:01:05 PM","0x09ed9b942c764698d96a80dda577d285a13a8144","0x5a695fb10f1abb65d934737fe45640a228b9f051","120" +"0xa9d37ad44804d8d9a25b8691bb56846d70f4a3df33b2dd51aa8d6828970f38a4","4496457","1509905030","11/5/2017 6:03:50 PM","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","0xbf29685856fae1e228878dfb35b280c0adcc3b05","4519" +"0x8965421c8fe421c03730c21663c58a90e3799eef06ec970171e453682f13dbec","4496686","1509908144","11/5/2017 6:55:44 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0xb8ca95b4413df1b2f1e1a8571f9d2b54f08d0b28fb7ef939fe117369112fde05","4496755","1509909080","11/5/2017 7:11:20 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","14" +"0x9cd624b9c86d6087ffa93780f01aaa1a99b38b68c23ec326a37e3931f25b4b70","4496776","1509909442","11/5/2017 7:17:22 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","10" +"0x1d8d1b94534e53e0c6b5d22736e090762a35f56bab8c467c3ab404fbebd79db5","4496785","1509909562","11/5/2017 7:19:22 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x20a28dfaad58601ef902893bf3edbf6862985621","44" +"0xa3fea887c420e4d7bff64505db9726fa5d4f44aa0621c3d06f642d0562b9a2f8","4496842","1509910570","11/5/2017 7:36:10 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","15.877" +"0xfc695c9106587f3ce676fb85f5984254a5b12ea0e1d2301ce2a9390d8b03feab","4496931","1509911934","11/5/2017 7:58:54 PM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","54" +"0x5d01767a0740902580723a8259b4fa0f252bd644e296725633c18168e285dfd9","4498898","1509938433","11/6/2017 3:20:33 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","10" +"0x3e53c66cadb8f15f09d0af71758fd1594c6e0ed9ceb76c91cc2aa9ce23d2e3e5","4499050","1509940747","11/6/2017 3:59:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","9" +"0x633c40554be39ebd6983d9d1a657bbf06861e3d13ed1bb6878d1e08b80cf61d2","4499075","1509941103","11/6/2017 4:05:03 AM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1.047541292" +"0x834efe281e8e9b136f14bc4d517c0ba802f6b875365ec1d9e711d74da83542a8","4500465","1509960819","11/6/2017 9:33:39 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","2380" +"0xa9f3c108f1597282ab00a733056d40f6d1dfe3e96913aaa4e49a2c31cf3dd333","4500528","1509961550","11/6/2017 9:45:50 AM","0x97d93f65e6a3723ba6a71ecae65b264fcbeb56b6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2380" +"0x86e2cb35d0b5f576b4f2f92bda0eb50344cd8c48d7ca2f2dabda68432292b581","4500702","1509964395","11/6/2017 10:33:15 AM","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","794" +"0xc35a57951f9d987417353bc982974aad807283c6145bc6f784fb56947ee546a7","4501318","1509973081","11/6/2017 12:58:01 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xef6438ef3a89b86c8d299c3952b2564887c03cc4","1" +"0x364da811e3e88d4c0b5c8aa05b5e02a38589aa25077fddd76dfcd8951bc823ec","4501622","1509977243","11/6/2017 2:07:23 PM","0x78b0e4933f5b7d90102367e28efcde256998411e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3500" +"0x6e4b8d5da6f1ee0860551f97a83f742e216d1d07b6b1ea3120334ad43b424a43","4501861","1509980386","11/6/2017 2:59:46 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","498.454790179" +"0x52e70689572e09042aa526361ad0d85be385606df420bf5a1e246a72724f0d07","4502033","1509982915","11/6/2017 3:41:55 PM","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","198.454790179" +"0x6cfc72d110aaad65038ca7af691bb0a3947872f5354ca6e9c1126bac53bec4f8","4502613","1509990732","11/6/2017 5:52:12 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","50.97" +"0xd595cb20a4356c84105ceb978a91387799e77376c45ad410962a30973b0ba79e","4503742","1510006520","11/6/2017 10:15:20 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3f43c5ff8203f367b07b22f3be421e2f9c460a97","1111.111111111" +"0x2cfbe00d39ddeac86a6d2f1c63c328fc4c570b6edc05847d7426c5356d8261b9","4504053","1510010989","11/6/2017 11:29:49 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","2" +"0x249f47d65256954fc95d9460f4748ab001b97c65bae357c0f62760791c72e4f6","4504101","1510011577","11/6/2017 11:39:37 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","1078.898" +"0xa9dca86348195ad375a8f6fe516b18e9d60204d87b3d4ad766e35edabf0ae15c","4505238","1510027591","11/7/2017 4:06:31 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x436d494dd9b27efe9da45b8e7213f10aae6bde3da810dd81c82f9e74f051cb06","4506777","1510049162","11/7/2017 10:06:02 AM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3400" +"0x8701e742e1dc15c7f65cd4cf3bacd3d5eba8f537cb0bea713a1e6276ee998dfd","4506993","1510052242","11/7/2017 10:57:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd1346e7a25b100c7c34e15c954a3dbb7779881db","1" +"0x55025e48abcfa2e06c7477dd078f3d9da8b102931e791baa7ae9dcd44a5f657f","4507012","1510052455","11/7/2017 11:00:55 AM","0xd1346e7a25b100c7c34e15c954a3dbb7779881db","0xff6e15299edbe7501fa187341b07e6bdb5bef4cb","1" +"0xe3dcd4a40eda43e4a9a11ec6873170fa58f5594939e649100adfd021525ede17","4507132","1510054157","11/7/2017 11:29:17 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xee80ebb22e6399a582918969f92e94508e43cdcf","5555" +"0x5d39b53a06f07bb94c0fa720cd55bec7b1302f4da77633027a876cd3d6c0706c","4508478","1510073060","11/7/2017 4:44:20 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd600d591216daf658f43bda5a93e58b37008baef","7582.856999854" +"0x1d9b3a060a32c4abf6567b5d80391393a1610214d8c68a39e7a8a73bfb731d83","4508534","1510073903","11/7/2017 4:58:23 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd600d591216daf658f43bda5a93e58b37008baef","5555" +"0xdd535770980bb614d9a233aeeb7d81a55bc110f8aeba2954d230f30f9efc21b9","4508870","1510078553","11/7/2017 6:15:53 PM","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x342e8e50b9caa5aa562c7a65a24219c133db388c06ca8e6dcc755dbbd4a70c0c","4509950","1510092910","11/7/2017 10:15:10 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","4" +"0x319961fad164eb4cd73fa2b58b42e853f8254fef50f70df5aad5777e9e6453b2","4510448","1510099771","11/8/2017 12:09:31 AM","0x76a276a468ee511a6238bb51eaee967d83be79c1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","150" +"0x361c4cbdb0887d4eec45c1c30d7bf1b1db49da068467f67a1c1bfd745ea8288e","4512813","1510132616","11/8/2017 9:16:56 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2ebe5aa9282d52a80ea0c50ed25ef20cee31d930","1017.254673776" +"0x6b24edc23cda1f4762719f085e21f6bce30b29be7ed2d38fb4a5caa7862b133a","4512818","1510132721","11/8/2017 9:18:41 AM","0x2ebe5aa9282d52a80ea0c50ed25ef20cee31d930","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0x6b1d8af9fd9e252b74c2bf5ea921c73ac3673e6a9bfb90b483d2b93e2ebc8c4d","4513625","1510143494","11/8/2017 12:18:14 PM","0x76a276a468ee511a6238bb51eaee967d83be79c1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xdaf9441ccdd710a038435ee0e04bf3cbb8b3b37b0ee585a3be33f538cb349ecd","4513760","1510145480","11/8/2017 12:51:20 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","30.960966666" +"0x844b9d6ebe757173267f32259dcbafa815c76651e1c9a1977a3ce15973c2c3c6","4513771","1510145641","11/8/2017 12:54:01 PM","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4.961" +"0x96ce6f1148799b6cf7cf881f1180b7240beb3f9dabb9193a95ecad203b2d6f7f","4514159","1510150747","11/8/2017 2:19:07 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20a28dfaad58601ef902893bf3edbf6862985621","36.037541292" +"0xc3455cd8e4ad8612f6f5ceff70c75030337f9dc64c7bacf62280021543fe2756","4515209","1510165204","11/8/2017 6:20:04 PM","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","0xbf29685856fae1e228878dfb35b280c0adcc3b05","300" +"0xde9bc75806526e038f683fd2bcebacd1f12255e3bfa9847ea12be471f8720bec","4515225","1510165435","11/8/2017 6:23:55 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","300" +"0xe04eb645d8fd786f1534157f3ac632f584fa5b0dfc3ccf7c09d54ac1e90a3217","4515947","1510175675","11/8/2017 9:14:35 PM","0x5a695fb10f1abb65d934737fe45640a228b9f051","0x09ed9b942c764698d96a80dda577d285a13a8144","120" +"0xefd970a58a748d894c9cd62237255b1425a907a33af60764a0f2c53a917462b0","4516140","1510178426","11/8/2017 10:00:26 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0xc5ce695b49d3d66e10d34e80d627979c16e154c92d9a2e7071a08973468556d5","4516279","1510180505","11/8/2017 10:35:05 PM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x034767f3c519f361c5ecf46ebfc08981c629d381","0.245447073" +"0xaf213ac8a46fbdb072ebc6d3fef74afa48c78fad0bc4b88bc30c69e50b38046f","4519016","1510219018","11/9/2017 9:16:58 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","1294.024" +"0xaf5898d32fed75c6a78a6731f46c459859cdd4c5617fe135b65ab7cb01fe5b19","4519060","1510219745","11/9/2017 9:29:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xee80ebb22e6399a582918969f92e94508e43cdcf","22222" +"0x7253645e2609a0e182fb081048cfd3db46907f0b218023a0755ee143d8cbf5cd","4519072","1510219966","11/9/2017 9:32:46 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xee80ebb22e6399a582918969f92e94508e43cdcf","494" +"0xe8d1897f3de45ea14f4236d3f147f91a8ac93d78370d2a0239601b2716783d57","4520686","1510242058","11/9/2017 3:40:58 PM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2" +"0xe32fe7dfb614f14475e0a03e0d385765c8e33fb707091a0242fd4122ec23665b","4522148","1510262363","11/9/2017 9:19:23 PM","0xef6438ef3a89b86c8d299c3952b2564887c03cc4","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0.0001" +"0x6ed9088c174acf153332a7ceb8e9399c7d77731a48da2c7ee18bbe2b22b0e51b","4522181","1510262751","11/9/2017 9:25:51 PM","0x5cadfbab6cde15a0ce11395d1ae651f2a0859a90","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","94" +"0x49b2a370f49a4dd28cb593ae5e4677a0364fc97655675ee74bb1c4405802c72e","4522225","1510263246","11/9/2017 9:34:06 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","885" +"0x15ab7309cb63c9b7ec90e08fa04036e99117702324ab26046d52b99892a037ed","4522236","1510263368","11/9/2017 9:36:08 PM","0xb445ee256544a8c0cbf8371202bb7b4914e897d9","0xbf29685856fae1e228878dfb35b280c0adcc3b05","885" +"0x65a9c0f1ddb5c04c1f4ce70c224f953e7a4bb9c3602f85a0db282ae77980733f","4522560","1510267856","11/9/2017 10:50:56 PM","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","0x49edf201c1e139282643d5e7c6fb0c7219ad1db7","1" +"0x998037fe185396926497afcaeafcf52307aa38680d251d8b654bbc64cf9eb6e0","4522637","1510268993","11/9/2017 11:09:53 PM","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","0xbf29685856fae1e228878dfb35b280c0adcc3b05","9" +"0x1d46d2302526cfe308b3b38f4399b7c88d3ad64df00ffc949549fafa75aec180","4522981","1510274147","11/10/2017 12:35:47 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","11111" +"0x976f7f2dd582ce55484a8ddff6a60d0a6baa83e390af1edd032e4dfb345acdf1","4522993","1510274273","11/10/2017 12:37:53 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","11111" +"0xbcc1e6acadcc381064695292664ddd92a543f4cf557105cbccda79714be3f1b8","4524054","1510288703","11/10/2017 4:38:23 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf02913aba543137a8826fd457a8f8d97a2e5782b","798.71662225" +"0x37f0d57654af2cb40ac6f37847302e421d9179d0e8a606b5bff99fb2de0a552a","4524516","1510295115","11/10/2017 6:25:15 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1291.5810875" +"0xd99a804b15c27c954c772c1299916b5f613d920dd9d43959d2b04b97af645112","4524535","1510295415","11/10/2017 6:30:15 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","4986.089818435" +"0x9f6e869acc939230309be82e30b511e7c96571c0ff0a181d319668a3d35abcc5","4524607","1510296460","11/10/2017 6:47:40 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","111" +"0x1a604b125964355408b3395dc6c761bd15a774c121a9c5519d8c2d73daae7dc7","4524627","1510296686","11/10/2017 6:51:26 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x5ba71b2fd045749310fac2160984ec67f7fe9391e969b5d2f4fdae6acc9843aa","4524739","1510298306","11/10/2017 7:18:26 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x8c99f58f448196fd9d9a058fafcce92f8416ac7dacb02b9be05a8ec1fccb20b7","4525581","1510309719","11/10/2017 10:28:39 AM","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0xb5eea6de80b6e3b6de5c5560aea92396f76abcb9e57c95ed679776f6c5506eac","4525673","1510311103","11/10/2017 10:51:43 AM","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","0xa37ade188a2e6114fa2485319fce88809bad1415","5" +"0xbda4f0b35a4851ed484d35a10491ab262add5f2e7472d54dc86f5e60273c7079","4525678","1510311223","11/10/2017 10:53:43 AM","0xa37ade188a2e6114fa2485319fce88809bad1415","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x6edc457768d0e7976ce4a977e99970a82edc78d8ab41f5bd54f85cd4894d806e","4525864","1510313706","11/10/2017 11:35:06 AM","0xd600d591216daf658f43bda5a93e58b37008baef","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3137.857" +"0x620ad60f66bad953d3da3b911ab8cd88478b2dffb6b0673c3b3d5d3cefe8025c","4526278","1510319543","11/10/2017 1:12:23 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xe56f8a11c6f63b83cbb867505b5872675f7504ad","1" +"0xc57f7e46134e9057dc82bf71f4c6e574d1b77071e20b01f5ad5498f05604bf4b","4526349","1510320593","11/10/2017 1:29:53 PM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x13448582ab91a4a0ff9e6c77a7744054ceab7071","15274.832309206" +"0x0446d2b4cb0f28bb2c8293cb450d9d688501933470e31d654a964ece95b84ce5","4526605","1510324503","11/10/2017 2:35:03 PM","0xe56f8a11c6f63b83cbb867505b5872675f7504ad","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x44836a250b2f4d8faa1bdbc7f346064a54dae4227dacf7f9d97df34f94d99f26","4527636","1510338450","11/10/2017 6:27:30 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","100" +"0xf8ac01abbfe2a0fc1ca05bb9668c0b8abe225b4f30933c7a831f6c5414f8dde8","4527664","1510338882","11/10/2017 6:34:42 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0x1cb444e6096f146991fa624c6b850148e0394665","1" +"0x701a9ef08f864e8fc6bd6f53bbdf10e7ed639d7a361a551cddf0c5b29ac89834","4527676","1510339033","11/10/2017 6:37:13 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0x874d5efcbd0a8e116f8ba806eca894b59e33031a","1" +"0x72971db9afc1a90cd1e6a448a95af5e90a7607dc1730a772e24756bfcc9876ce","4527684","1510339160","11/10/2017 6:39:20 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0x984499cff33a132a577b2fc4a40386b60930a751","1" +"0xd4ed1ea52d56df8a2083542830808cfcb60e5f82f7d23a87603766011e584d7e","4527694","1510339234","11/10/2017 6:40:34 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0x917090eae3333670f2dd348b94846f010a734d85","1" +"0x18f1bd5fee0110658e7b9926a9166b015ace2260405fc249f6d81668ba0b8758","4527767","1510340172","11/10/2017 6:56:12 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0x984499cff33a132a577b2fc4a40386b60930a751","31" +"0x8c190cccac7fc6d2c4b52b542264ba2a5a6a259f7e44d1474fa2963241f3e0a8","4529208","1510359530","11/11/2017 12:18:50 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x9d46f98172cf8c63eda44273dd63c8225327b5cf","1075.376788888" +"0x4e82af0f6da4d3daf5e13e3f5c3d620575283f7ef2b6e6f8a3071f7adc5d97a3","4529500","1510363674","11/11/2017 1:27:54 AM","0x9d46f98172cf8c63eda44273dd63c8225327b5cf","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2" +"0x68c04be6bbf9e7e96338b98dc4a7c7b48371bcd8eaa1fbd6bba4b0fcf9fd8e7c","4531753","1510394826","11/11/2017 10:07:06 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1209.7988875" +"0x6d8d3e64735e9af8d45470cc38d68464fdf87470e43edf83cb2a1450b5a4df45","4532886","1510410776","11/11/2017 2:32:56 PM","0x9d46f98172cf8c63eda44273dd63c8225327b5cf","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0xa9b6a879f252fb65e2918f8c45781b6cea17a0665f86623a32425030529bece4","4533520","1510419219","11/11/2017 4:53:39 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x40cd0af82ae60d69fc960f65b092246d8ba8aea1","641.777777777" +"0xf17db7677f9b6c7b51eed727bc6ecc00dcb214c8465223a1a92f0b829673e721","4533980","1510425789","11/11/2017 6:43:09 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xb79a5e03fb166152bd34eeb5da2798cfe0cb39a2","0.001" +"0x8f6093486a6559f4b3562ab2cd46fe3703857b95bcd8df57e329b4ed0d3e4ae5","4534546","1510433240","11/11/2017 8:47:20 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1495.861" +"0x6ed357ce3242de1fd53701fc4ef41719b1c6438bcf616d3e84e4d1334d303bb7","4537543","1510473829","11/12/2017 8:03:49 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","722" +"0xc20dbfa1c8fcb5647efdb4980f3917351e2c31c87d11a6e3649776ac8505041f","4537572","1510474072","11/12/2017 8:07:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1993.968722984" +"0x830861929829f6e9c714c213ae22166b833ef91e28c51c6a48664ddca4c6905a","4538224","1510483150","11/12/2017 10:39:10 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x456f4061bd90d352b1a27c1e3b388dbf405b0b00","1518.000430698" +"0x5a6f333f3aa91692f7c18ef64d0c00b6f0e8e5fbe872a4b671d83ca007efba12","4538596","1510488135","11/12/2017 12:02:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3495fa4757cf073dbea66f453d62082b9dc4126c","300" +"0x6fa6e876b04a7845474b6ae4a4ce157fd05a2462fdfcc58264bcd2a4c9b36cdb","4540054","1510509137","11/12/2017 5:52:17 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x4fe6b4a43d57e1686a73bd404ca7c882afdc81d2","9.969" +"0x610c3198e4e4de883dc14857fea9a9b12e1f21fa9f0202f8c9312a9cb305b5a3","4540847","1510520171","11/12/2017 8:56:11 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","7896" +"0x8b3ab8196cd980c69251955fb7773dcf49560f409165bf7b1e50ce95638e9f6b","4540859","1510520303","11/12/2017 8:58:23 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xbf29685856fae1e228878dfb35b280c0adcc3b05","8000" +"0xb1fd7ab06eb2d8a7855b100a57ebf341550beb90f07267424ec0ab8fec8cd567","4544158","1510566161","11/13/2017 9:42:41 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd600d591216daf658f43bda5a93e58b37008baef","3137.857" +"0x1bf6fcada9c95060a9c031bec41b89d7b57c05e7e79efe671dc208aaf2919d3f","4544933","1510576839","11/13/2017 12:40:39 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x96d810e43bbbc71d0af99e349483405dd3c709e0","200" +"0xb4ffadfd2ced11b13bfdfa4f8e01835feaebd131fc8a52fc93b585287131c511","4546520","1510599414","11/13/2017 6:56:54 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xff3f8d703bbfca2bd2be9eb2ba182f071b84f975","11.111111111" +"0xb225e3ca051943769e40ec73ae547f5f14db28be99d30304b5df070167e57adc","4547431","1510611625","11/13/2017 10:20:25 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","1000" +"0x5794ff8ebbec08b56a721853b07af220b367383ea5ecc3c79a1d50eb2c60a399","4550019","1510647864","11/14/2017 8:24:24 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xee80ebb22e6399a582918969f92e94508e43cdcf","1.117507698" +"0xb9bdb9ee780a7e180782a2563f29bb00e330206b85f9dfc4fb80fa5f99f4bfa3","4554729","1510713981","11/15/2017 2:46:21 AM","0x3495fa4757cf073dbea66f453d62082b9dc4126c","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","300" +"0xb01afe5d830a803d6fbf137f34d3153cf712fa24fb7d4a81c86ac33107f40367","4554867","1510715946","11/15/2017 3:19:06 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x62f5e5c4fdeafbd1b7f09d296123998c1f3a85ac","20470.651" +"0x2873cb80a089604b41dceebebc60bcd2b96038aaaa6cde300de43f96fc9e486c","4554912","1510716540","11/15/2017 3:29:00 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","8055" +"0xabefe85d1b4bbd37a128995ec8732bf9369bd5c7d7336c2fbd76fd1e2c7950ce","4555054","1510718377","11/15/2017 3:59:37 AM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xf189b859f0e8e683467efda2b48be8e80e7cdf7d","5" +"0xcb89843b86adb6b22b418ed288502e73afefcc99a534912baa760f9a3ea25052","4555110","1510719052","11/15/2017 4:10:52 AM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xa0198e1adf7cc16083f96d0a3c18d4a932e549dc","50" +"0xd3d781f0c627b9602d59b2be938d9a9663f732ff481cb80eead5071d6b5050aa","4555263","1510721285","11/15/2017 4:48:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","1950.256" +"0x1e495846b92d208a4497badc175feb642485367f98554bde81a889339634eb5b","4555375","1510722782","11/15/2017 5:13:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x107d35bdbb393d33d6d9ce4127883b057b8e6187","50" +"0x429d799e498decf020d1ab205a1c581c06c6021e002545788ebeb89facd7b8aa","4556326","1510735663","11/15/2017 8:47:43 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xaaf3ff0e915523c921eddfe72d8e64603ba8858fcb9ec7667df9d1ad1c223aa4","4556587","1510739652","11/15/2017 9:54:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","3000" +"0x2a7854763558948259de8cefd3763846f4dd3ab399fdabdf365de00401cf90d3","4556711","1510741274","11/15/2017 10:21:14 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x4fe6b4a43d57e1686a73bd404ca7c882afdc81d2","100" +"0x97f2e660c03c1e9235bae51302cfafc4707e9cdd9aedb55d1faba79731817803","4560316","1510791404","11/16/2017 12:16:44 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","20033.403" +"0xc2ab279532e1fb95807ab4980b7af3b9c661e74ec183f82731cbf710bd8fef39","4560431","1510793037","11/16/2017 12:43:57 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","20.499" +"0x0c0a5d5f086c4eadfbbc7b0bee15107b59b4ba2b8b8c7b559780455baea99b82","4560594","1510795373","11/16/2017 1:22:53 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x419582d20b3e90749f86b1abc3dbe52656797121","3698.897" +"0xb4b7cd092e33d9e9e58b14401559fdf366822bfc6736f8b2a8be4adf2364b0e7","4562228","1510818884","11/16/2017 7:54:44 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","3698.897" +"0xd1c93fed38691ac0c62da7a5eca0868343e05839a6fdb4ecc82515468c1ef3aa","4564188","1510845863","11/16/2017 3:24:23 PM","0x4fe6b4a43d57e1686a73bd404ca7c882afdc81d2","0x4fe6b4a43d57e1686a73bd404ca7c882afdc81d2","1E-06" +"0x73ce85e2717d5025170fbc43c25d10a88ced899274ec7d9bda0626a8996bd823","4564505","1510850160","11/16/2017 4:36:00 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xaa0e98ebe03ca9fcfa8f0674fb0aa6e2e05518ec","100" +"0x02ad8fddeff5de3de173dca2cd1f4b90360f097a40da3d2a69a896dff7528d31","4564765","1510853696","11/16/2017 5:34:56 PM","0xaa0e98ebe03ca9fcfa8f0674fb0aa6e2e05518ec","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xbe6de66feaeec5cf9ee574ea7563e5bf3b14c38e1bb356a85dc4a21eb75cceda","4565147","1510859426","11/16/2017 7:10:26 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xaa0e98ebe03ca9fcfa8f0674fb0aa6e2e05518ec","2000" +"0xb6efca87fd6e736d6a8b3c697efccd5bd83beeac547e30d689e389ac39a962d6","4565416","1510863296","11/16/2017 8:14:56 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","5000" +"0xa976337f2b05f63d291035203901f664b667c2edd3a2f6aed699f5ab22f11396","4565723","1510867425","11/16/2017 9:23:45 PM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2000" +"0x0ed970ad62da7c35b690cf88e77abfb074d3dd8b27b37a3ab07923b36ca6a9e0","4565766","1510868068","11/16/2017 9:34:28 PM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xbf29685856fae1e228878dfb35b280c0adcc3b05","500" +"0x5160fe4d88f3257691250d50173a52e0a69e5667c3a22c7742e898cfc8051d7c","4565808","1510868851","11/16/2017 9:47:31 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x568e5f1fdc329e72098dff922acd21f2a110df2a","0.001" +"0xb620d2965596dd01947de47ed2651ecfd3d5b03ee444bc464c0e5302d46d8ee0","4565824","1510869078","11/16/2017 9:51:18 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x1a8cc57f1155d7df4626978401e203e00da097f7","0.001" +"0x79b68ed8bfa0929f29bbf3d135d58e56c266d00143da623d45e33ad410a895a8","4565834","1510869187","11/16/2017 9:53:07 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x40c26de1dc7089546dbf1f036ce7f399b7b96198","0.001" +"0xdc6d57a3a7b4b940df4666ffd790b81d109aec8f0ce01900cffdfbcfc17afd38","4565871","1510869693","11/16/2017 10:01:33 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x423475e0a0a90dde8bd813ebdcc21162cd5ed63f","1" +"0xaca195ac68b270a876682fb45c4136d0c22db0fa5b219c09c83f669c4e79f1bc","4565995","1510871490","11/16/2017 10:31:30 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","100" +"0x244f8a5c74f726a267b93480ab115a84af92e69526dc61912a488a236afbe381","4566357","1510876425","11/16/2017 11:53:45 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xdf7cd47c011f6212bf2871934f2a035f31e31abb","200" +"0xd6cb7231ad6b9c43124571e5fde73d480965c61f9abc7817262113f0c01edc30","4566422","1510877188","11/17/2017 12:06:28 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x419582d20b3e90749f86b1abc3dbe52656797121","4724.876655366" +"0x99ac935326ad534a031157ed24f92b22c5053220aa5cd03710aa9663d584468b","4566431","1510877285","11/17/2017 12:08:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdf7cd47c011f6212bf2871934f2a035f31e31abb","2100" +"0xb4b6ef780c0af91e72e30c6e4c87a216d813f4b4be3ffe8799cddbf2c55b840e","4566448","1510877557","11/17/2017 12:12:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdf7cd47c011f6212bf2871934f2a035f31e31abb","3300" +"0x452ab471ca49501608ff0cbe6cbdea686a9c746107db1f34b0062e833b72e8c1","4566461","1510877703","11/17/2017 12:15:03 AM","0x419582d20b3e90749f86b1abc3dbe52656797121","0xbf29685856fae1e228878dfb35b280c0adcc3b05","4724.876655366" +"0x68346812237659e3715bf0609af95da1db6bbdde02ef31a43fafac51df929eb3","4566507","1510878476","11/17/2017 12:27:56 AM","0x70eb10dca81ec3c8b927e744785d270023297a20","0xbf29685856fae1e228878dfb35b280c0adcc3b05","37" +"0x55c63c566bf053723d4a4a34b8c481fa459fa4e347a3785b7c3f24a64431a6bc","4567117","1510886577","11/17/2017 2:42:57 AM","0x20a28dfaad58601ef902893bf3edbf6862985621","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0xff79e7935367f181dd2868e0d825278e82801cbe67d8227921618173996c4459","4568538","1510906396","11/17/2017 8:13:16 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x6093cee439353c1455f737729ad175f7f0469b4d70f00c9f85cc26cdda1b403c","4568732","1510909032","11/17/2017 8:57:12 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xbf29685856fae1e228878dfb35b280c0adcc3b05","999.999704778" +"0x0b81549c0ee2235c9620141aac460e758a667f4417e8cdc602dcef459f997927","4569450","1510918979","11/17/2017 11:42:59 AM","0xf02913aba543137a8826fd457a8f8d97a2e5782b","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","798.71662225" +"0xd2798c7010e0cbaf676b93220ee053d747bf8a18cf3fbf78636df8d8420e99fa","4569836","1510924556","11/17/2017 1:15:56 PM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2500" +"0xc71ccca0caa0ea8ee8533a01dd61ef547ed3273cb540f24a59b579552db8cb59","4569854","1510924729","11/17/2017 1:18:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2ce7a6af4e043636758468af558959fc8d6be124","200" +"0x8fd7ead5b7d62c5b2e983d976fbed3552b5be16c255d76aa90fa923c82cd08ed","4572100","1510955608","11/17/2017 9:53:28 PM","0x034767f3c519f361c5ecf46ebfc08981c629d381","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0.245447073" +"0x001f5aec345f20d714f4d79af7d08c195ebb1f327848c7a73ba96f1bca188be8","4572612","1510963099","11/17/2017 11:58:19 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","754.098" +"0x2f2e0dede7a0ca508d2ccd5d18f8fa72c4e8a8288d7111c087398c212aa97849","4572749","1510964798","11/18/2017 12:26:38 AM","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","0x1b0ac294776646ff5a7ffbefd9fd83674e457fc4","50" +"0x44550174381373dde62a24c0967b0a48b8392c40e6c557d4c77253056f91b631","4572787","1510965389","11/18/2017 12:36:29 AM","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500" +"0xbbdc0b28f270daf8283ee8eba59164aa0271aee5facfdf44a53c6e498472638e","4572840","1510966104","11/18/2017 12:48:24 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","400" +"0xe505d9df28d3055522b6a734a08a71ef3d963be8c1e7bcf055094c8fdc3762d4","4574597","1510991198","11/18/2017 7:46:38 AM","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x736080ccf5e9292a8f7b87fc5156e3d3568559ba7d786485dd577a9436b6a348","4574628","1510991734","11/18/2017 7:55:34 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x24e4a7ddcb98d8b71b260061a18af0cf69c62abc","1000" +"0xc00131a24ec1a5dc4dbeffea396c7dab68e7be180137d7a616699a1035961580","4575551","1511004175","11/18/2017 11:22:55 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e7601f7daad7a0993474106d6fe1e1761326e25","1200" +"0xa78a39ece381be9b45c164b7bb86705869b5b2a40c7bc33a9e8f77a6766644cf","4576311","1511014669","11/18/2017 2:17:49 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xd8fb5f569d4e60a1844bc320e78bbf52947629f3","0.01" +"0x1d8e1441f2b08dd4b79f46147c6795a05ade9ee39a14347b5aa11135594af443","4578589","1511046101","11/18/2017 11:01:41 PM","0xf791134fd5df3672bf42712de661aef43ead19bd","0xe102395a2329d170656d3fab19d8dcb395a4a518","6187.299" +"0x37cfbb35849628538ed4d84bda5fdabd20232c1fb36d662770e68a8737c90cf1","4578850","1511049823","11/19/2017 12:03:43 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1597b1aefb47997d7ec9b6d87bbfd1ddb35a53b1","8975.888888887" +"0xd6bbaf6ca7a159520d6ba3338f7120c1d21bbbd90525f087c6347c9542f9f580","4579887","1511064477","11/19/2017 4:07:57 AM","0x1597b1aefb47997d7ec9b6d87bbfd1ddb35a53b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1" +"0x57ec4f5cc50536d27229c4ed050035c49d699701309791b64159b1b880467aad","4579894","1511064573","11/19/2017 4:09:33 AM","0x1597b1aefb47997d7ec9b6d87bbfd1ddb35a53b1","0xbf29685856fae1e228878dfb35b280c0adcc3b05","10" +"0x9a182e51f5552141b6510a9d50fd807adf6fd5033313753057177dc664dd76ac","4579911","1511064884","11/19/2017 4:14:44 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x1597b1aefb47997d7ec9b6d87bbfd1ddb35a53b1","11" +"0x43b1bfebef5c81734f242eda94b8960a1434475a98578543b59bc1800c934b2d","4582340","1511098066","11/19/2017 1:27:46 PM","0x96d810e43bbbc71d0af99e349483405dd3c709e0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","5" +"0x20fc103a9421ef27df9f57e552241bb86f455f2cbe5a0924870006965527d909","4582370","1511098598","11/19/2017 1:36:38 PM","0x96d810e43bbbc71d0af99e349483405dd3c709e0","0xbf29685856fae1e228878dfb35b280c0adcc3b05","1.1" +"0x2f40fa0871ad7c5eca22429084d64b02e6925400aeeec0d0dd8db60b3c2751ae","4582417","1511099130","11/19/2017 1:45:30 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x96d810e43bbbc71d0af99e349483405dd3c709e0","4.9967" +"0x3d4e6207dca855692c1c49d649fd502ca741b1fe74780ae4432520523f89769f","4585434","1511140568","11/20/2017 1:16:08 AM","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0xd5b241a4fab5390d9a34d407594e055ad1f7d1c1","50" +"0xea2c1b3ac371ada7ecd989dbda15b7ee4f108b2bed5367efa621e9c474fb8c24","4585700","1511144197","11/20/2017 2:16:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1700ee184823584631bb00ada7b7afb3802fd081","2849.688" +"0xfa46b1176a7124fd28a086ac91bcadafd10c6ac417f34abd66c56bb0b6ebbcf5","4586304","1511152565","11/20/2017 4:36:05 AM","0xcb0b4563122be1d2730e07c638e1203d71b6fa58","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1294.484923891" +"0x24f0c8cef68b25fee9364112224563f7ea1702f0cd4fe33cbb7b24df7570898b","4588216","1511178591","11/20/2017 11:49:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xee80ebb22e6399a582918969f92e94508e43cdcf","1294.485" +"0x0b974a7eff4a2f57aa5937a58e070c8fdc31ef77b940a83e030f9af3a843ff9b","4590142","1511205482","11/20/2017 7:18:02 PM","0x6c0b9a99c1ed76948fea1038be2c56ebb8855763","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1990.000465057" +"0x17d24f1b1b3765131f3f151787ee28cb61f3fb5a3c34b23bba65c0772bccfdd2","4591113","1511219986","11/20/2017 11:19:46 PM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x034767f3c519f361c5ecf46ebfc08981c629d381","0.245447073" +"0xf0718b66263befe58886fc58810a1137bbfa6751fe26add0f6a168bbf7664a86","4595731","1511284721","11/21/2017 5:18:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5963e5984884e6b0f3db93ef3c144318287c4624","1000" +"0x730d59b28d1b0d37521a58cac64ca7f92ad53c98a66c403a2995eb527174d5f6","4597426","1511308381","11/21/2017 11:53:01 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1700" +"0x905e0f5394fdcf1ca773c952ba9601c33eece6d591cafff1dd405d1cf3b119f4","4597464","1511308972","11/22/2017 12:02:52 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","9990.487720204" +"0xa57789d6395e45bf248961931c27c4c2e0c5be6c1493c73d0ead353dab2b14da","4598252","1511320097","11/22/2017 3:08:17 AM","0xd5b241a4fab5390d9a34d407594e055ad1f7d1c1","0x8e7601f7daad7a0993474106d6fe1e1761326e25","50" +"0x13af7f7765eeefa55f3d7e9d669bf09009dc518682d57d37d4776b016e7265c2","4602089","1511373315","11/22/2017 5:55:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5963e5984884e6b0f3db93ef3c144318287c4624","3345" +"0xf204396160463a2a0f629deb2029293fb61b4486741d5ecfc9c271e20295df11","4604014","1511399876","11/23/2017 1:17:56 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","100" +"0xcd67df2a1f6a7d7b4cbae2d59197e3495ef1e37a9263cb98a743f84fa3b1b1f3","4604345","1511404345","11/23/2017 2:32:25 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","112.5" +"0xbd274b6a8e899e842dbf8363b5b6477cce7ba0b6fbc12bfbd74c94e474d0b5d0","4604379","1511404832","11/23/2017 2:40:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","498.595691105" +"0x0444365ecfaed3ba34243e42aa0a891ced283db1b03291ddab37a0f63b1b1c0a","4612598","1511519396","11/24/2017 10:29:56 AM","0x7c5ffe298a227bf168a75ba181d6da7b85e1050d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","160" +"0xec1a6aeb77cdea79349a24400e7f6d950898cd5cb2824e2d3d076d69f5ee256e","4615610","1511561246","11/24/2017 10:07:26 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0004" +"0x2f93ec6a02f8b207f2bbf2584ec3ab706a84e9463a944573a5607ac17d8298df","4616229","1511569705","11/25/2017 12:28:25 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e0c3c13fc0d0b6dba8c1853de2bd53c67bcfb2c","100" +"0x6627f406c83debf8cb1cb4d7d1d4ba68acddb8abc36fd62c1893fee9602e30d5","4620697","1511631985","11/25/2017 5:46:25 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc2b9dc350ee4f21f105e4feb894b12ce093f1dc1","12000" +"0x676c64e62827cad063e13817f0de5990963e07668a9c5890928e29b29b3fd3b5","4620793","1511633418","11/25/2017 6:10:18 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x7a9959dce2c182e9849c19b6d3b115bf93e9ad28","24.444444444" +"0xfe4b9e4c8b30db1df4a50c8fb87e718defc0e86a5f6e96015debd86b3c3bccd9","4620823","1511633904","11/25/2017 6:18:24 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x7a9959dce2c182e9849c19b6d3b115bf93e9ad28","188.888888888" +"0x93c97b81b75e18ac28bbe02d190723d666550fc1382ea0c7b43c56ff80e2088c","4620907","1511635079","11/25/2017 6:37:59 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x7a9959dce2c182e9849c19b6d3b115bf93e9ad28","955.555555555" +"0x9fae9f001579d1408781e679a75aab185892a6c157ac34e1704960c518978e07","4625521","1511699256","11/26/2017 12:27:36 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x115387d11ab2c4a7938a02d0121a9f2ab9be334f","2124" +"0x5c55e4042ac711275a1a9f247beec3be3e3bea373530dfc369fae5fd11a2ae4d","4625712","1511701827","11/26/2017 1:10:27 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x115387d11ab2c4a7938a02d0121a9f2ab9be334f","1208.99977366" +"0xace4b3be92595cd497f8be051d8768d34a501d27da619443d7073de1d6b2f038","4626391","1511710970","11/26/2017 3:42:50 PM","0xe819e7cc4928234227d8a67b8f4276a3a117219d","0xdbdd3de05cc4177f4f05e859202d771ceab5404a","5478.797114708" +"0x3da3527e5af4a9ff1188cb66a42a9c60dba72b140735c966ec1c4ea5ea26c84e","4627796","1511731262","11/26/2017 9:21:02 PM","0x4ffa795dfa25cba3ce04e70aff9edc77ff8d861f","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2333.333" +"0x7e4b9ead5da9f824ee20eba99076b3c9d6bb76e646414847210e1fa03fbc0203","4629467","1511754411","11/27/2017 3:46:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x389b675cdd46602197f71d0ac0b422e850f9cecd","20" +"0x42eabbb3669848d55373027d389a6c19cc41cf9352172557b2f2f3ce369e104f","4629571","1511755904","11/27/2017 4:11:44 AM","0x389b675cdd46602197f71d0ac0b422e850f9cecd","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20" +"0xc2e4a3c1d2eafe0fbb9a17602d436de4a91de07d3b008b61174283169efeb686","4631319","1511780572","11/27/2017 11:02:52 AM","0x1700ee184823584631bb00ada7b7afb3802fd081","0x13448582ab91a4a0ff9e6c77a7744054ceab7071","25000" +"0x38ad5d5c2618a4695dcdda3da1245c4be17dd06975012c221e41dbaa8148114b","4633475","1511811699","11/27/2017 7:41:39 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","100" +"0xdc4191273784d6b05b5949db78b0adfbaef9e402db92eed8ce3ba89803dde748","4633843","1511817184","11/27/2017 9:13:04 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7002ce0364a3a941419e67ba820760c843250a41","500" +"0xb802f480dc02542b7e2d883511bb6893e38b49ea4142e1cc5735c88830bd7e61","4633859","1511817392","11/27/2017 9:16:32 PM","0x7002ce0364a3a941419e67ba820760c843250a41","0xc274362c1e85834eb8387c18168c01aaee2b00d7","500" +"0x52188f2b63c0fdd01762b07deb96fab8cd800a6ff0532ebd53edfcae67a8a518","4633915","1511818136","11/27/2017 9:28:56 PM","0x2ce7a6af4e043636758468af558959fc8d6be124","0x9a15267299610f7f1fa226132ba1796196603120","200" +"0xdcfc17d45077ca42974163576de55ae259d2413211f125cfed776b71c0241476","4634940","1511832911","11/28/2017 1:35:11 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xd622f148e365d0c98d0baa3200f14f67dd50d373","2299.844" +"0x297772b0fa0f0c54ed5424a65a36d47034cd30c5ee8547c33dd8a367d6979968","4639365","1511895349","11/28/2017 6:55:49 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1315.000000001" +"0x5803a685bed7f6f86078f677aaa8379264cbbfa33750a7170b7491fd4c069153","4641470","1511925042","11/29/2017 3:10:42 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","112.499999999" +"0x3bf635b88bcf8654354834362a5040d5c0a6a8ad37c36539928ca3664eacd0ef","4642449","1511939069","11/29/2017 7:04:29 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xcb6cac3876c4c5b52e37feb602810fb492aab3ce","0.001" +"0xa9e92bc62b3180ea709b0de64dd336d425f51a797aaaebd1f4c484da35beaa98","4642650","1511942050","11/29/2017 7:54:10 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xcb6cac3876c4c5b52e37feb602810fb492aab3ce","70000" +"0x22b796b810cbab77a48266bca3d9858fdd099712515941c4da21bc2531a72a63","4643831","1511957904","11/29/2017 12:18:24 PM","0xd622f148e365d0c98d0baa3200f14f67dd50d373","0x9ef89d10d8c77755bfe263903966eebb73f721e8","2299.844" +"0x234563f5109f72bb6ee80283f8c3951c3d8a23e5d5bdc08629dffd85782f745d","4648949","1512030312","11/30/2017 8:25:12 AM","0x5963e5984884e6b0f3db93ef3c144318287c4624","0x56a7f561af9a37aeb96f1d3f06db14a0dca39cbc","100" +"0x608fc564badf18cc3997cc693b1ca0ba9740140886458798c746a335853ff6a4","4649076","1512032129","11/30/2017 8:55:29 AM","0x5963e5984884e6b0f3db93ef3c144318287c4624","0x9d98274017dc7a260442f327493e9b69ff98413b","200" +"0x62c32aa6dfc9c401c8ba875b1c5d72a2d08703f52436d912e0bc8674430cab75","4649187","1512033783","11/30/2017 9:23:03 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","13.769" +"0x9320b995a5de3070eef1b23704a927d87f941edccca9e443390dd6c59667de4c","4649323","1512035676","11/30/2017 9:54:36 AM","0x5963e5984884e6b0f3db93ef3c144318287c4624","0x52010dc60f6b8d30316f2d09f534025e4e243606","100" +"0x3d7a08496b7b76c9a4994fd4beb747550018386b55dfcadd9181c3c6d8628b40","4650419","1512051065","11/30/2017 2:11:05 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x4e9096894932ab0ca1f943728313d5b47ba01279","0.9" +"0xe09cb208ffccb95cf3552fa1b98bb98698ba73ddfed7c925766fe71473326402","4651675","1512069290","11/30/2017 7:14:50 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xb626a5facc4de1c813f5293ec3be31979f1d1c78","0.01" +"0x7ddabf3c00c69ab83f4bd42e6273072bfbaeb65237e3fdabac4c8b95d57684cd","4651974","1512072922","11/30/2017 8:15:22 PM","0x8e0c3c13fc0d0b6dba8c1853de2bd53c67bcfb2c","0xbf29685856fae1e228878dfb35b280c0adcc3b05","100" +"0xf70786d75783c61a062aa72e83e7d4adac4fb09faa77f3a4ab1aaa6361e098fb","4652695","1512082980","11/30/2017 11:03:00 PM","0x5963e5984884e6b0f3db93ef3c144318287c4624","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","945" +"0xb80da87b276f1ae8a8a84a30472ec7207660f42a107e101fab7a5b9ac31e10ad","4652837","1512085170","11/30/2017 11:39:30 PM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0xa9a01c8344df324a9413346b957c7e925c5380ec","100" +"0xa1d0c3331fd4f6035c0093e5e87065a26cf0e20df5d1b59fbb60bd4ee2ec89dc","4653168","1512089802","12/1/2017 12:56:42 AM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0x7995363d6012a23c9e6b35e4d156103d72dfe800","200" +"0xd6e5998d0533a8847d2be42e97df78ea3f3cbace72188ee5d1ab6c6b39239a23","4653263","1512091009","12/1/2017 1:16:49 AM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0x5950b89c8d2735e7a10688ec334f264124045671","400" +"0x448cf1cc87c9494520768f30320c2ff4f901f0635a0d69f714effbd595599076","4657485","1512150781","12/1/2017 5:53:01 PM","0xaa0e98ebe03ca9fcfa8f0674fb0aa6e2e05518ec","0xbf29685856fae1e228878dfb35b280c0adcc3b05","2000" +"0xcd967541fe01ae31c77a954d5ce7a5ead5901a3cd3611863d362ca35da13ff9d","4660186","1512188681","12/2/2017 4:24:41 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0x3d477fa664b1bd3ebd70ef9d07652b97678b6f62","1100" +"0xe123981438d7a0373195668b612875662354ac27a83fc15ac72476bfe77bb057","4660336","1512191170","12/2/2017 5:06:10 AM","0x7cb57b5a97eabe94205c07890be4c1ad31e486a8","0xd8b74c74192d556d3a069f430738d1c2046db763","1" +"0x7471e39d8a1104cdc7a6cb7c85f69bc31d61787d59eb404c005716cf72551958","4660973","1512200031","12/2/2017 7:33:51 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1237.5" +"0xe3bd5d1d026a2d8c7e77ebaf21cb6714abeca7c29f91cfab4d2f5b7bd6fe26e6","4661637","1512209272","12/2/2017 10:07:52 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x8d7b6a4db924e21fc0ee9f841a25c5aa6131f66f146000afb3c8f5de7de57f59","4661873","1512212603","12/2/2017 11:03:23 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","1010" +"0xead011c9228a625a0c8760b6dd08630dd629a6c38e890cd7d7d59075379db859","4664971","1512257316","12/2/2017 11:28:36 PM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0xd3c57d6e5b42389cc88844abff2dc95b61da8b97","100" +"0xf03cff70da56517a691b72530135b469d575320de6f39a4b1f1c69071ff4a77a","4665133","1512259697","12/3/2017 12:08:17 AM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0x7ee6f0f4f138c292fad4f74fbbc2dd7dc0b42613","100" +"0xf6e6fa85ea270e5762fcb6bd0c4c5b9bbbc01d81b6f19d0c3ef8fbf72c878da5","4665777","1512268768","12/3/2017 2:39:28 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbde173bb88045f4810f31c5e89a100e11b756a8c","55.556" +"0x9bb361edffd4efc6afa70d95763ea82941998ee991d0cc03a1ac119078cb8a21","4667369","1512291730","12/3/2017 9:02:10 AM","0x7995363d6012a23c9e6b35e4d156103d72dfe800","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","200" +"0x49e60c1adeb61e0b1a865a163611fca047197374c0161a0e0fc363a83ed9e3b8","4667482","1512293308","12/3/2017 9:28:28 AM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0x7aa58ab06ed996a43abae004a6cfc4184fe53baf","100" +"0x1305115bc9741bed899dbccba6200ef1dee0baa4f630bd641ad090098a1566ac","4667484","1512293316","12/3/2017 9:28:36 AM","0xc0a33bedf5d0df5394d43c1bbb0e11b864bb8e48","0x7aa58ab06ed996a43abae004a6cfc4184fe53baf","99" +"0x90d611786fef0d85603e67dd2e7f0728438daa738b692047e1317d0d775eb3ca","4668064","1512301638","12/3/2017 11:47:18 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2ceea4079a67c905650cd6095bf429db654ce6db","5" +"0xf5800017b665965fe38ec0b13bb2a56e16d39fa38cca27b61966e3d3d04ed8f1","4668099","1512302205","12/3/2017 11:56:45 AM","0x2ceea4079a67c905650cd6095bf429db654ce6db","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","10" +"0x7fb59f1eda97e4ce320f2dae133def5692f8fa31fa0edae26991da4c2e62dac4","4672197","1512360888","12/4/2017 4:14:48 AM","0xee80ebb22e6399a582918969f92e94508e43cdcf","0x9eddbc86ada0e370fe4f5a5e1ed068c92490929f","29566.602507698" +"0xebfea317175f73692dd553e911b8dacf297d53eb53edbf98a15406bb67777595","4687644","1512601358","12/6/2017 11:02:38 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","3.769" +"0xe61b8a7c01de08808b44940472ca48a4d63750128c7e6531b11f00bad3aece85","4691255","1512655807","12/7/2017 2:10:07 PM","0x7ee6f0f4f138c292fad4f74fbbc2dd7dc0b42613","0x88b8601e1679abde44332f0e3eff32396fcdaa2d","100" +"0x33f65d0c3b9c6e8ac2ccf353b40705e6624925217ca6b1e90c7206b13126f1db","4691268","1512655954","12/7/2017 2:12:34 PM","0xd3c57d6e5b42389cc88844abff2dc95b61da8b97","0x88b8601e1679abde44332f0e3eff32396fcdaa2d","100" +"0x90a471a6ecfe50b8e862537c16f813118d22e5b7b244509c8b8122c3cb5298e4","4716886","1513037861","12/12/2017 12:17:41 AM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xd033d9fa0164cad2ffc66678587abcb20e72f369","1000" +"0xd6ad11045e2c16fd74bc73ea0e08d0d93191fda759ea32a5f160cc8d1e70cfba","4716905","1513038169","12/12/2017 12:22:49 AM","0xd033d9fa0164cad2ffc66678587abcb20e72f369","0xa560ad358f533b7cfc96bd4e1cb3c2848637d000","1000" +"0x27a762a8cf47e30f852e93b99e2516ff0581b65e046d5318d03af9aa58c59427","4720600","1513093674","12/12/2017 3:47:54 PM","0x1db2d944a9185a49bb4070087f669117acb86fd3","0x59bfef4ab30ee3ce62df562791f1c828f7308447","700" +"0x52d7404acb850f58b308561fc5a2a99ca1409d47be45880bad64f2d86c0284e8","4722005","1513115317","12/12/2017 9:48:37 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf918611db915c56170e657a537558f08e4b0c8e7","50" +"0x8f6e5cc4a8a4ade45e3a568c2c7c9fa11f3a95560ba9c84fc3b28871e2c1a464","4722343","1513120495","12/12/2017 11:14:55 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1125" +"0xd1fd8b502c7f1300c668b708d5d8cd591d02c139b96a2d4d4e981032d26131b2","4729719","1513233201","12/14/2017 6:33:21 AM","0x1597b1aefb47997d7ec9b6d87bbfd1ddb35a53b1","0x35c8cb17e742e28d0f4d95ba3693a11ef6c59ce4","8975" +"0x21b1a96bd7942e6c3d51479b854b7e4d086528596e285373ca647683c5492fbe","4733625","1513292031","12/14/2017 10:53:51 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0xe94b04a0fed112f3664e45adb2b8915693dd5ff3","1" +"0x3994ba55bc1ffd9f2be0fadd29b374dd992b7d28aa968ed4ec4e633e27cc2e29","4733887","1513296156","12/15/2017 12:02:36 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x06012c8cf97bead5deae237070f9587f8e7a266d","1" +"0xc80af23dff8e7eb0a13a420a39ea66d70ff9d025fde1fa749c6b5133885f0ee4","4737295","1513346727","12/15/2017 2:05:27 PM","0x9d98274017dc7a260442f327493e9b69ff98413b","0x73053207681d01c2d4de4a8590a8e1fda64b3c83","200" +"0x2de36d52f47b758dc09fa9a5311a7355f17da5613167f5b086e8a01fa92738f5","4737773","1513353955","12/15/2017 4:05:55 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x00131f8ca3fdadf4cd909ed72a1fb9ae85a46414","100.008883963" +"0xa078a863ae548d0124b1d5d64b72681f1f4dd5cae699a3fe82bb6075c740dfca","4739041","1513372735","12/15/2017 9:18:55 PM","0x6af0474ae538ceea2b8da5cd368e111b89784a35","0xd3b2f5d61226152410d6219d23544651b85d3f46","40000" +"0x194944a197c59e1ff6b35cfb909df9ba53d403902b2d2c60c9ba786e99162d65","4739060","1513372964","12/15/2017 9:22:44 PM","0x6af0474ae538ceea2b8da5cd368e111b89784a35","0xd3b2f5d61226152410d6219d23544651b85d3f46","278" +"0x66e214e973c205845a07cad3ccfa94b1950b64e30841f0c27c9cf8de3779b845","4742001","1513417866","12/16/2017 9:51:06 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xbde173bb88045f4810f31c5e89a100e11b756a8c","400" +"0x72299172796b83d660d370443bf29904849d5ed162a791b9cc8be1031e10ab6d","4746313","1513481172","12/17/2017 3:26:12 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","10" +"0xa15a6ba15e039a6d71f8048e9eab2d5314f3afd50b310a354324e5e9992d09ec","4746704","1513487253","12/17/2017 5:07:33 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","9.974228668" +"0x5cae5265d89555af0eed9da02e17464479a42916dea7fa16d46d4f6b1d0fc04a","4747447","1513498214","12/17/2017 8:10:14 AM","0xa9a01c8344df324a9413346b957c7e925c5380ec","0x0e0cf64d0d6f321b7c47fc84aca23a7f7a9a2762","100" +"0xcb86e33f7fb2336fe4a64116bd39d826692d64bd27a701d6b2370564fb969df9","4750250","1513540838","12/17/2017 8:00:38 PM","0xa10cefa3d041e48d2889f34c0341560929b43e39","0x06f12ff387c6226f4fccea918721cb677c06c57d","939.977" +"0x82ce8ffd0a60dd6b57b376cf3b9529338a51266bd90a4a1df51e836b7b8aeb08","4750900","1513550593","12/17/2017 10:43:13 PM","0xd562f90fb7bcd0cfc18411eefc125c70447f6210","0xa1916387e54d0bb96463f40453c537725ca59ead","65" +"0x3668532c92e0bb38c570b83a7d6fb4b3f859158f9b3dbc5d398ea84604a5f46b","4761747","1513714470","12/19/2017 8:14:30 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","1000" +"0xf84784a2ee93ac59e5f451d42fcb5481df4006362e9da73fb946ab49a655d7ba","4769791","1513838899","12/21/2017 6:48:19 AM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","1125" +"0xb16699a4d3f4023f9448848f176c2cb479c1b998e2d3173e06bf9d7dbeab735c","4783043","1514039595","12/23/2017 2:33:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x389b675cdd46602197f71d0ac0b422e850f9cecd","20" +"0xf90aa5dccc7f114c197c5f97a6518f243244c699f3e2bb2788a4625f1d421c2c","4783057","1514039785","12/23/2017 2:36:25 PM","0x389b675cdd46602197f71d0ac0b422e850f9cecd","0x65ba874a4f5515b7871af3bc3b40986e03459eab","1" +"0xd79557a69466db192f2040616a13387e1fc150277efb447b1746ad94f7ef6ca4","4783352","1514044349","12/23/2017 3:52:29 PM","0x389b675cdd46602197f71d0ac0b422e850f9cecd","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","19" +"0x23a8719888c1149c78737b09e99808d28c31a1607b6e34d07895d8b159c3730c","4787814","1514109711","12/24/2017 10:01:51 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x0b405fa2e4b86db3b3ef0cc355809140a64a1d23","99.69095803" +"0x5e0c243690b3262a2a5012df145de5113aa853d065cceb852b9762215fe7ca57","4787831","1514109943","12/24/2017 10:05:43 AM","0x0b405fa2e4b86db3b3ef0cc355809140a64a1d23","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","99.69095803" +"0x7e81a141aa0d5ca2e59771ef77f02da75e9d40cbf5a5dbf7740cf703451a274e","4792951","1514183145","12/25/2017 6:25:45 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","9536.185" +"0x32300177187a9d32cd13597d22fbc7b00ccae5c59a1e4099f6f79dfd03898e06","4792962","1514183366","12/25/2017 6:29:26 AM","0x8844bc6b1ee887913ca6385246a9b393ccb13d39","0x3b30129158fee103c179661694d47940d58d8185","9556" +"0x28ced846f178a640b197f400f174c5a38e84e610dde804cb8e87d16c3e861936","4792968","1514183432","12/25/2017 6:30:32 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xb834d80c10d0c813217cfd5208e06019b31b2f00","31997.588" +"0x1342392b6aaba1831d91b8cd64db995b70dc8ea8ef05ba7704c3da2d1eef3bb1","4793088","1514185098","12/25/2017 6:58:18 AM","0xb834d80c10d0c813217cfd5208e06019b31b2f00","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","31997.588" +"0x555994a0fd1e27408af5c462dc0d7484310d5819284884683af2eb2ab1caf44a","4793117","1514185410","12/25/2017 7:03:30 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e147df7bacd9bf078b85db1a9b52a2c75c17e35","60386.888" +"0xa0276f15cdc05da078077743efce8e7e31479ac0be59415cba254b016dc257bd","4793175","1514186212","12/25/2017 7:16:52 AM","0x8e147df7bacd9bf078b85db1a9b52a2c75c17e35","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","60386" +"0xa03a597fd8aed025ff5bd6d970fbc1171b0653c09fde3a7ed849130eb54f0abd","4796072","1514227779","12/25/2017 6:49:39 PM","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","0x703d27efc4b678e213ffb4f7f6ee214f273e59ef","50" +"0x4017d3c6a53383e8fa388accdb3076433f63cbad8c01be2d621df47576dc2db8","4796913","1514239901","12/25/2017 10:11:41 PM","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","0x703d27efc4b678e213ffb4f7f6ee214f273e59ef","100" +"0x5edeb4acb89ac4d336d77872b73657ce481116a300ee92f878ae3ac749ba36d7","4806132","1514372975","12/27/2017 11:09:35 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0x6f0cba6f4da46f7cd2f6fc69da9d4d75f6560b2f","3000" +"0x0ad1b8ffc1389f842504acecbbcb002ca2c21d095506343bad2af98516f7bc1c","4806148","1514373138","12/27/2017 11:12:18 AM","0x6f0cba6f4da46f7cd2f6fc69da9d4d75f6560b2f","0xcf5efef39500d308783212929e143c6b021d3d74","2970" +"0xb0560f9b679c2ea9e534d8c24067f07ef3c9ed3c2c45d002340e636c56feee5c","4816305","1514521651","12/29/2017 4:27:31 AM","0xdfa6a127977f0d78667c5240b8072d88fb7b9902","0xb5e0c6a03d5017383206505978953dff31bfa1b6","77.777" +"0xf118bd910046438df34b4968f7374600936302f75b3c5aa8dbc6a5ee795b3bb7","4817206","1514535282","12/29/2017 8:14:42 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x689c1b52c7baf0d68a74b062b12019f45bbbcc14","1.616" +"0x94263da04613d1389419a10c7cfcad6640daa93187f072b93135fecd1942b0b5","4820802","1514589278","12/29/2017 11:14:38 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x49e5624fd79374073fc483d165ef00cce702b2c6","14690.51172" +"0x4f0e7bc498c824500be7abd9d1bb0625ff49a7177e45e600e449e88a75f5ba56","4821502","1514599884","12/30/2017 2:11:24 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x5cb9c6a832282df6f9772de0f29a5233e0a651f0","9.997" +"0x445bf9844e5389ca88edcdfecb4aff94af704ff48329af66b00b8436cb77c816","4829131","1514711976","12/31/2017 9:19:36 AM","0xd600d591216daf658f43bda5a93e58b37008baef","0xe628a2bb96bbbdfad29a3a964cc3febf9c53b8f5","13137.856999854" +"0xb1ef418aba62ff2e12d573e7a5f722a7c9b6b4384d4d5f519bb3c2892c9db374","4844684","1514942280","1/3/2018 1:18:00 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","6387.167" +"0xea1105ee6b806b1363922d99b0b3e5f3c9e45d40ce77ba8cc45d5f5a889fed59","4857669","1515147883","1/5/2018 10:24:43 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x1a87c6d67e57307fe1b1f36dfeb6619c1809be76","2" +"0x888520bf5a71a6b8e1dbc1678bca3f43e61cf77e4ca5de174fd568a4450b62ca","4857693","1515148250","1/5/2018 10:30:50 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0x1a87c6d67e57307fe1b1f36dfeb6619c1809be76","2" +"0xfc4a44a4ec288b1de12e55e22331dea97d1ffe4e2d57a639c45c712392753d5b","4857966","1515152593","1/5/2018 11:43:13 AM","0xa23ca275a19caf9a753ce020a75c264e0b0d1674","0xbbb10fd12b521f5713fdf7268d4b261f055ff3e7","7.877" +"0xe900cb3bee3974fd075ab585913f64bfb26d4e527ab13ca681a9d0273b0398c3","4862328","1515223426","1/6/2018 7:23:46 AM","0x1a87c6d67e57307fe1b1f36dfeb6619c1809be76","0xbbb10fd12b521f5713fdf7268d4b261f055ff3e7","4" +"0xa5f01cfe5b7d9b33f83c563dfcf9e818a25f30d7f8b5105f27fbde074a22170b","4877072","1515456319","1/9/2018 12:05:19 AM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0x7d4a6412bbcae3ac6fe12aa88e76f3d632d9a084","10" +"0xbe93987bf70dfde422f537077f1fbfc281e03ec51efbd8e628b6379963366f47","4877092","1515456605","1/9/2018 12:10:05 AM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xc9b146755ab73b81318710a80bb3546dcd519210","10" +"0x38c89423fab0555f3d2127e3bc0067dc941faa98e33623eb20878989cc41b2fa","4877107","1515456836","1/9/2018 12:13:56 AM","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","0xa6e9bddbac66c2b786adc5f8da0964cd78b0fa49","10" +"0xd18bf9a2f167abc7cded62326d875c127eee399432ff8d47bd35d5b1122a8f48","4879337","1515492237","1/9/2018 10:03:57 AM","0xb4de163c6d95675568755f5490ef2c03ee3e52d6","0x5396c814696d7a44731bd04a0095d313dc1e8300","1333.333333333" +"0x743c30bf7fd6fb7d4b902507ead48655b32a276dd7855dd13c1436680c8e5320","4898138","1515793182","1/12/2018 9:39:42 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc77c380cafd2e1f8c20918ff58a95cfa1b5b5697","2417" +"0xbb32eb611310a04befcae8f6be477a0b95f9f08879346001e995c6a6ea35f6aa","4902788","1515866914","1/13/2018 6:08:34 PM","0xc274362c1e85834eb8387c18168c01aaee2b00d7","0x7002ce0364a3a941419e67ba820760c843250a41","500" +"0x1300dd2ca12c82844265371784c48432e3a5dab5283f63a4113ad604128a238a","4903227","1515874039","1/13/2018 8:07:19 PM","0xff3f8d703bbfca2bd2be9eb2ba182f071b84f975","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","11.111111111" +"0xf2f71efcb4993dbf5f5262a0cc7dd373e4482a7c2fea741930f28cfaf0fc6f9c","4925588","1516223515","1/17/2018 9:11:55 PM","0x7002ce0364a3a941419e67ba820760c843250a41","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","500" +"0x3c41f95a4fe65557aef8fd91b26273160fba2d2fb444b72aed68fc91d25e301a","4938647","1516423867","1/20/2018 4:51:07 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10000" +"0xa0034b7773976487eab1ca29b2ab31c52abbce7f0264cb915295a5934382bf8b","4939588","1516438291","1/20/2018 8:51:31 AM","0x5242dc2114bb40ed7482adcfab07384d069408cc","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20773" +"0xc7dd04875bce8feac9cfe9a1faf57efded98874a0ed71f9fcbce5ca45026c829","4956495","1516686968","1/23/2018 5:56:08 AM","0xc38eec654acf6cc905641210e39c902f5a635242","0x154a2928d8186c2dae1052faf2e02890b4f55358","1400.785" +"0x0718256da23ffea99531f254875f68a9b226eaae6666b7b3693a48bb13619cc7","4965240","1516814691","1/24/2018 5:24:51 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4600" +"0xbd6870a7e9422c34621628966ecb8dd70a3c74fd7115da82ef76d8828b7572b1","4968259","1516858167","1/25/2018 5:29:27 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e7601f7daad7a0993474106d6fe1e1761326e25","9E-08" +"0xf92f5a4f5c51aaa3a358a469e31fa5b6a0181da76267fc63762eacf90ee6f709","4968286","1516858556","1/25/2018 5:35:56 AM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x8e7601f7daad7a0993474106d6fe1e1761326e25","0.9" +"0x4a8b2ade8ac5a2019b672d7a7f2ea61b13104d1996dba77c211206fe5e62dbc3","4976379","1516976154","1/26/2018 2:15:54 PM","0x65ba874a4f5515b7871af3bc3b40986e03459eab","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","1" +"0x8083075592d04da049c11d55ab9a42de74e6adb3baec0369a769184459a2fef7","4977543","1516993946","1/26/2018 7:12:26 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x419582d20b3e90749f86b1abc3dbe52656797121","4823.773727497" +"0x332c523c76dc691792d1a3c0959c60089c41466d480414b3ca2b13d9ff823fe4","4982464","1517064861","1/27/2018 2:54:21 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","2" +"0xbad485d5c9f721f7c6cc84860139a1acfe17634cd34577de97551f9e68777aa8","4986549","1517124013","1/28/2018 7:20:13 AM","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","0x1ce8376ff5158585e7b204ef6e333ad5a9b0ac56","2" +"0xe4e735b4ae34fd750b25e4f0908dae08e5dfad45ad2e9d9003f3a4b69028ad37","4986597","1517124767","1/28/2018 7:32:47 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","1000" +"0x65eefe3423bc6d269ca070ebe3450520f5b3efdda9f5cf129b2413d81a11dfd9","4986629","1517125168","1/28/2018 7:39:28 AM","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","0x24c301817871fa95ec8bc68fb381803c8fd6b3c4","1" +"0x9e46f2a42bcd735642af0f7c9ede7a714bb013d7fcb4c9c89ee462685f147b31","4986798","1517127420","1/28/2018 8:17:00 AM","0xc77c380cafd2e1f8c20918ff58a95cfa1b5b5697","0x9880f834338bb754028f166f11fbe3e43a4a2f00","2417" +"0x7fe703b4e57ad8f6bdf900f82360294f7781497e65898818d6ec879ba8fddbbe","4987555","1517138242","1/28/2018 11:17:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xfa7db3f06854215abb0adae67c5d054a7c31e8b0","1000" +"0xcce1eded5ae9df0aef502f750c59c9396fba5c0d37327bb8e89c87fb0181771f","4992317","1517206657","1/29/2018 6:17:37 AM","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","0x36138697f8b6cc407919c94e7274b03455598a23","1" +"0xd09a3f6e5c44547c6782192d26f6792d240ed748a3f37c13dc72e1710916f196","4997163","1517276955","1/30/2018 1:49:15 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x389b675cdd46602197f71d0ac0b422e850f9cecd","3" +"0xb4f7bb44f51976d8edaba389f73ca041e06bc68f8fadaa09340b7986ae745d18","4997178","1517277206","1/30/2018 1:53:26 AM","0x389b675cdd46602197f71d0ac0b422e850f9cecd","0x65ba874a4f5515b7871af3bc3b40986e03459eab","1" +"0x37113cc65cc62e89a0700acf0206c16d93d25f8967ff4cb55d379e96c2c51c49","4998658","1517299520","1/30/2018 8:05:20 AM","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","0x82c361d688eb7bf3e647f7f4e59f9c21dbe422b6","999" +"0x16abc6369827aa5fda858b58e501ed4b404f202e788b75dda882debd2c396f29","4999635","1517314233","1/30/2018 12:10:33 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","2500" +"0x7811f2f046b26db81db6e90013fd7e4349298580c751382a4b23f4d998ffa075","4999669","1517314699","1/30/2018 12:18:19 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x34407418cf3d3b0cc57bd77a568268a29509dc7d","2500" +"0x399e19f112e356cce7320c04b8241b6a39ea73204b4c9b959832ad1bb01435d1","5000720","1517330909","1/30/2018 4:48:29 PM","0x82c361d688eb7bf3e647f7f4e59f9c21dbe422b6","0x4953ecf0301389371a462c6ebf49fac314a92c4f","999" +"0x5e9ad5c690359592c9710b26f56d9fb44b703a3990ea6501ac9dc7d60cea7d0e","5002540","1517356822","1/31/2018 12:00:22 AM","0x4953ecf0301389371a462c6ebf49fac314a92c4f","0x4815c0b863f8347e31fec6b7caa1422a151b14c3","2" +"0x54256751d13ef03d6e0cc832778ce4cfd88caccb5bd5d471c1f802e725593d8a","5003318","1517368223","1/31/2018 3:10:23 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","700" +"0x46fcf48a63ba775487010b8477f5570fd4eec8c0ddd90cb00fd1cc2e84b4dce6","5003340","1517368443","1/31/2018 3:14:03 AM","0x16c49b7b0221b507f8ca0dfdd5da1cfd49c17a9d","0x4953ecf0301389371a462c6ebf49fac314a92c4f","700" +"0x5e7842aa7e324d9eb45f3ad6b7a0a6c57012faf8a8f99d6dadc1dbcd104f4404","5004663","1517387692","1/31/2018 8:34:52 AM","0x389b675cdd46602197f71d0ac0b422e850f9cecd","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x4d49459f4b44a4cde1ef6bb45a923763d891e5662d836af4e68da09f462510bb","5007729","1517433272","1/31/2018 9:14:32 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0x5e7b2a9cdeab053595167621abae0a3a5b247ccd8f72f90f28eedee4cd83ea12","5007831","1517434827","1/31/2018 9:40:27 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0002" +"0xa27788e0a2679dcae83e08f04122466aa1f0755b7a943fe2fa0381541e2d3786","5010673","1517475967","2/1/2018 9:06:07 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xafa72fdd9aff5177fa402469c688c21998382854","0.0002" +"0x57911d96fe958006e04c556d8f7f3750bcdf2ed448c5d2912455709ac48bb35a","5014145","1517528746","2/1/2018 11:45:46 PM","0x2acce8fca7300dfbf37ba1268895e72fc204885a","0xe26fd1375535967504475bd07df0293ee5d41695","0.0012" +"0x22775395b168ede38cbd6ffd6d7e932d255e65466fe5143e2a4aab0a8980e375","5022284","1517647988","2/3/2018 8:53:08 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5104efc872d45dba3a97bf02aebe240dfc283321","10000" +"0x989e047b5f712d2cd4e60e8b02110b3a9a7ad771cbdaf949be6e049e62e1be65","5024362","1517677570","2/3/2018 5:06:10 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","10" +"0xdc2ea08bd02d4c0ca043b6e61386a1d7b17aa4fa78d1b4b35b442fca7f395135","5036743","1517857068","2/5/2018 6:57:48 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcad801117ca8dc9df4cc0c11e2751569cd4e62b5","5000" +"0xaa5e3dc372c8f095c23cb16dff9060fbcd46e8e86a2de098df572fc7ec4fdefb","5040825","1517916519","2/6/2018 11:28:39 AM","0xcad801117ca8dc9df4cc0c11e2751569cd4e62b5","0x70e5dac535d3ac2fca5bdeb1bcaac258bd3fbc11","1" +"0x9e33d761a22a506803d3339700e9f503e1eedd31827e2921bd5d8cfad2472ee8","5040943","1517918084","2/6/2018 11:54:44 AM","0xcad801117ca8dc9df4cc0c11e2751569cd4e62b5","0x70e5dac535d3ac2fca5bdeb1bcaac258bd3fbc11","4999" +"0xcc069169b987989502479c2a203c7dcc0dca4f9c24a124b07c6dfda2824fd38b","5041191","1517921981","2/6/2018 12:59:41 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xcad801117ca8dc9df4cc0c11e2751569cd4e62b5","5000" +"0xa435d3f1b2c13fe4adcb48443a88213606fdf0f84ca7e144c5cdd9f758a20a52","5041201","1517922138","2/6/2018 1:02:18 PM","0xcad801117ca8dc9df4cc0c11e2751569cd4e62b5","0x70e5dac535d3ac2fca5bdeb1bcaac258bd3fbc11","5000" +"0xe8ffdf8ffc70f05f65252efd5d78a0651edfd007be53d9147482cc6424ea97c5","5049115","1518036648","2/7/2018 8:50:48 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xbed3a074d1fdb580304a7e227d3a89135d33a08b","2E-08" +"0x7c5ba8d5f4036be76065fc98176421f191ae04f14d553197030fec9315915685","5062215","1518226773","2/10/2018 1:39:33 AM","0xd8b74c74192d556d3a069f430738d1c2046db763","0x9ef2592cb44e8bae3cb864388dfffc7af7288f9a","0.5" +"0x403694825ce50a732519315764301befdf4d56428b956cf9b8127ada71cf90d6","5062217","1518226853","2/10/2018 1:40:53 AM","0xd8b74c74192d556d3a069f430738d1c2046db763","0xeb49a964c81681140a98f186c8347fcb20e09cdf","0.5" +"0x15cb163cba5e17c1b0d4e850e6521d42e9d9a00fea4f12420405c6f06801ee4e","5067988","1518309424","2/11/2018 12:37:04 AM","0x4703bf8ddf7acf99eac0cd87eec06835cb1b3586","0xd1ed26eba62a4d389e050b681264f01fc8ddd8e6","10" +"0x6105d9afba2c9fb3f2184ef1972be9c14ba24661b2caa6f4d6a6a6cc0defb6f0","5071625","1518362444","2/11/2018 3:20:44 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x4a648ae2a4cc8b69f9b816a8168e164368514803","5000" +"0x54e558fdf614803765c15b23d5e9811fb793834cde18baf3f7011c2589b23999","5072192","1518370639","2/11/2018 5:37:19 PM","0x4a648ae2a4cc8b69f9b816a8168e164368514803","0xe7658cfec2ef8e88339a5132bacf4457b7e14159","5000" +"0x940a42656cddbdbecc63b87134738e5d662a7dd7999ddd1a808ac6c2efd46ef1","5075415","1518416748","2/12/2018 6:25:48 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x764d700facb653e1ef05bd303d351378ca2eac10","10000" +"0xbba67e25070403483401287eadd05a0d2cdade93e239e2507586885d69bcbac0","5075423","1518416835","2/12/2018 6:27:15 AM","0x764d700facb653e1ef05bd303d351378ca2eac10","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3000" +"0xb4642eaf317393cc6d7ae985cdd6862f84a7b334ddeea1db1d091f1385098c64","5075432","1518416973","2/12/2018 6:29:33 AM","0x764d700facb653e1ef05bd303d351378ca2eac10","0x95a39964f24fbf2378c38bfee41252f8f445ea62","7000" +"0x0ca43046e2935b20eb424580f02cd0f05aaa9f8dad07bc20a210ff185088eaff","5077691","1518450590","2/12/2018 3:49:50 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3ce5f109b5c6b3fef21bf572b2c03ce8c1d73f4d","5E-07" +"0x918822f73da30208a141cffae9fc0d70c1b2059929afdd61d24b2a2d29b7799f","5081407","1518504092","2/13/2018 6:41:32 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2741a420978da4a7d116c4688f33afba4dbf6095","1" +"0xcb9d1290e9bfe4ac30522ba926ad94f3f9ba46c0b5eb6e5e434507aeb60d2d5c","5089806","1518627146","2/14/2018 4:52:26 PM","0x917090eae3333670f2dd348b94846f010a734d85","0x0000000000000000000000000000000000000001","1" +"0x5528c7199aecbdb61e1828896a9a4f7c3667ad0d752eb11451495d00c5db9304","5095189","1518705844","2/15/2018 2:44:04 PM","0x1843906d36cc93f52b651f0ae78d3b5ac1c7c5b2","0xa94b0ebbc437a9c3e189008e31ff766a22b70fce","18072.299547375" +"0x0d06d3db84d32946789461b35abe792e41c3a2659323b9a376c3966eeab88efe","5095806","1518714812","2/15/2018 5:13:32 PM","0x9bf49c0d30afc293344526fd9acc82fa28486af4","0x7fed03e8447de049adc97a757953525b13f8a894","18.182" +"0xf4a9316f8a3bdd6b1b0562855fd50838f4c0727b45e56d1f88dfd442aae353ca","5097520","1518739332","2/16/2018 12:02:12 AM","0x7fed03e8447de049adc97a757953525b13f8a894","0x9bf49c0d30afc293344526fd9acc82fa28486af4","18.182" +"0xaa3940699a290ef47a0a5e424e2d7c7563f679140b77315e710cd111a355e462","5110529","1518926784","2/18/2018 4:06:24 AM","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","9" +"0xe177d3230eaa629b52d38737079ff7373c97847b60b814f5774f0870f05b7cd5","5115690","1519001319","2/19/2018 12:48:39 AM","0xc4f0c17eef6244efacd45b9ab245fd053e7ac8be","0xa560ad358f533b7cfc96bd4e1cb3c2848637d000","14288.307417187" +"0x8505e0396fdeda26f87bd95427d83290f64ff5fe8da2c1209b2e48b7a69c2c69","5127472","1519175159","2/21/2018 1:05:59 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa06f4cb4e469a861add3f5674c06a43d5db3188e","0.292226754" +"0x9b3576602dac8fb8644bd331232af469b3aacf5e8b7cf8a7b57d1e38dbb1262b","5127785","1519179805","2/21/2018 2:23:25 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa06f4cb4e469a861add3f5674c06a43d5db3188e","10399.707773245" +"0x271e6ab56c61e0e65da6934472dade8ce360799190130b4381268bd9007759ed","5138336","1519335231","2/22/2018 9:33:51 PM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0xa0df0ed5d981d8b4384acbff9dcff7f8194ecf09bf59ec91856c811e1b3c0a73","5141335","1519379704","2/23/2018 9:55:04 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0x298749847fba02d2cd43633241c403bb128083abb6d05a6b1e38ac66f881da04","5143420","1519410625","2/23/2018 6:30:25 PM","0xa06f4cb4e469a861add3f5674c06a43d5db3188e","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","10" +"0xb16b2ed0206393af6474e857a745411b20c4e16db3c341512116922673ef5131","5162294","1519688450","2/26/2018 11:40:50 PM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be","77.715488881" +"0x4d86e2a13ac314d2d72675d959b195bb27843824627e10d825aed80afd7b0742","5162322","1519688877","2/26/2018 11:47:57 PM","0x8b182a4526944fa498970732a69a95d281c3c8a9","0x3f5ce5fbfe3e9af3971dd833d26ba9b5c936f0be","27.888333333" +"0x2437dd5c094ca93524be1cb49315a9f9458d60a78ada94a4a10a3931dea10ae9","5167136","1519759719","2/27/2018 7:28:39 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x4b9e8bba5d155a5cfd8cb101f365eec482489749","4000" +"0xe6c0794d1c5263fc41fa041097eca248e3236a18ca371146deee6cf0f1a69fff","5178140","1519921537","3/1/2018 4:25:37 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x15182d56b5f98f6adb614e2b5da87824ef7f7c770e51db893e3f1bc29ab12ed0","5184875","1520020595","3/2/2018 7:56:35 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","225" +"0xca766aa1d8068f30ad0728bf4d28762c9009e63f45b08c18453137951ab44dc3","5185330","1520026954","3/2/2018 9:42:34 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x54d5ce24863dcbc8df067801f7a6796145a5f1d0","851.114534482" +"0x414cd56fb2afdacb812bbc01b0491ef8c0b5cea834ec0b895e000cd9cced1a36","5189272","1520084782","3/3/2018 1:46:22 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","34269" +"0xe54d9978b1c6d13feb571bd6505804b6b1ff5833b9d824bdb911faf64b5b3e32","5189283","1520084918","3/3/2018 1:48:38 PM","0xa3d559a26e0252266d4d43231d7c29707c76d8b0","0xb52964009c10eafc6ba48ca5b5bea342d957e786","34269" +"0x9ef2d4c6f209102bb593bc2b563259fd12adaa4dba50b20d27253ea12cfaf935","5189483","1520087643","3/3/2018 2:34:03 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","40000" +"0x33e330c425caacd2fb93c683503271e5037010cfceedbb7f370c8b0fc225cfcc","5189494","1520087841","3/3/2018 2:37:21 PM","0x927a4460df1ba655363dde2fe1b2a07d3a209e83","0xf66023fdc15667ea8cb2e0d226898b93056185eb","60982" +"0xe01d25dc092dac683addf680b6511a3fbf3012ded8a1bf2152894ec28eb195fb","5189781","1520092029","3/3/2018 3:47:09 PM","0xb52964009c10eafc6ba48ca5b5bea342d957e786","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20000" +"0xd1009f03414419ead46ab1297c9bfd465dfe08ef8818b45fcd35ee8927a84d9d","5200407","1520246942","3/5/2018 10:49:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xba1639e72524b1a8c848d25ac85543897e15ec6b","4.999999999" +"0x9f539a87d4728bddd117bb068e021ebcdadfc943e28485a985031f7b1278321d","5201045","1520256535","3/5/2018 1:28:55 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","225" +"0xbbf905b5b2f7ed669815189c3d2d6ac5ab5630a13fa04e377875f120f25b187f","5203327","1520289799","3/5/2018 10:43:19 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0.333" +"0xcec9fe36370a768d4dd101d7c5423d44122a6bfea5c81562548283d970b79e5d","5203347","1520290116","3/5/2018 10:48:36 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","225" +"0x23eace2f4dee334e9f56c88306c9c61116b608f070d1e2aafebeadb06c49d750","5220607","1520543606","3/8/2018 9:13:26 PM","0xe7658cfec2ef8e88339a5132bacf4457b7e14159","0x4eaa4950fc66f37b57d3a944db95172eb2cfafb8","5000" +"0xcc7d3c8d79d18d4ef27a9684955d7ffe03bd3506905d7a584244e09faad03a0f","5227761","1520648214","3/10/2018 2:16:54 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x8585ce6cf2a8695dd73a18625a42d32ca83944f6","11349.787" +"0xec402569612948d6d1bd0bbdfc42095e9526735093f00719acd57412f07e6ca7","5237106","1520785432","3/11/2018 4:23:52 PM","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x73e6c01efde6f6e9033e4758cfc416cde8e68e58f4ff3b5219a2554af8d31dd1","5237178","1520786550","3/11/2018 4:42:30 PM","0xb52964009c10eafc6ba48ca5b5bea342d957e786","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","14268" +"0x7e874dc1686b702d0f29bb8e955679c442a65558d5fbfc8b2c0441a198ec61db","5237693","1520793883","3/11/2018 6:44:43 PM","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0.001" +"0xf0c5f8d35fb290c81d7bbf2375916ab45e894dd5f2cbbbe46fc1801fd991772d","5238136","1520800515","3/11/2018 8:35:15 PM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0004" +"0xb4fb3ab3cb573f04a40b41665d2c280f7b6c4d00425988a87362aa1621056c69","5240118","1520829114","3/12/2018 4:31:54 AM","0x5eb80a7da7fdf614e5e1373d923a16dd1856b49f","0xe26fd1375535967504475bd07df0293ee5d41695","0.0008" +"0x9abbf4a3b7a3ff17259fbed173b4e4b0d0ea43ed8d9d1056ade07325ccb704fe","5264135","1521183166","3/16/2018 6:52:46 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","225.333" +"0xb34844cc0cdc7a387e420dd65d6d28eb3195edc570d429e1c6ac506beb69f678","5265142","1521197557","3/16/2018 10:52:37 AM","0x4953ecf0301389371a462c6ebf49fac314a92c4f","0x2f5be4692f33f532a2438210f3818e1911f2bd70","2" +"0x5cfbc565bb31516ec263e549e81e6ae66a7dc974e58dca6a8bc8bb2f343f483f","5274695","1521338687","3/18/2018 2:04:47 AM","0xa6e9bddbac66c2b786adc5f8da0964cd78b0fa49","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0xb7db659d6c64789460aeefcb620e74c81ca303369210115d931f9856c5fc252b","5294197","1521621197","3/21/2018 8:33:17 AM","0xfa7db3f06854215abb0adae67c5d054a7c31e8b0","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x19220758c53fbd296c8c980acb5c738ee4fd2dbaaad6621099bed7ec1c404b89","5301545","1521727720","3/22/2018 2:08:40 PM","0x4953ecf0301389371a462c6ebf49fac314a92c4f","0x7812402e1adc96d8f7ec351e7595c8949dece95d","1695" +"0xdbf71de58cce37400650eb660b2a4c4604cb58c7f58e4a9f5652b2e7def6434f","5320507","1522000981","3/25/2018 6:03:01 PM","0x95a39964f24fbf2378c38bfee41252f8f445ea62","0xf221da9596b68244f158bc7c7bf966271b9ad87d","1000" +"0xaad48f64e0b9f78aeb5fc3ce7d1555246dcdaca7e4df73dd7b7758d0d30494d4","5320816","1522004903","3/25/2018 7:08:23 PM","0x95a39964f24fbf2378c38bfee41252f8f445ea62","0xde699afd347cea5a3f4fa8c752ffb1621faceeb8","1000" +"0xe1e906d6eb141d5fdd1db9ada87bc9017251e6f99e264e5d30391267688b95c8","5329980","1522136871","3/27/2018 7:47:51 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa6e9bddbac66c2b786adc5f8da0964cd78b0fa49","10" +"0xe8c2fd79c6d48d7261be134a186dff6639656eed0fdd05ae00ffade251250594","5330015","1522137391","3/27/2018 7:56:31 AM","0xa6e9bddbac66c2b786adc5f8da0964cd78b0fa49","0xc3792474b2892b631cd808b9f3fc6777f55a6b74","10" +"0x90d4e250d8fdc825cf8ae2cf368b0ce63d83158b4253ecd1b88581efa1f1ed74","5338328","1522258699","3/28/2018 5:38:19 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0x72f2725d6a2489a8599db9d62390694b5cac080586ca68d52816f5dfb6a0427e","5344131","1522343742","3/29/2018 5:15:42 PM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0xee2857680eca85eea4bceaa932d9d0ab09b1f235b2e748ab422635f8f9ed1c69","5359035","1522558359","4/1/2018 4:52:39 AM","0xb76e5f8b2e72975b7cd1fdde069e7fb4ad80761b","0x49e5624fd79374073fc483d165ef00cce702b2c6","150" +"0xa969ba23b5e155f2db8a24c51c6f02e595e0ea999837b45b1c3a375dc83ab61f","5368642","1522696010","4/2/2018 7:06:50 PM","0x95a39964f24fbf2378c38bfee41252f8f445ea62","0xf221da9596b68244f158bc7c7bf966271b9ad87d","2000" +"0x2ab8302f0aa1650bc944e376e3560ab5f7d39048b00163d952d0a9945b8add9c","5382579","1522895874","4/5/2018 2:37:54 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x49e5624fd79374073fc483d165ef00cce702b2c6","240" +"0xc619ca95a853f539ce72b98520d6af531751ed5412a744cd7ade74131adac8ba","5382585","1522895997","4/5/2018 2:39:57 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","90" +"0x162e7f8f182afdb6983cc81d75b3692bf9f93c748019ff3703fbe4d0dcadfcff","5383012","1522901743","4/5/2018 4:15:43 AM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","300" +"0xa5622becaa56142405e1edaf79fd32666cb40a06c33f0cd40902d2cabaf0056f","5384916","1522929422","4/5/2018 11:57:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","70" +"0xac0a29b9d4b30bca4057c4e1df67b47d25d5ebd71bc1c91348b751a3496171d7","5385038","1522931330","4/5/2018 12:28:50 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","10" +"0xd59218b932545dda6839321290103198c367353ad93dc2a7f5b63632dc47b708","5385226","1522933874","4/5/2018 1:11:14 PM","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","0xffbf3fb7c2b7e8d6a31867f1c50fa74864e9b2a4","39" +"0x95ea72ca0f8906478b0bfa1b4b7043d288f26dfc744efa707bddd0744496a26e","5392627","1523039644","4/6/2018 6:34:04 PM","0xffbf3fb7c2b7e8d6a31867f1c50fa74864e9b2a4","0xe342402b1606ee1593ea79759e3cdc23353e0859","2" +"0x0a2bcd67b58008326028b8f681e9ca55e7eb842102baf220bb3962a78c6ced9d","5392738","1523041212","4/6/2018 7:00:12 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xc7d8f1c49e883b79862ef2519cb628cecff76d26","20.462792875" +"0x8e4e8b983febc977aec46fd44dc0c21fe3487b893a1690bf54e61d6b988d3a36","5392790","1523042023","4/6/2018 7:13:43 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x7e275616ead952392175e8e13351b971f6000c91","100" +"0x711de758d066247d4be70dd121b4424742d0ae856c437695883822148f04319f","5394872","1523071454","4/7/2018 3:24:14 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe5523572fd47bf12c9ca548a555a6f186e0d9188","10" +"0x3c96a0674090540677b88c580e4ccf606d261a69d00144d21fea44728af8614d","5394897","1523071756","4/7/2018 3:29:16 AM","0xe5523572fd47bf12c9ca548a555a6f186e0d9188","0xc0915af113ebe557b9372f7b6b898e4b3d7e2096","10" +"0x13f68de1eedda8c14e4951d1053d61573635a127c37874274f09b97f488d3342","5394909","1523071926","4/7/2018 3:32:06 AM","0xc0915af113ebe557b9372f7b6b898e4b3d7e2096","0xbb29607553eb442ed6a54500f20486b917e0bd27","10" +"0x269c40c07d84cb152b5ea2173934973c23f413d4c808699730898604704b8a6e","5395399","1523079338","4/7/2018 5:35:38 AM","0x7e275616ead952392175e8e13351b971f6000c91","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","80" +"0x1576b23caaa60e094824e4e6c337b4ffb947020d59c35e6eeb50a05018464f1d","5395722","1523084180","4/7/2018 6:56:20 AM","0xc7d8f1c49e883b79862ef2519cb628cecff76d26","0xd3e5b30dc2212717514a38eb6ef04012f69ccb53","5" +"0xf5236fc63d1c0e1f0b873f09f74b1bcf34e67c4d8a2a03c78cc97d461e716841","5397792","1523113147","4/7/2018 2:59:07 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","47" +"0x4a290865cac672ff27e9f7508164e5d092b17626ae711155ed941f64be0b02eb","5397800","1523113287","4/7/2018 3:01:27 PM","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","0xd10f25f7c74c611eb82dd4f9fa43b4a06a771041","88" +"0x309657c1e98a0382232609e21ef1ff652b50c51ce1b411201a45c3dbf7f18f6d","5404688","1523211639","4/8/2018 6:20:39 PM","0x39d52db574854e7067b6c970abe6f765c3024cac","0xa857875fab2ff36d1b0a206aa0c6ef34557500d8","12212.336" +"0x43b7ddc06f19e545f73362488f6ebd4ec3eacb01142c52421f794bcc45cc93e1","5420657","1523440711","4/11/2018 9:58:31 AM","0xffbf3fb7c2b7e8d6a31867f1c50fa74864e9b2a4","0xf37b8f934705860f164e2d915c75eb8dcfbc1c3c","36" +"0xbd423b0fd4f96aa6f31842cc507feec391329682999cf04c41290ac3670a73dc","5422539","1523467885","4/11/2018 5:31:25 PM","0xf37b8f934705860f164e2d915c75eb8dcfbc1c3c","0xabdca7a483d2dbb005a94f98ce090a67da66d1a5","36" +"0x1f6b48a87dfe1b30efd74c56e4b7b337bf78361c9f2134fd55b3938345f1964d","5422751","1523471275","4/11/2018 6:27:55 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","3411.199485632" +"0x3775c0b5b54a147832a61dc3c248aee958538e0c6da6bb15377c4318915d68ca","5422800","1523471945","4/11/2018 6:39:05 PM","0x7d4a6412bbcae3ac6fe12aa88e76f3d632d9a084","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","10" +"0x7c62ab35e0aec487434b369ca4e03ddf89a944dbf6e55130fb9fcc6319439792","5422817","1523472164","4/11/2018 6:42:44 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x3d48587aa16d91a2e37198b5b428674bdaddf038","782331.419859784" +"0x175b74d19cfb251920453d80b460e780b03c7cf13a074e97ff9e283e63e2dba9","5425386","1523508625","4/12/2018 4:50:25 AM","0x000001f568875f378bf6d170b790967fe429c81a","0x00000217d2795f1da57e392d2a5bc87125baa38d","500" +"0x358968d14b798d508c1194bf9315adeac8f5875198a52a332a9b54bee6a5776a","5430113","1523578571","4/13/2018 12:16:11 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","20" +"0xd9499b01a7cb38b764c112fdcbaa59736d78f167fccdeefe0e1cccabb5b78f7f","5430278","1523580860","4/13/2018 12:54:20 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0x6fb9283a83e58c656655a96adfc980a4c7978782","1" +"0x69bfb40261d2f6ba6faf6f1137db2ad44acb016979fe82d2555bcbad29f6d9d5","5430504","1523583888","4/13/2018 1:44:48 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","4" +"0x5b9f40bcc697148dc56bf1d7c7d84fcc6aa4d8f2459514f1e91a3297b3cdf4f1","5430592","1523585338","4/13/2018 2:08:58 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","6" +"0xe8a727d86c6d72d27c2e334483a0bbf7a28d72cf8e8294ac5a09d91fee15a0e1","5430631","1523585828","4/13/2018 2:17:08 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","99.764744875" +"0xfaaf605241772490b44e509bb59215cc5e85829b7b095669a25624feb5d5dbc5","5430668","1523586455","4/13/2018 2:27:35 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0xb31f80bfa401279cdac32d199c56494ef2d8fb9c","2" +"0xe84bfc986615cf7ed2e4edfbab02a8138bde97dcd49a2d7a618481131f5fc73b","5430755","1523587812","4/13/2018 2:50:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x78d5ad0e19a212708a0d56276bc3e17c3317a150","20.428" +"0xfd0bcdee5f4d3b2c7e2ce6cda8f8069459144cb24e27c87d291267d37f0e11f5","5430939","1523590359","4/13/2018 3:32:39 AM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0xc5517a1501fa6908acce57cb375458222c49a2b1","5" +"0x41f27d3972ecd9f004826197884d12bcb7452c1017a7fa7e847885628f1982c7","5431063","1523592007","4/13/2018 4:00:07 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xbb568e56310b4433b91f272e03202edaf14a6f45","125" +"0x196c586221a1901875b29b2a26896a1dfc30d65671ec82fbb8d45c3f38c9eb01","5431077","1523592140","4/13/2018 4:02:20 AM","0x78d5ad0e19a212708a0d56276bc3e17c3317a150","0xca88366f31b9bc03ad0d9aac7f895bc57f763b14","3" +"0x92a12674225053f63746625d438b65a24a47723ab6552fefa3e07076f6e374fb","5431086","1523592251","4/13/2018 4:04:11 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0x138474b6d22431dd7b6c00b132086bd4d1ac59c8","3" +"0x6223dd50dbfc3809d37a13b35ac0d005865291eff3369c2803b5d63091ac0b71","5431094","1523592400","4/13/2018 4:06:40 AM","0xbb568e56310b4433b91f272e03202edaf14a6f45","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","125" +"0x554b2b6b258ca93e49cfb0e05db934c32b77eef9c7125f1cb5b234f36b0abbd0","5431153","1523593198","4/13/2018 4:19:58 AM","0x78d5ad0e19a212708a0d56276bc3e17c3317a150","0xca88366f31b9bc03ad0d9aac7f895bc57f763b14","5" +"0x4fbfdddb606a2fd72fb304187ef08d1e7da64c6250dc22b75768511f8dafd39f","5431189","1523593765","4/13/2018 4:29:25 AM","0x78d5ad0e19a212708a0d56276bc3e17c3317a150","0x06e43f97ca614cdffa85e320260e94ca919d71df","5" +"0xe2947e1c5b0b644b15d942024b7f328074460628f3a07ea15568a5e26476c78a","5431543","1523598961","4/13/2018 5:56:01 AM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0xb64b062181e313a4f36dfa96d5ab5d0428ba1e2a","130" +"0x94309986b76aa11072d6816d931576c30342cc84d7ddbbc6854f9fc7e6d36f66","5431552","1523599085","4/13/2018 5:58:05 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe41c1c905341324fb575f59bc28d6eb6f0d4b264","10" +"0x2543c6326e0459a5fffef987fe69a483de450284503169b1bac155e1e199e8a0","5431659","1523600776","4/13/2018 6:26:16 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0xece0ddab782270a67208f62db9259423abe21671","1" +"0xe45f62e061fc23dff4fd88e91f91b20313bfcfa0587c4d43a734c66e92fee827","5431696","1523601239","4/13/2018 6:33:59 AM","0xe5bd04bd11d16e91ee86ef2820be2eb1aaf6559c","0x269f7b5c1e2fddfea3fb3776d56433c3c53d4ff5","1" +"0x28cb1daf9b87b9d4cb5c8b2cdde8ac0ea74798ada3fa117b671b644e3decd1ee","5432821","1523617882","4/13/2018 11:11:22 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xbb568e56310b4433b91f272e03202edaf14a6f45","205" +"0x06ee9b968ef46714feb796f6cb175581eafca8e8e19056905779f4adf9ed273b","5432833","1523618003","4/13/2018 11:13:23 AM","0xbb568e56310b4433b91f272e03202edaf14a6f45","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","205" +"0x35bfac21c81116c3a5e027cf6eb07d38adfe48801ed6f00d182119e857aa66fe","5432956","1523619814","4/13/2018 11:43:34 AM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0x54cca209e70a609fc5d898d43e1011e52a4a46bf","1" +"0x38721b3aa523f999ead17a5e0d3f3d7e577328d518773e8eb6dd3dd8504d9081","5432961","1523619877","4/13/2018 11:44:37 AM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0x3ce21d770c444e8343e66e6c61322e918da5a167","1" +"0x2e233c556a547d6421147c5e809a216dd4dbf7ce92f2239f0d6279798de4fbc8","5433158","1523622645","4/13/2018 12:30:45 PM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0xd493c2b10334b52c637f2e0f7cb00758d2619327","5" +"0x779a390b37ee362f7409cb6af64f9fa1e5c7a9635bbfeb96f85313f6992fd762","5433487","1523627740","4/13/2018 1:55:40 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xebf564386dee4f4611c70d2952c20e49a9e64e93","20.546934908" +"0xa1ea6ffe544ed4961fe4588ae226c95dc4f2b66371863bf161ab6e091a275051","5436492","1523671672","4/14/2018 2:07:52 AM","0xb64b062181e313a4f36dfa96d5ab5d0428ba1e2a","0xab62eed3abdba0a37721c801612a0b19ddeea74e","2" +"0x052a73309b573e145d2cf7d97b66abcc80b316eb380e63302a820acea1ff613d","5437504","1523686464","4/14/2018 6:14:24 AM","0xb31f80bfa401279cdac32d199c56494ef2d8fb9c","0xb3f7b743764a542641dd6a62303de415dd076330","1" +"0x4d724b18cadd891b6dba49871ccbbb4caab7d0c4810af878fa260461a65aa53a","5441354","1523742352","4/14/2018 9:45:52 PM","0xd960ae5f5294d1c06af036e78bcd9dca1e7840b8","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2000" +"0x45c60d58ab7bd0451265e5d1aa92aab909ac8ded123d5d633b4f668ef651f013","5441759","1523748576","4/14/2018 11:29:36 PM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0xfc362c76dfb6669164acf166f7095b7c54456c1a","5" +"0x26036f1637ad9418537069a2d62458e71948f655c22ea72ef008a3e5fec202c3","5443939","1523780232","4/15/2018 8:17:12 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3bcfb560e66094ca39616c98a3b685098d2e7766","200" +"0x2bf608b3056d25edb3197eb94156971fc929be566cd80f8f1df1b31e8903e972","5443943","1523780280","4/15/2018 8:18:00 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3bcfb560e66094ca39616c98a3b685098d2e7766","7.709434087" +"0x5198ec6aa670d915ce25f24dd4a2e57d30b49925a047a88a19570a305fb42fd5","5451264","1523887151","4/16/2018 1:59:11 PM","0x7e275616ead952392175e8e13351b971f6000c91","0xd04c4b54465a7345ad0e408fa170d36ea1b58062","20" +"0x8b748b75a71be2ebfb46d4e3624fe07e8dd9638aaa1720a41b7bb2a626388dab","5453763","1523923246","4/17/2018 12:00:46 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","9.9E-06" +"0x251c5891b4238de0a7ca06947b3119d464736b240632ea84f29ebcb36cb7593f","5454423","1523933118","4/17/2018 2:45:18 AM","0xd04c4b54465a7345ad0e408fa170d36ea1b58062","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20" +"0x0c6357a91da2102b34013cb925fa57c2f84beb742aa76898837d44bb41121402","5456999","1523971884","4/17/2018 1:31:24 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xfd53425224057d036b4e9f00ed7b2cad013b3607","105000" +"0xd44fe73ee4bec18cd3dbb77fd9f3d837634cc8c9115e92ce3c146b2d3af1d0d2","5458693","1523996614","4/17/2018 8:23:34 PM","0xfd53425224057d036b4e9f00ed7b2cad013b3607","0x21c991e3666704201bb3d49dbe0e48b22a361708","105000" +"0x8d58e8dfe6f4de760919357febcff7c1ebfd4816c550ab9b2e6a3d92bdb1a592","5458930","1523999873","4/17/2018 9:17:53 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","4325.8643624" +"0xce578a03d6dd8ae12513d99a55b050c54db0cf2a531248a701126fbfd600b6f9","5458942","1524000028","4/17/2018 9:20:28 PM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","4325.8643624" +"0xdd3d1631394080036c5afd152ccd6f679089ec7d48a3413a698feda7a86165e0","5459006","1524000954","4/17/2018 9:35:54 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","100" +"0x78b8c868e0882b571bf852911ad184ce32eb4aef513d1f0df0ba42238d6c66c8","5459102","1524002268","4/17/2018 9:57:48 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.01" +"0xe2e61b3db473e11b93eda1c0309f4dbf2604df1e79b609c29e4ba7d52fc3fe96","5459138","1524002889","4/17/2018 10:08:09 PM","0xffbf3fb7c2b7e8d6a31867f1c50fa74864e9b2a4","0x0afd6e7e72b363cb2d837e91234bb2cf86c8ceda","1" +"0xd3a8ffe9f175b74db9a8ed25f72c2de80b834573e58d072c29b4e12dbbe3ce24","5459761","1524012049","4/18/2018 12:40:49 AM","0x0afd6e7e72b363cb2d837e91234bb2cf86c8ceda","0x3ebb8a06d6432f9e26532d0a4bf8d45976f4cd37","1" +"0xc743886cef28554908a6fcee77280abae8147741bb4ffa3eec21dbed251f99b5","5461036","1524031082","4/18/2018 5:58:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","35" +"0xa09afecc480b36d4c2c60a3797e9475bdc63278570c3e2af92331cd50071d74c","5461037","1524031111","4/18/2018 5:58:31 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","35" +"0x2a5dacbdcfc0e15950dc0f931cb72d2d3c481e131dfc65d65fe74b1fdf80590e","5461044","1524031217","4/18/2018 6:00:17 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","65" +"0xad73c9dfbd72094453da13aad6d6e956ecef008da6afde6204d793e4b8eee625","5461149","1524032789","4/18/2018 6:26:29 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","588" +"0x3b0664f15aee47b5a7a64516e9819cfcbc1a75cc126f8d38960d8ebbfdaa863b","5462586","1524054605","4/18/2018 12:30:05 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","1.000000001" +"0x7b6c3710532b4e1b33ab846d054ff2515ff7a7cf7ff7f4b08c2e70e116096028","5462767","1524057432","4/18/2018 1:17:12 PM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001000001" +"0xe9b51f9f6eabb2c3439fd0e06d19ccd7148a1ef2713b971beaf508f67c5c3b8f","5465789","1524101573","4/19/2018 1:32:53 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1.982819112" +"0x4cb460e22dc7265765ff832e7b66c9fece153a7a2a754ae13d9f5e525a57db81","5466448","1524111439","4/19/2018 4:17:19 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3" +"0x23c125b56d8aa4dfced757d9ad1631a8d3730504cbba0f8b432c588eb5b3fde8","5466485","1524111950","4/19/2018 4:25:50 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","65" +"0xfa3d814c4affdc0496e8753a5d5899ed1b20e2b1f55c4bd32e3d4687619efd22","5466538","1524112599","4/19/2018 4:36:39 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0xf8decc1c64f93a310ca10a87865ebf38b8bcbe1c42e50de5e3efbf0a0ddf0107","5466725","1524115655","4/19/2018 5:27:35 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xc893f7e271d1436ae3758cd59d5242884c02fb7f","1" +"0x55a40744417b060acbe299c1643cacfb12006fddfa016e9fe565ae13ef1e4c0e","5466750","1524115959","4/19/2018 5:32:39 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x12459c951127e0c374ff9105dda097662a027093","1" +"0xc4901a1fbcf5b53b5db19ba611fbe94b6bfa5c8426a9b0963d039f73e02adaad","5466777","1524116432","4/19/2018 5:40:32 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x964f35fae36d75b1e72770e244f6595b68508cf5","1" +"0x1ab5fc0e03d5580091e5e7b246b910c4b4be65b647ce1e1741894e0226be3ea4","5466932","1524118842","4/19/2018 6:20:42 AM","0xe26fd1375535967504475bd07df0293ee5d41695","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0002" +"0x042fbac8f1ef456dd99a88c1aa5b2d7b0fc4e480d1ce6fcdf793757375058c38","5467748","1524131179","4/19/2018 9:46:19 AM","0x4d541a0a789fc0e1a119828b1432398bb0c5c88b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9.9E-06" +"0xa4e495f675c3e66b98a28b76a01bf199072ef3df778f7398613adda9337fa4fc","5469025","1524150752","4/19/2018 3:12:32 PM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.999" +"0x2bb6d86f52da0ddc2528357e9611478812b0808227249403c503de00c5ffdb42","5469140","1524152382","4/19/2018 3:39:42 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","1" +"0x062f5fc3c00a1a8970bfacb5581679b7b02a7759bdcdbdc1b1311acfc1ba059c","5469150","1524152525","4/19/2018 3:42:05 PM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0xc143f571cc775b007ba1ad8f23b8de61eadfe58021aa9df0b426ceb85c55fbe7","5469361","1524155857","4/19/2018 4:37:37 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","1" +"0xc445a600c7695da780056edd6a96966372fa28ebd6c2f6745e4e30f9264e3054","5469462","1524157405","4/19/2018 5:03:25 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","1" +"0xaa2e3618eb6cb531a85c52d52ce6fcb64ad1923486773cf3acf5f2bc5cd716fe","5469496","1524158013","4/19/2018 5:13:33 PM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.1" +"0x920a52ae1521255ba91d00a5692a3af322caf05cdb1c157ab2ebb359f4d49bd9","5469711","1524161032","4/19/2018 6:03:52 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0.01" +"0x0ad836d822d343f8a5823ecc36764da2ec96b7f16f12c28d2b801c555c757266","5475869","1524253055","4/20/2018 7:37:35 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","17.96282909" +"0xd8bcb560e5549b93afe1c62f897ee7049830c1393b7e2f7aa09c01b58da196a9","5476345","1524260271","4/20/2018 9:37:51 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","613.80872571" +"0xdf28ee746a269355bed663df6ae5c7d9cab35357deba8ae27c247e8fadc18074","5479505","1524307083","4/21/2018 10:38:03 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","99.999999993" +"0x939c5b763fc02abda1713468115ea51318bf0eb00b922d009675d59e3276be35","5497523","1524574649","4/24/2018 12:57:29 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50" +"0xfe2984e48b61ddb9bcf128028edd59f24617c8ed3333490a3138870954a0cf95","5501918","1524640065","4/25/2018 7:07:45 AM","0xebf564386dee4f4611c70d2952c20e49a9e64e93","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","20.546934908" +"0x2dc47d8336a20aa004d9283845537cb64bedffece5c2fc4120c478c32f10778a","5502061","1524642345","4/25/2018 7:45:45 AM","0x7c21d723af0f4594d4f8821aa16bc27c8ea6cec7","0x3d48587aa16d91a2e37198b5b428674bdaddf038","99.999999993" +"0x2cf46e1c4eb20ce88a534e40f21ac128ea2b46228925c2d895f5da5275146cb6","5503346","1524660724","4/25/2018 12:52:04 PM","0x6dbd7240d360be22cba37e207a727e5a59fbaaaf","0xbb568e56310b4433b91f272e03202edaf14a6f45","3" +"0x9b483c656c6275417864b34e14492e5ebf9cba7304dcbdc72d27cfaf4a3bc285","5503367","1524661065","4/25/2018 12:57:45 PM","0xbb568e56310b4433b91f272e03202edaf14a6f45","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","3" +"0x4b2b659965093fbf952c0dd56b74ae3e0e55f0db1204c63ae848f35d5a643299","5511993","1524788810","4/27/2018 12:26:50 AM","0xc3792474b2892b631cd808b9f3fc6777f55a6b74","0x440f38ebd01da577ca9256a473f905502fed55f9","10" +"0x38233a012ee23926749004d7fabfa9f29ae6429ac90f9e1f93cd88a9699e355d","5512465","1524796313","4/27/2018 2:31:53 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","1900" +"0x72292289cc7c76a3a179320faf35ac15f734d51ae21622752746ede103408fab","5516531","1524858056","4/27/2018 7:40:56 PM","0x3ce21d770c444e8343e66e6c61322e918da5a167","0x92b27756f146d4c04f61c07b6aaddff9daeb509d","1" +"0x9d80d31b49c0f4224b4bde2b3de2cedd3c61cff2ba1ba2e213b949591f7eb9c4","5520102","1524911396","4/28/2018 10:29:56 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","168" +"0x519cb043418162b37f62236cbcedad9bb9d50f80086917365f8a6df1957fda6e","5524972","1524983963","4/29/2018 6:39:23 AM","0x92b27756f146d4c04f61c07b6aaddff9daeb509d","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xd28678f95f2e08efbc069d16ac9550ad74ecfa8c11a76b39e776db16a3a080a8","5528388","1525035185","4/29/2018 8:53:05 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","64.9" +"0x06ce1967ac60e4c060858fff750b7ff25d9d99e4f12dfa41510a78bf07eaf258","5529823","1525056835","4/30/2018 2:53:55 AM","0x50dbe6aba74022daa22abe24b6bb6606dbed7532","0xd10f25f7c74c611eb82dd4f9fa43b4a06a771041","64.9" +"0x2bd608fa59fe81641bd2a99baa20230e65cbef45f33dc7e1ba5953b66652b903","5532239","1525093156","4/30/2018 12:59:16 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x92b27756f146d4c04f61c07b6aaddff9daeb509d","1" +"0xbbebe7cd2f2a8ca394d50651b80f18248099be9a3ea9fae781cb56b31c0659b0","5533464","1525112574","4/30/2018 6:22:54 PM","0xbf29685856fae1e228878dfb35b280c0adcc3b05","0x57b00c981363c67b11e07eaa71364bf20e8025fe","3155.77009912" +"0xc0bc3bfe981223d1fc90b053afe1ad9a8b3b95aec3516538645fb287dee71a07","5533484","1525112812","4/30/2018 6:26:52 PM","0x49e5624fd79374073fc483d165ef00cce702b2c6","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","45" +"0x395b73fdb268922ac5d26cc359a5b013832b37f8aa107273f1d55b96cf465f3f","5534742","1525130700","4/30/2018 11:25:00 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","3000" +"0x551da8cf80799966de228c883fe9adffaa8f849ff64ebd16b62a3e1a07283362","5536452","1525157446","5/1/2018 6:50:46 AM","0x440f38ebd01da577ca9256a473f905502fed55f9","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","4" +"0x64d1da742e899d66d2480fe0e05c5ac0bbae5cf0c27fcbe3757935201828e80d","5537716","1525176739","5/1/2018 12:12:19 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x11c9e9d921c30d8441131d543df2db72a9c7b2b2","0.249995242" +"0x64d1da742e899d66d2480fe0e05c5ac0bbae5cf0c27fcbe3757935201828e80d","5537716","1525176739","5/1/2018 12:12:19 PM","0x11c9e9d921c30d8441131d543df2db72a9c7b2b2","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","0.249992991" +"0x8556d4b832dd1f385737de37f6ae39abb100dae136a60db0648d3b334c865fdc","5538521","1525189315","5/1/2018 3:41:55 PM","0x92b27756f146d4c04f61c07b6aaddff9daeb509d","0x1aaf1ce0691960a28f8eb45edf9e79040fcc92ef","1" +"0xd567029f500f5e5504d98ebe3bc247b55b77555e226468b91819663c8627d85c","5544221","1525276044","5/2/2018 3:47:24 PM","0xd3e5b30dc2212717514a38eb6ef04012f69ccb53","0x7cf29e5182b1d293e8383603bd730c6715064a0d","5" +"0xa0172afcdbd4354ada9c05a39002bd0b2b28dcb7f036149088ee8dd4890b760a","5546497","1525310401","5/3/2018 1:20:01 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","3000" +"0x2df52203fb06558fe1bb8986365c99c467d737f317e7a50cbd1fc77d6a41cf69","5550498","1525371322","5/3/2018 6:15:22 PM","0xd10f25f7c74c611eb82dd4f9fa43b4a06a771041","0xc4717fcf4428fe97a58ce078cdcecd0c4c240aae","152.9" +"0x0ba857541e3b9a6cd7d7adc90e0d2e279a6a4595449d8dcb13fd502bd424c2a5","5558030","1525486667","5/5/2018 2:17:47 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","150" +"0xa48a7eac367f09fb4c9edf7f090353c951da77f838709dee462c25c59587ca17","5558057","1525487140","5/5/2018 2:25:40 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","70" +"0xa0acda20762f47c739654a2acf7f0ec4a00ac6c7b7999f3c59d422d76e939ade","5558080","1525487518","5/5/2018 2:31:58 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","80" +"0x3792e907cdf624129d48ca3ef2af6ff960746d8471fa4e4d7d89f00fa1a930a9","5558257","1525489870","5/5/2018 3:11:10 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","100" +"0x6e781944aba0fa9696b585d96e67b2dbcd5f7d7d350e132bedb7b45b38155ae2","5558505","1525493438","5/5/2018 4:10:38 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","20" +"0x9bc2a6ed240b68f426850e8c06f9872fe71c0cedf693fd2c31faaa3013b22859","5560898","1525529869","5/5/2018 2:17:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xebf564386dee4f4611c70d2952c20e49a9e64e93","20.546934908" +"0xd682e544f507f77063c5f631ba7dafa8dd6448d42adf02b03e7daded26987110","5563873","1525574462","5/6/2018 2:41:02 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","20" +"0xeaf1f0c1ccbb3973f181b36fb045708c7e3e55d5e653d0aad7ea5faf7e614cbd","5563902","1525574806","5/6/2018 2:46:46 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","20" +"0xe7f795cc8c14ceb7a6cb36618f7479c4ffcc3fb8bf0e01513af488ccf14ff3a4","5563961","1525575740","5/6/2018 3:02:20 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","14.75" +"0xf302f5a2aada20c6fb01fbeb7017454c8c23dcb7c05d418f9e06b035b2041573","5573019","1525711003","5/7/2018 4:36:43 PM","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","200" +"0xd2bc450272ac7b12470d031a6fed4973780f29a107a341a1fe1bb44c1bcb0845","5580034","1525815535","5/8/2018 9:38:55 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x68062f6463aa0398a36b907986ce4ad338966b06","110" +"0x75096fa98a1c53f06018e2992e6957d9e508af43f75a402b98fe6d6744eb6a2e","5580135","1525817140","5/8/2018 10:05:40 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","34" +"0x943a3f9c9da69c888ecaf5f1d536f5b407e21ff0aec8e9fd500ba41ea504baaa","5580142","1525817274","5/8/2018 10:07:54 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","50" +"0xbe8c0dd80f95e685c5e026d370b656514ec785adf1ef377bedf81b8bdea5e253","5586064","1525906462","5/9/2018 10:54:22 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x1fca4005e4f67a701c5f81b0a0e92cccb53ce018","10.7" +"0x7248b729e12950e1afb5cef2d005e6e2ee95c2b4ef1cb80c7a7d7220670be6ad","5586826","1525918039","5/10/2018 2:07:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x73b3a24291f8b0d784c70be82d68e13bb3d049b6","7.1" +"0x0faf9805c18f532bbbcffba80e2bd8d943de07155160aa867841506b011b2fab","5586826","1525918039","5/10/2018 2:07:19 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x73b3a24291f8b0d784c70be82d68e13bb3d049b6","7.1" +"0x7efbed3feb05ef7c2b3c5afc760b1e4a79164acd39729f4cfd87e51a4373f24f","5591251","1525985126","5/10/2018 8:45:26 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xdceb62d0372325ce7a56afdefb69d4863c0ba075","76.598" +"0xbccb69e8d8413731ffa2a9568813f4b26c523af4607b4b4e60a4b05f5195c9e7","5592264","1526000231","5/11/2018 12:57:11 AM","0xb31f80bfa401279cdac32d199c56494ef2d8fb9c","0x7d28dff39c8ac2a8f498c8a2914af84faade22fd","1" +"0x133259e2475fb34b6300e548a0d1392b71e456e8403e668d0f4d4edea7993f3f","5606322","1526212266","5/13/2018 11:51:06 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0xcc6560758cf8845cc51e519ff44d99de7836f7462d106b129aec93d4cd03eccc","5607931","1526236595","5/13/2018 6:36:35 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1000" +"0x2198586b821153cada5e1a603f94d1751a2a26d5c913d7f2b56989f55569ab2f","5609269","1526256077","5/14/2018 12:01:17 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0xd2919053de91abd16ca7f6e5f780cca6778567dbd537649e539ebbbbb2f1016b","5609294","1526256432","5/14/2018 12:07:12 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","6000" +"0x43b97d023859aee97c85324e6610576f57d2fdbf75a075bc80a204b64b48b29b","5609518","1526259791","5/14/2018 1:03:11 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","5000" +"0x6d4f1ce21b377ff0457768cfba9bc838f492039e24eacab3846475743d8582fe","5614774","1526340489","5/14/2018 11:28:09 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10" +"0x4211b19c9fbd1f52ac1819262f165995ae5827a913ebade9a90b4fb42510f3cd","5614977","1526343625","5/15/2018 12:20:25 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2000" +"0x5a96e186c85e0688418b1b2d14f91f90a243ba0871941978e80440975eaad09a","5614981","1526343709","5/15/2018 12:21:49 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10" +"0x22f5fc60dada854d66c68015950e975c8751687cc88ddabc97f5fb547949ef01","5615044","1526344750","5/15/2018 12:39:10 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10000" +"0xe3fa97f809c8992455f68b17614800c84d270099d858fa365d5dbb2c5d881550","5615048","1526344836","5/15/2018 12:40:36 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10" +"0x1c52f7ca2e413c04b68adc6ad9023d606859afd0bc98344e6c9f187a91e2e09c","5616697","1526369780","5/15/2018 7:36:20 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10000" +"0x493f3c8bc464703a6150913caab754c84ad0c2749ab38ab4b07cfedfb6c2d734","5618285","1526393734","5/15/2018 2:15:34 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1000" +"0x45b53911063e97e7fa0040eba3497b6e02c6212108104f0855ba5bd09c18415b","5618443","1526395947","5/15/2018 2:52:27 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10000" +"0xc0214a7f35a03d8cc5b3f471a0806aec4b686f8ece6ff0564f20b72877bde0d9","5619381","1526410343","5/15/2018 6:52:23 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0x7a52264c054e427a089184bc08888b72e217f94ed9e36477b20438dd475aa174","5619611","1526414338","5/15/2018 7:58:58 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","1" +"0x02e2433ffec03279cafb796f0895c25a5751d6414443936f3f3b304c976f78a7","5619711","1526415787","5/15/2018 8:23:07 PM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","1" +"0xadb37bf08334da5591c179f6dc8d7826aebbc05e956960e77f52367a4b3c7782","5619721","1526415959","5/15/2018 8:25:59 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x1c7b823aba9c4c3477a80c0b620d1701baf69e9da39beb0f08acf17683aaaaf5","5619743","1526416323","5/15/2018 8:32:03 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","1" +"0xbb107bf932a2ee745188391a0a459870f3b9b0d3fd31cbf89ec97860068340dd","5619774","1526416802","5/15/2018 8:40:02 PM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0xaefcd0f8a1cbd231cecaa9bfd9ffb82a6eaaa462","1" +"0x85f302625cb0c2d4c988e2116f27e569b02619c670ba7f62ba68c98d570146cf","5619785","1526416948","5/15/2018 8:42:28 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","1" +"0x13c76d47760d9b145faced9cfaca3aac6096b823ea370281ee855f6143cdafdf","5619936","1526419297","5/15/2018 9:21:37 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","3.636363636" +"0xf0a66ee71319587e88894ada0c858779125b16b3e78e0e2fff2f127443d7c70f","5620267","1526423889","5/15/2018 10:38:09 PM","0x83679548e56033df23a284c3d52d99e4ca570228","0xf4c27b8b002389864ac214cb13bfeef4cc5c4e8d","1" +"0xabe318d78fac4193a9e44edd084b8739334b326f2f07bf65b6d8814efee62028","5635441","1526655487","5/18/2018 2:58:07 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","11.363636363" +"0x8af8be04499caa9fb9c9267df998febf945b83ad2d9d0de67b64a51d63d21731","5635658","1526658883","5/18/2018 3:54:43 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1000" +"0x65e4227f4d1fcb0632049a4c01f2ffc79aadc684f917b399a804163a12e272e6","5636060","1526665052","5/18/2018 5:37:32 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","96" +"0x1bbd2da23c1b38e626c359dffa33d102f9f1794bd14944612f4fed155b0d760b","5636191","1526667059","5/18/2018 6:10:59 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","4" +"0x1bbd2da23c1b38e626c359dffa33d102f9f1794bd14944612f4fed155b0d760b","5636191","1526667059","5/18/2018 6:10:59 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","29" +"0x1138b5db49e0ac84a0d645ed75246f1be29b2cd914574875b2a0e4ef474b1876","5636228","1526667601","5/18/2018 6:20:01 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","4" +"0x1138b5db49e0ac84a0d645ed75246f1be29b2cd914574875b2a0e4ef474b1876","5636228","1526667601","5/18/2018 6:20:01 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","71" +"0x709deec68b7d4692d18932f2e773f0e32e9855ce4e562d8f71625d84ddea3e54","5636416","1526670518","5/18/2018 7:08:38 PM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1" +"0x4a4ba43b8639eedf38a3b7abf1cbd63b93efb69358288086bf433502827090b1","5636483","1526671571","5/18/2018 7:26:11 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","1" +"0x2490e128248a0d28bc9fb21e7eeb3114134742e997c2ac6206fd869ef28622f0","5636772","1526675189","5/18/2018 8:26:29 PM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1" +"0xc87100af7fabd92cb25ea6733d3fe66611613f226dfee25260b4c78d9bd4ba56","5636797","1526675785","5/18/2018 8:36:25 PM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","5" +"0xad243e027282d670f30dde1fecb8b26e11df79ac34b8611622f0cbfdf7cc6495","5637722","1526689503","5/19/2018 12:25:03 AM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0x006236252fa3fb11d31e337c0e4444851666c960","5" +"0x548a73b2bdd05a5d7aea123805514b6417e3651b4c8c5f900e78e6ef7a2c15c4","5637767","1526690317","5/19/2018 12:38:37 AM","0x006236252fa3fb11d31e337c0e4444851666c960","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","5" +"0x91378dd5c07f3daf64a598b2a3ab5f3f8f6cf2875c6e51d7636b1604c4c19d08","5637822","1526691118","5/19/2018 12:51:58 AM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x8756acc53ff497b35649e77540b7cd7ab965580d42586b4cd113e8c86031b3a1","5643090","1526772408","5/19/2018 11:26:48 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0xc7add0214bd4e211fb0dc279b37d415c884586ae844d0b9857e09ac3e23df1a4","5645560","1526810391","5/20/2018 9:59:51 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","100" +"0xddf4d039ced04397d762e212e4dab4a2d1f227ea1d4fca948aa9bf785df9a746","5645583","1526810673","5/20/2018 10:04:33 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","43" +"0xe7dfd8d4a6d06dedb9debe1ad2dacf6844371e31c2d5387c252585d8ffa374db","5645793","1526814154","5/20/2018 11:02:34 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","7" +"0x500d5cd44ce365e0dea6ad28ff0b68d808c3c8abc3667548d305acc7f74c5ab1","5645816","1526814462","5/20/2018 11:07:42 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1000" +"0xe4af9071bb19af59b3d48cd8280892d10afe61673cd0fccc9522df8b450c2002","5645852","1526814880","5/20/2018 11:14:40 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1002" +"0x955d3e94035c4bbc6aa8e0ed26b5bea87aae3007342450f875d1e278c90ac854","5645887","1526815418","5/20/2018 11:23:38 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10000" +"0x971ae9914d348e5c4e3f93ed6db042756456d9619ad439a971d168a552905711","5645911","1526815791","5/20/2018 11:29:51 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10000" +"0xdb2c787b89b01a449e779d873fe81c673c3df1ca31f369731336defbb660bb77","5645947","1526816323","5/20/2018 11:38:43 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","60" +"0x33012b882a58b8a0fe29d8cbf53955f028119687179a91a165d0a0c0a41fbed3","5646007","1526817218","5/20/2018 11:53:38 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","30000" +"0xdc5be4fdb7b937f1d18df9dee89568c17f7bce25d9f03e7ddcd92bd1984d1629","5646092","1526818684","5/20/2018 12:18:04 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","3" +"0xbd5cc3a154a601bd02ce11777cca4d933900219e9a3fccfeb17b49c930e33863","5646092","1526818684","5/20/2018 12:18:04 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xd6edbaf05155f60bf7221ea615be81f0aed08f8cb4fd78c9f950d9b7773edb2c","5646092","1526818684","5/20/2018 12:18:04 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","60" +"0x9a87a1f421d926b0110686373fdb40845b3c6a0cd18510f2da9c65f14f810dfa","5646152","1526819583","5/20/2018 12:33:03 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000453" +"0xc021b163f7bdde987f9ca65455662066134748377b948f0c251864b9e683654b","5646257","1526821075","5/20/2018 12:57:55 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00042" +"0xa4de2c0e6fbb9d73ab5261c222ce8e8aa4d644fbee2bd5c9ab5cb636ce2e28f3","5646279","1526821379","5/20/2018 1:02:59 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","30000" +"0x1ae9db1f82f9a62cff231ff77b83e7e19d2e98bb353687fc1e5e8f9342b2162d","5646319","1526821871","5/20/2018 1:11:11 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x2583d78cb918abbefbf75c7752509c1639b4f7ebf390a0035540cbc0c6ea2903","5646418","1526823283","5/20/2018 1:34:43 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","100" +"0x2583d78cb918abbefbf75c7752509c1639b4f7ebf390a0035540cbc0c6ea2903","5646418","1526823283","5/20/2018 1:34:43 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","15" +"0xd6fc322023b1ad70f81f3acb3009b9a0c1b2fc8a4dcff1e3dd66f7128e2b5f19","5646489","1526824463","5/20/2018 1:54:23 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","40000" +"0x9eaa77178a76deb314d7391898a87bb17dedd3a820b36edfd791ff281c2ce2e6","5650156","1526880342","5/21/2018 5:25:42 AM","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001593234" +"0xcd43b4b2e8ca19d7baf3ca1fea97b05576515a09ad83933bf874c8d0d98f4daf","5653526","1526931430","5/21/2018 7:37:10 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","5000" +"0x003468c540431dba474f815ece2b7bf017adc06c714e3b8cd4f20751122faee0","5657066","1526985720","5/22/2018 10:42:00 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x003468c540431dba474f815ece2b7bf017adc06c714e3b8cd4f20751122faee0","5657066","1526985720","5/22/2018 10:42:00 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x003468c540431dba474f815ece2b7bf017adc06c714e3b8cd4f20751122faee0","5657066","1526985720","5/22/2018 10:42:00 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","2000" +"0x84d85c6e382af0c6ec7a09e7062d0622324975fdc006340b5cb91564384d3b07","5657161","1526987093","5/22/2018 11:04:53 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","50" +"0xe9405d310e1d30c0e74a429ea0d1bbfddcfb0aaa6792e5afa1cb6c478af3eb0d","5657189","1526987449","5/22/2018 11:10:49 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0xa705a8fc9d9a26a01c146e49986e4e9fccc8b7ec5eeaf656c3158c145e406846","5657235","1526988190","5/22/2018 11:23:10 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x91b0ff3ea6faddf17b5db418749b9e7f263e0c0796a393da1d3e0ff0345f0d82","5657256","1526988559","5/22/2018 11:29:19 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000" +"0x60fe1639d55736dcc234fff2b749e23a27c3799b52eb150b2bc450527cacd606","5657324","1526989674","5/22/2018 11:47:54 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1.1" +"0x91c4acd380954453f07b722a15593ff76b7ac5775f86e8c247023e7c12809f70","5657334","1526989885","5/22/2018 11:51:25 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.003" +"0x91c4acd380954453f07b722a15593ff76b7ac5775f86e8c247023e7c12809f70","5657334","1526989885","5/22/2018 11:51:25 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.1" +"0xce43fca34504225d7adbbc3b8ae456bbaf6a8f017651ae6bffacfead9e77b2c5","5659939","1527030438","5/22/2018 11:07:18 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","250" +"0xaa8bdb8d177e61e222019f4dee52686f24685e86e21b5618d48774190fa0e967","5660007","1527031350","5/22/2018 11:22:30 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x69188655f05c14bd053fab9c526d5cca9ab6edd07fbed6b44025c05b89e4e571","5662680","1527073331","5/23/2018 11:02:11 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","34" +"0x7dfae419137996aeae18ecbfc8d9120f63435b8d1a50b846e4627e4a920e882c","5662733","1527074104","5/23/2018 11:15:04 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","300" +"0x2292298bbad6042e359f7e28656aa5e82718da9808fb5d9f077b19d48ec1f844","5662760","1527074497","5/23/2018 11:21:37 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.01" +"0x77a48ed81263e47b34315a042359c1f44d2475af96bfa0447f343768c003566c","5663143","1527080312","5/23/2018 12:58:32 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x004e344251110fa1cb09aa31c95c6598ed07dce6","100" +"0x77a48ed81263e47b34315a042359c1f44d2475af96bfa0447f343768c003566c","5663143","1527080312","5/23/2018 12:58:32 PM","0x004e344251110fa1cb09aa31c95c6598ed07dce6","0x28b8e8aa7304f92e2d816e52f3bbfaa5fbe03562","58.333333" +"0x989f1c65c47c81b6205dda692be600c10c5226cfd34e0bd69643d36d76d16a33","5670361","1527190854","5/24/2018 7:40:54 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x989f1c65c47c81b6205dda692be600c10c5226cfd34e0bd69643d36d76d16a33","5670361","1527190854","5/24/2018 7:40:54 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","100" +"0x5386bc315971411d3414edf08dd6f91d43721371c93caad2d3b2d814c69f46c3","5670516","1527193307","5/24/2018 8:21:47 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","100" +"0x29b6dee059091b13db7c9b1533ed8c519dea6316d51a28aa8b525765ed33163c","5670725","1527196689","5/24/2018 9:18:09 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","50" +"0x5c440a5c2527c424a8990d9768281bcba722d2e59a57c45fd9ff2a055b9141ab","5670786","1527197588","5/24/2018 9:33:08 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","250" +"0x760fd3b57bf4bcb613420210b95c1282ae22ae96a030233cb64a36ef46b6ef93","5670816","1527198009","5/24/2018 9:40:09 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x760fd3b57bf4bcb613420210b95c1282ae22ae96a030233cb64a36ef46b6ef93","5670816","1527198009","5/24/2018 9:40:09 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.01" +"0xff88ee7d4b81c2967106204cb7a70c883dd54399357a0be10342a315085ddffc","5670954","1527199997","5/24/2018 10:13:17 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1000" +"0x08d1be88c2a23cec2cbbefc95d91604ba1aaf6276a0c8cb1bf785aadec871256","5671047","1527201432","5/24/2018 10:37:12 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10000" +"0x27a26aa22814660ebbf8c2c92e714939b0d781457ecf4adbc335a05fe4551882","5671083","1527202062","5/24/2018 10:47:42 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","100000" +"0xfc61e2cc1ecc19b4f3111d99f4cf4526a0ef6aeae62184bbfe7e17030791c3fc","5671108","1527202326","5/24/2018 10:52:06 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","40000" +"0x4cfa74652d39ac79c2e3349746e5f908e8f652ee98b7bade17e3c7cf7c968341","5671124","1527202583","5/24/2018 10:56:23 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1000000" +"0x02b90d4e4901eee371f3344ae94a6c7cd7f8f623dd9ce67710c727b3b4f78aad","5671445","1527207512","5/25/2018 12:18:32 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1100000" +"0x217908c8013725c3e75b98bfd3d35cea52d71d30e74c6709c2c52c9be7d7193d","5673021","1527231183","5/25/2018 6:53:03 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3a0cca1a832644b60730e5d4c27947c5de609d62","1" +"0xb70ffea549bbdfed10ceef87672905e8ccea53b041a57f5cf51f074755750923","5673963","1527245557","5/25/2018 10:52:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa003e894327de1f5d0fd13cdd56600bffef9a017","52.435009212" +"0xb70ffea549bbdfed10ceef87672905e8ccea53b041a57f5cf51f074755750923","5673963","1527245557","5/25/2018 10:52:37 AM","0xa003e894327de1f5d0fd13cdd56600bffef9a017","0x3d48587aa16d91a2e37198b5b428674bdaddf038","52.382574203" +"0x1cb50c5da05c02f31f2113c55631bae194eff24af0cebd9fdde6fd2ec8369fb4","5677290","1527297383","5/26/2018 1:16:23 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x4d71b91d46fa7247870804601e53ad9330cc7dce","2830.28546" +"0x1cb50c5da05c02f31f2113c55631bae194eff24af0cebd9fdde6fd2ec8369fb4","5677290","1527297383","5/26/2018 1:16:23 AM","0x4d71b91d46fa7247870804601e53ad9330cc7dce","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2830.25998743" +"0x31422613a093f9e3970f1de0e0fc309e68c8dc4c4fb37bc223b2900606c036b7","5678987","1527323137","5/26/2018 8:25:37 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","2821.79460362" +"0x092c1f1591acd56087a14dda36524440972bf9a049968d6285672d3f4be7eae1","5679135","1527324952","5/26/2018 8:55:52 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","100" +"0x2846c83edb9d470579abaa3b9f9c928066f8f39a96a395dae799cbdfe0559842","5679247","1527326532","5/26/2018 9:22:12 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1000" +"0x377471403b9c0a24e7617d0f124b9374130a663a108d7328cc66b875ea59d01e","5679807","1527335428","5/26/2018 11:50:28 AM","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","50" +"0x2d8a1b093c9ecd8f148710c09a03286c577fd73cbfe02d56cb928c12f1e71d5a","5681108","1527354309","5/26/2018 5:05:09 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","3000" +"0xcea7f058fd39e9e4efaec0457c82f92fd410443edaef2723e6fbd34fc9ac7698","5681592","1527361860","5/26/2018 7:11:00 PM","0xd6fc84a46dc9631999b64caf8ccf9f942c8fd8f2","0xafa72fdd9aff5177fa402469c688c21998382854","11.111111111" +"0x2c4b934f3aff7c833d83bf4b07b12be62b66c1f637036ec738ecf2e7e4f87d81","5681601","1527362059","5/26/2018 7:14:19 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3a0cca1a832644b60730e5d4c27947c5de609d62","131.087523032" +"0x6fd7c86d89d3fc128ecf851361546489b6cda6f950345c9465105657adb664ea","5681977","1527367818","5/26/2018 8:50:18 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1079.22109211" +"0xad3cb676996d95c97a17b1d29d53e64e850a4020e7e0299b131f6b9e1e5e3fac","5682124","1527370082","5/26/2018 9:28:02 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.0011" +"0xad3cb676996d95c97a17b1d29d53e64e850a4020e7e0299b131f6b9e1e5e3fac","5682124","1527370082","5/26/2018 9:28:02 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0xb58fe5f823a987e8e51e5b1b4c58efd5d959cf94c6d02938c9d9b363aae1d7f1","5682380","1527374242","5/26/2018 10:37:22 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","99999" +"0x9e910136e2de5679c55ea1b9944d8aa173a5e83e7ff3a184e745aae8c23e8484","5682465","1527375535","5/26/2018 10:58:55 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","4000" +"0x9d9e925d96e9043e1afd6028f0c2a3f09ef666efc1d29d9c74589a4a79b005ef","5682496","1527376034","5/26/2018 11:07:14 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","4000" +"0x9a59d2132feb4d221ec0c7c7c5a59d55c93847ec9f1961b83b6f3ac36ae8158b","5682559","1527376925","5/26/2018 11:22:05 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x9a59d2132feb4d221ec0c7c7c5a59d55c93847ec9f1961b83b6f3ac36ae8158b","5682559","1527376925","5/26/2018 11:22:05 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x141a839d8a1d47c36071cc1ca181f57e59e3df7139e1eda96c7a21c6864756ac","5685552","1527422925","5/27/2018 12:08:45 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0005" +"0x3e69958a73366e45873f68d401709b533993520495d86aea51ed4e5274b81602","5685697","1527425080","5/27/2018 12:44:40 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0005" +"0x3e69958a73366e45873f68d401709b533993520495d86aea51ed4e5274b81602","5685697","1527425080","5/27/2018 12:44:40 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0005" +"0x3e69958a73366e45873f68d401709b533993520495d86aea51ed4e5274b81602","5685697","1527425080","5/27/2018 12:44:40 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x2dd65d618553a8d4bc1021aff99a219f8346f4f455a3fb58b4a5eab6aab22568","5685841","1527427602","5/27/2018 1:26:42 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x706b77347b20dc6b08e3d64bba49dc763f1004d8453e7c17a2d1b2528743b760","5687294","1527449847","5/27/2018 7:37:27 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","40" +"0x753a881eb31efaafe6e3080b78de5a921436b9e94d6e8bb1c76ec9cabce12822","5687353","1527450675","5/27/2018 7:51:15 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x4d71b91d46fa7247870804601e53ad9330cc7dce","20" +"0x753a881eb31efaafe6e3080b78de5a921436b9e94d6e8bb1c76ec9cabce12822","5687353","1527450675","5/27/2018 7:51:15 PM","0x4d71b91d46fa7247870804601e53ad9330cc7dce","0x57b00c981363c67b11e07eaa71364bf20e8025fe","20" +"0xe354aae4d8ca59dad213a17c00332403c0a870e77958ee32949bb1f84b89622e","5687985","1527460162","5/27/2018 10:29:22 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","500" +"0x3bb2dfe07accce5bdff1f40567b6135eeedf7953db78487ec69283d89fee05e3","5687993","1527460280","5/27/2018 10:31:20 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0015" +"0x9cf5af9a8f755656e969fc599f1bdd147dfd4cc362be7ac8f72571318372ff76","5688146","1527462607","5/27/2018 11:10:07 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0x6c84448ecc8c7a394851262033f2cb574b4120c9b65bd680382fcdb1cd756110","5688437","1527466771","5/28/2018 12:19:31 AM","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0x242a1f8289a2d66b559d4b3bd1c88b7630294e868437880ab6650790f67d77f8","5688443","1527466841","5/28/2018 12:20:41 AM","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","20" +"0xc593a00f7e1af7f3b9add4e019a6ac211388d76f0a65844841a47d28691380f2","5688459","1527467031","5/28/2018 12:23:51 AM","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","20" +"0x84e2aee566e72c13b23992d4cef2306d25759e7ac91227524a64249ac6880f6c","5690399","1527496500","5/28/2018 8:35:00 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","640" +"0xb13b107a1684491fa48e2b46bc090f9be3aa3e89f3ffae2f6bc31d2d995d7e1c","5690413","1527496671","5/28/2018 8:37:51 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0xcf54a25646cc658085b48ff6ac71a53f4ecd353a1fd085bae9a4fdd337e2736b","5693459","1527542751","5/28/2018 9:25:51 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xa003e894327de1f5d0fd13cdd56600bffef9a017","131.398812664" +"0xcf54a25646cc658085b48ff6ac71a53f4ecd353a1fd085bae9a4fdd337e2736b","5693459","1527542751","5/28/2018 9:25:51 PM","0xa003e894327de1f5d0fd13cdd56600bffef9a017","0x3a0cca1a832644b60730e5d4c27947c5de609d62","131.267413852" +"0x03294aece962b31682885b7ddbdff3139f6a2e81540c392b4390d0c6f2493a4c","5693731","1527546718","5/28/2018 10:31:58 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","300" +"0x84c61f22b3e4dd65815e7c77716e96be2145c6ccf248a938ae871dcea3ca60df","5693861","1527548703","5/28/2018 11:05:03 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","20" +"0xe3cc08385eb9aeabe157c6136358dfbfcb421db75b7d7a0cdb82cae6768f1e3e","5694209","1527554448","5/29/2018 12:40:48 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xea73f29327a2f30e04a2b81f104248fe554527c35d7db78dbb415b7134af84a9","5696855","1527594570","5/29/2018 11:49:30 AM","0x3a0cca1a832644b60730e5d4c27947c5de609d62","0x3a0cca1a832644b60730e5d4c27947c5de609d62","1" +"0x8e241fd9a6fe42a522e995230407bbb81f55dc37c00f8ed9b23e5a64295a26b8","5696856","1527594574","5/29/2018 11:49:34 AM","0x3a0cca1a832644b60730e5d4c27947c5de609d62","0x3a0cca1a832644b60730e5d4c27947c5de609d62","1" +"0x1ec9db0db88431caae4373d555f99124034ebf1ad284ea6e867e387e086f41e8","5698840","1527625201","5/29/2018 8:20:01 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1000" +"0x77a42288b53b6940d3bbb6010f09b2f33a9978bf4fbd0b93b440762f702bacf0","5698901","1527626111","5/29/2018 8:35:11 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0xa0563c5d30abddec058b72a4b097b752b037de6a42d102660ed1843814e0e404","5698946","1527626807","5/29/2018 8:46:47 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.004" +"0x5fd1f204913968d979974d2d7570112dd355bd26abdd913c5f4a979cdc883a3e","5699405","1527633856","5/29/2018 10:44:16 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","69.24441959" +"0x1f4924b6a17d8857660160a24c7afd76141afac97f564b6faf3a9a552ec64497","5699457","1527634560","5/29/2018 10:56:00 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","57" +"0xd4c89390f541bb8f54ed7e1b39552c30311612c093ea096c3109165ed5a082ec","5699505","1527635286","5/29/2018 11:08:06 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","150" +"0xd4c89390f541bb8f54ed7e1b39552c30311612c093ea096c3109165ed5a082ec","5699505","1527635286","5/29/2018 11:08:06 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x2adaaa6ea4535f7027bf38233e4898067ed1654175844b205c7d7a7084b532d8","5699624","1527637077","5/29/2018 11:37:57 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","100" +"0xabd5082d2ba6e5122902ba25393477c08f246ca34f26b526ba812b5260c6f7a7","5699639","1527637264","5/29/2018 11:41:04 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.001" +"0x91830ed4d636bb19f4905c7ab8d7a142184be438e13da46b64a75c204badb549","5705253","1527723893","5/30/2018 11:44:53 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","11" +"0xed19df721cca366da9388d60882e6be21326e75a1b2004af278d404cf7f1de26","5705278","1527724287","5/30/2018 11:51:27 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","60" +"0xcc02b2dcef77baff41af4d50fce554c0c43f545013510dc830bd9d491457c870","5705308","1527724686","5/30/2018 11:58:06 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.001" +"0x17eee2df1c4c0b637b8f55c358b8422d39787f5fc2da48d3eff91744653ffbc3","5705315","1527724773","5/30/2018 11:59:33 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0x010fbb0a3c7259877d40a24aaf8d778103849c99f06b937f310f1ed4f780a9ad","5705588","1527728928","5/31/2018 1:08:48 AM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x49d7d2b625bc0ad39db77a1afeeb9b960d7af1de5b731bb14ecf0a3818c10131","5706132","1527737342","5/31/2018 3:29:02 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x2b171b81b63b7f07a492d4e1d8af93ca216d56f8","23" +"0x7fffeff622c98d5e016e33608dae6d0812c196ec090ed0bd0bac9dd4a566ebe8","5710777","1527808038","5/31/2018 11:07:18 PM","0x3ebb8a06d6432f9e26532d0a4bf8d45976f4cd37","0xa5903f531662a077a58c33c872ceb9297cedfe4f","1" +"0x821b1cd74d71ef07bf4db750ffd15693d1e6ee6a62a36bb0b0dfff561985a193","5716220","1527892107","6/1/2018 10:28:27 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","25.01234567" +"0x1195e37fc43b615a764e745b7ab94b7154de88517f2cd35eed26f6da8765094b","5716268","1527892697","6/1/2018 10:38:17 PM","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00402" +"0x2ab7621fd26b54ce18b7f645bc1468dc3a20cf5ec0bfb38064ccb197480aa514","5716381","1527894337","6/1/2018 11:05:37 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x2ab7621fd26b54ce18b7f645bc1468dc3a20cf5ec0bfb38064ccb197480aa514","5716381","1527894337","6/1/2018 11:05:37 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xddd17282c163d94eb74fe5d95c5189901fc54ed5a61a3d6b98f8a6ae3db264f0","5719687","1527944985","6/2/2018 1:09:45 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x86f01a471f9f6ca77e6f8a0ac0c79bf607706b1cd3ed65cb1b97116751ac8e55","5719727","1527945650","6/2/2018 1:20:50 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","30" +"0x86f01a471f9f6ca77e6f8a0ac0c79bf607706b1cd3ed65cb1b97116751ac8e55","5719727","1527945650","6/2/2018 1:20:50 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","30" +"0x86f01a471f9f6ca77e6f8a0ac0c79bf607706b1cd3ed65cb1b97116751ac8e55","5719727","1527945650","6/2/2018 1:20:50 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","20" +"0x66ee1f76a40dddb39b3a1780618101da2f9a45b092b8096150ff0d74974f24fa","5719789","1527946576","6/2/2018 1:36:16 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0x66ee1f76a40dddb39b3a1780618101da2f9a45b092b8096150ff0d74974f24fa","5719789","1527946576","6/2/2018 1:36:16 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x66ee1f76a40dddb39b3a1780618101da2f9a45b092b8096150ff0d74974f24fa","5719789","1527946576","6/2/2018 1:36:16 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x66ee1f76a40dddb39b3a1780618101da2f9a45b092b8096150ff0d74974f24fa","5719789","1527946576","6/2/2018 1:36:16 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x044cadc9cc7e71d0324ac6a9dd0d0a6be4c76ffb79979ad8b32c639912efa76e","5720062","1527950896","6/2/2018 2:48:16 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","50" +"0x83890b8dbaa77ac736a1c4bf5cf605eb3388c9c13d95b75c97455dd1a994c7c2","5720088","1527951233","6/2/2018 2:53:53 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","34.483" +"0xeadd8bf9e4c7f1b28ff517edbfb7aa32f69913eb3bfa53778ca61d5b2ce677f3","5720153","1527952262","6/2/2018 3:11:02 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","112" +"0x5b43ceab8af33e2a3c5be03c2fa26582005def50aff1d1c9f9cc9b20489a3707","5720186","1527952619","6/2/2018 3:16:59 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","20" +"0x5b43ceab8af33e2a3c5be03c2fa26582005def50aff1d1c9f9cc9b20489a3707","5720186","1527952619","6/2/2018 3:16:59 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.01" +"0xf6d40982fe4e749681adcdf6f7ae6bf7298082b3c4e1a0113219cd32b2cc3ed8","5720399","1527955772","6/2/2018 4:09:32 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","5" +"0xf6d40982fe4e749681adcdf6f7ae6bf7298082b3c4e1a0113219cd32b2cc3ed8","5720399","1527955772","6/2/2018 4:09:32 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","1" +"0xb41b1b2d25e4f787cff4f02dfb17ecd86299fa99fd766e925ab4fd7cd1fe98c5","5720437","1527956396","6/2/2018 4:19:56 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.002" +"0xb41b1b2d25e4f787cff4f02dfb17ecd86299fa99fd766e925ab4fd7cd1fe98c5","5720437","1527956396","6/2/2018 4:19:56 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xe272728d03e64778704b5f754f172a2ed11f8bc5d624b56955f20b06010d668a","5720759","1527961433","6/2/2018 5:43:53 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xe272728d03e64778704b5f754f172a2ed11f8bc5d624b56955f20b06010d668a","5720759","1527961433","6/2/2018 5:43:53 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xe272728d03e64778704b5f754f172a2ed11f8bc5d624b56955f20b06010d668a","5720759","1527961433","6/2/2018 5:43:53 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xe272728d03e64778704b5f754f172a2ed11f8bc5d624b56955f20b06010d668a","5720759","1527961433","6/2/2018 5:43:53 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xeb1cf9d15b5601e9b757cc8d68c361e044a70c995953c976c6dad135ac794dcb","5721982","1527980313","6/2/2018 10:58:33 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.003" +"0xeb1cf9d15b5601e9b757cc8d68c361e044a70c995953c976c6dad135ac794dcb","5721982","1527980313","6/2/2018 10:58:33 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xeb1cf9d15b5601e9b757cc8d68c361e044a70c995953c976c6dad135ac794dcb","5721982","1527980313","6/2/2018 10:58:33 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xeb1cf9d15b5601e9b757cc8d68c361e044a70c995953c976c6dad135ac794dcb","5721982","1527980313","6/2/2018 10:58:33 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x7c73f9d1bcc084bd5b7ef1e47de36dfb4b18256f1fcb42187c100d78541c2840","5722204","1527983715","6/2/2018 11:55:15 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x7c73f9d1bcc084bd5b7ef1e47de36dfb4b18256f1fcb42187c100d78541c2840","5722204","1527983715","6/2/2018 11:55:15 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x7c73f9d1bcc084bd5b7ef1e47de36dfb4b18256f1fcb42187c100d78541c2840","5722204","1527983715","6/2/2018 11:55:15 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x336ade1699b6990a9f79e2f6789f09417e87cb8df76c36e4d198334b063aaac3","5722259","1527984607","6/3/2018 12:10:07 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x336ade1699b6990a9f79e2f6789f09417e87cb8df76c36e4d198334b063aaac3","5722259","1527984607","6/3/2018 12:10:07 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xbb96be863ad163176670695e74de654b1594b86ce4f2f87134b4a03a6aea8c4a","5724399","1528017394","6/3/2018 9:16:34 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","3" +"0x4c974821e4f0cabe804b2fc45aefed056116a0fa3ebdaa2e10bbabb174d0c676","5724404","1528017437","6/3/2018 9:17:17 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","3" +"0x460bf285c93b0d5f72409265c1462961fd9e3817253d477a23fb778e19d6cc50","5724407","1528017471","6/3/2018 9:17:51 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","3" +"0xc3844d0da1593409355e75aa8d81c56c90f4b50bf0cda2163a309dd945a00cb1","5724416","1528017593","6/3/2018 9:19:53 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","3" +"0x482d794aac2a1743444fcc069aaab0eec04a2015707591e659bc2674f3c97a11","5724454","1528018048","6/3/2018 9:27:28 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec","1" +"0xb6c31db9f63dabc4eaace8c35aeb4a5bf7b7e25d36790f9b8bc0216d708ac459","5727467","1528064789","6/3/2018 10:26:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3eee84616862c251f95dbb7474a73575a2862077","263.036828575" +"0x710820f5f670ee9c4ef4c4a54979db2df2812e3b69ce59dc9c3380152509585a","5727529","1528065694","6/3/2018 10:41:34 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","13.037" +"0xb4e5026020f2459800c473a130d9e44d3ffb1cbe6f0d08639ad7ef39dc829744","5728028","1528073564","6/4/2018 12:52:44 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.99" +"0x9bae20a4e11b5f344e40e04d6f36b52dbbc3cf5d45476a21cd34480130817a8d","5728088","1528074496","6/4/2018 1:08:16 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x9bae20a4e11b5f344e40e04d6f36b52dbbc3cf5d45476a21cd34480130817a8d","5728088","1528074496","6/4/2018 1:08:16 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x9bae20a4e11b5f344e40e04d6f36b52dbbc3cf5d45476a21cd34480130817a8d","5728088","1528074496","6/4/2018 1:08:16 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x5fcddcf5dfa641a569524d33e26f2352689b5448ee472e1bd515eed991a9ac52","5728114","1528074994","6/4/2018 1:16:34 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.003" +"0x721366bf424e9133f697a9e21d3b13200710056f5f234712ad026a0edca87c6f","5728238","1528076999","6/4/2018 1:49:59 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.5" +"0x721366bf424e9133f697a9e21d3b13200710056f5f234712ad026a0edca87c6f","5728238","1528076999","6/4/2018 1:49:59 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.5" +"0xa4da9d2da67e889e2014266766b788a8e74c64e541dba88a9445903aa627003a","5728278","1528077541","6/4/2018 1:59:01 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xa4da9d2da67e889e2014266766b788a8e74c64e541dba88a9445903aa627003a","5728278","1528077541","6/4/2018 1:59:01 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xa4da9d2da67e889e2014266766b788a8e74c64e541dba88a9445903aa627003a","5728278","1528077541","6/4/2018 1:59:01 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xfd3fee482e063d2227e112829b82b38c3b3c014eb9cf3c8c2eefce08949fd8ac","5728314","1528078027","6/4/2018 2:07:07 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0xfd3fee482e063d2227e112829b82b38c3b3c014eb9cf3c8c2eefce08949fd8ac","5728314","1528078027","6/4/2018 2:07:07 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0xfd3fee482e063d2227e112829b82b38c3b3c014eb9cf3c8c2eefce08949fd8ac","5728314","1528078027","6/4/2018 2:07:07 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0xfd3fee482e063d2227e112829b82b38c3b3c014eb9cf3c8c2eefce08949fd8ac","5728314","1528078027","6/4/2018 2:07:07 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x32d505c225966cbe8662adb7502556dc8a5f3703b62ffd570e622024c70af8a2","5728515","1528081117","6/4/2018 2:58:37 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","6.52070015" +"0x00e94e720801ba676fe20a38b4333e6913f98daacd3ed1d70706b62336c7d657","5728521","1528081186","6/4/2018 2:59:46 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x00e94e720801ba676fe20a38b4333e6913f98daacd3ed1d70706b62336c7d657","5728521","1528081186","6/4/2018 2:59:46 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x64fdd2bf9923e7ea7bfcaf4e9d6a942245629263ad0461d1dd37b563bcc06e93","5728571","1528081896","6/4/2018 3:11:36 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","25" +"0x52de155b3157f1a22d7148d5f0ef4e90768af06dfded340ead6f111b9fe88d4c","5728587","1528082126","6/4/2018 3:15:26 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.0001" +"0x52de155b3157f1a22d7148d5f0ef4e90768af06dfded340ead6f111b9fe88d4c","5728587","1528082126","6/4/2018 3:15:26 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x3416342ce2f89bb7eeee62b655a0f7d824a6fa3e06dbfa631f8043b922c89a26","5728663","1528083287","6/4/2018 3:34:47 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","50" +"0x7f2c97f8a68f67dc71095e8fa2b4d626fd5fe2a1155c641d98b59663431fefb3","5728766","1528084779","6/4/2018 3:59:39 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.2" +"0x7f2c97f8a68f67dc71095e8fa2b4d626fd5fe2a1155c641d98b59663431fefb3","5728766","1528084779","6/4/2018 3:59:39 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x96cd5069665f3340226ca6336b50d5d1a1ba3cb05ca2128445f923041c79743d","5730908","1528117716","6/4/2018 1:08:36 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","20" +"0x80266b8dcc8e20c20aa95eaab6b6694069163974fafa5e28004f3f2c0ede6a0f","5730953","1528118375","6/4/2018 1:19:35 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","90" +"0xd95a408a493d166c60bdb68733cdce415c6567229b61de1ecd3ba5d96eb634ce","5730967","1528118590","6/4/2018 1:23:10 PM","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","0x3eee84616862c251f95dbb7474a73575a2862077","90.00000001" +"0x824338391f930d7db25661f3bd62c6ee54d1e100afe4f29c2dee8815be450e37","5731083","1528120301","6/4/2018 1:51:41 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.1" +"0x824338391f930d7db25661f3bd62c6ee54d1e100afe4f29c2dee8815be450e37","5731083","1528120301","6/4/2018 1:51:41 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.01" +"0x206f009f8ef263babb4da385351bd2e2d7a5b0330223e2c4e7bc3956d342b93d","5731657","1528128610","6/4/2018 4:10:10 PM","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","0x004e344251110fa1cb09aa31c95c6598ed07dce6","69.142857142" +"0x206f009f8ef263babb4da385351bd2e2d7a5b0330223e2c4e7bc3956d342b93d","5731657","1528128610","6/4/2018 4:10:10 PM","0x004e344251110fa1cb09aa31c95c6598ed07dce6","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","41.01639344" +"0x0b43b783cd6b068713ccb1a6f041fc2d19d57cf3bd3e2492e423aa7309a53dfd","5731668","1528128823","6/4/2018 4:13:43 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x004e344251110fa1cb09aa31c95c6598ed07dce6","82" +"0x0b43b783cd6b068713ccb1a6f041fc2d19d57cf3bd3e2492e423aa7309a53dfd","5731668","1528128823","6/4/2018 4:13:43 PM","0x004e344251110fa1cb09aa31c95c6598ed07dce6","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","41.01639344" +"0x54fb2c32f61fd8efb7d93c2e1c770ebaa137d478e1e975734503ba18ea3630d8","5737548","1528218935","6/5/2018 5:15:35 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0099" +"0x54fb2c32f61fd8efb7d93c2e1c770ebaa137d478e1e975734503ba18ea3630d8","5737548","1528218935","6/5/2018 5:15:35 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0102" +"0x855781fd61372b712fbca0d4369ed5fae8b9aaf0235002569b3032bf1c579c7f","5737575","1528219392","6/5/2018 5:23:12 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xba3c44254f9a0697f94e12499f0f224cf5d944d1","50.65689947" +"0x993cdaffdad9cdc457a9c8d87bb672ea492dfb55e2d1cc1de1532fa4fcc54249","5737582","1528219520","6/5/2018 5:25:20 PM","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x2c9c98be401abba80a66677bad04d9aef1c1c3c24c9d6cf973f175a79e8508de","5737648","1528220410","6/5/2018 5:40:10 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","55" +"0xfa3d3f3de62fd58a62a7ca03293ffc12bac5567ac4ff9774700e1da22260ef02","5737682","1528220902","6/5/2018 5:48:22 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","15" +"0x4da48cc828aa38a525c12038913392216df8f9c5713ccbe1d440cde45a7ca135","5737692","1528221026","6/5/2018 5:50:26 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","25" +"0xee0a9a73a91481831fd4e40e2bc788d1b4a63d3be71d899ba83f1cd1ea76a5c6","5737696","1528221084","6/5/2018 5:51:24 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0195" +"0x771ba24e509812e00ce748c50221c729a46a4e4b9d90b923b6f77d0786ac7c04","5737789","1528222527","6/5/2018 6:15:27 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0195" +"0x72e3096388fe0a069474ccdd7d60fbd50790da5e6cc7e69319876ce7133778c4","5738631","1528236329","6/5/2018 10:05:29 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","111.194" +"0xd1968e7645455d2250496c80792242024cd8cfafd8b3b8a78314565432548989","5738744","1528237997","6/5/2018 10:33:17 PM","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","0x54b0de285c15d27b0daa687bcbf40cea68b2807f","3.2258" +"0x121cd1dde4035fb1b80d8cc3e022ea725aa3f3b7f9df55f031532ed6031593ca","5738862","1528239666","6/5/2018 11:01:06 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","3.868" +"0x8de95e53d5e496b5c08076f80bafbf16b4129094a8cbc4caa802eb520a4f559b","5738918","1528240596","6/5/2018 11:16:36 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x3eee84616862c251f95dbb7474a73575a2862077","299.028" +"0x59e44a0361bee1315170a5637cf54dad57eddb97a106728182bbffe84451a500","5739299","1528246065","6/6/2018 12:47:45 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","3" +"0x59e44a0361bee1315170a5637cf54dad57eddb97a106728182bbffe84451a500","5739299","1528246065","6/6/2018 12:47:45 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","2" +"0x59e44a0361bee1315170a5637cf54dad57eddb97a106728182bbffe84451a500","5739299","1528246065","6/6/2018 12:47:45 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x59e44a0361bee1315170a5637cf54dad57eddb97a106728182bbffe84451a500","5739299","1528246065","6/6/2018 12:47:45 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","5" +"0xf8db8c5a001f9f42e60851419ac3e06126275636352804b992273125a46586d1","5739326","1528246484","6/6/2018 12:54:44 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xf8db8c5a001f9f42e60851419ac3e06126275636352804b992273125a46586d1","5739326","1528246484","6/6/2018 12:54:44 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x938525016817bd880018edca81581923c3f04ad25997bca2aaa93613a4093e96","5740464","1528263822","6/6/2018 5:43:42 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2b540655e65ea10142ec0c86431187fa70f6d136","9.549" +"0x6f90c7c3470557ca7bd512f0f119e7f4c6b3d0393edc9bd487b16a1ff0b8e1fb","5742019","1528287365","6/6/2018 12:16:05 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xf6388932b988e19587879cf914c4bae306b04984","29.678841331" +"0x79ea4dc88bbb6cbaf41e127f0895dc02b612239056c0d09c8db981cb0c885d1e","5744314","1528323054","6/6/2018 10:10:54 PM","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","2000" +"0x2ee64d7c9af81a9b3151b9cde09047d0146b1125d3672fe8ba4141ce79259232","5744335","1528323371","6/6/2018 10:16:11 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","30" +"0x30d62c31dea21ffdcb959c683a25a3f4a797074000d1bb762083adbe4ffcc6a4","5744390","1528324222","6/6/2018 10:30:22 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.95" +"0x034fdd642e51b8c28666681755e0853cec4471b9d9518b4bb7dca984b20bca6d","5744391","1528324234","6/6/2018 10:30:34 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","50" +"0x4cc8aa13109ceeeae1f93f63b8fdbdcc4356ef3945bdc33794a79ede244e6551","5744406","1528324584","6/6/2018 10:36:24 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x5acb6df5cd5a544264a7daea725bb9ca7b025ba41ea26cf7f6ebb40c10648a48","5747041","1528365007","6/7/2018 9:50:07 AM","0xf4c27b8b002389864ac214cb13bfeef4cc5c4e8d","0x83679548e56033df23a284c3d52d99e4ca570228","1" +"0xd83c9d9af4f5b6fdcbf0696b6d3069e4e80506454216b11d5c063edbba9b194d","5750162","1528412846","6/7/2018 11:07:26 PM","0xa06f4cb4e469a861add3f5674c06a43d5db3188e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","100" +"0xfc9b0fdfa905ee794850838d0fcf781b444076664873f13caab4636ba5db621e","5750185","1528413205","6/7/2018 11:13:25 PM","0xa06f4cb4e469a861add3f5674c06a43d5db3188e","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1000" +"0x3f97665c4b5e6877cd98ef9af614b9a31031acebeab8903ce387e5173da35537","5752057","1528442019","6/8/2018 7:13:39 AM","0x35c8cb17e742e28d0f4d95ba3693a11ef6c59ce4","0x0b5fa328278442956d405d8b501571e20b96260e","1" +"0x827da0af794c1505e7bb9cd07c4136a880312fe0dc510d0f2706ce5b83af0953","5752212","1528444686","6/8/2018 7:58:06 AM","0x35c8cb17e742e28d0f4d95ba3693a11ef6c59ce4","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","10" +"0x918ab21a66bbf4b78af573315102847e88c230c1fba0881122b2453a84bfb42f","5754921","1528485201","6/8/2018 7:13:21 PM","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","0xf4c27b8b002389864ac214cb13bfeef4cc5c4e8d","10" +"0x0271f6b02468c12c71531b427828403367146ce835dffb139ea71450730e7edf","5755271","1528490232","6/8/2018 8:37:12 PM","0x35c8cb17e742e28d0f4d95ba3693a11ef6c59ce4","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","60" +"0xd69955e0adfb71c287b9e0b5e5840833ee05c42b4999b50c9b16ec4768c01ffe","5755430","1528492627","6/8/2018 9:17:07 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","25" +"0x3093bb7c54bfdab6057a1a4dad39b9ae5b7aed2ed953ccaab10f7bebbeb2a016","5755464","1528493098","6/8/2018 9:24:58 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10" +"0x2fc2d9e68412f378d8b691021700e4a7db91d275847a38f2a57a709785591cc3","5755481","1528493339","6/8/2018 9:28:59 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.84" +"0xb6c3d6d6aca1850412c494332315447bd2c6e0ae3710ce0172719c237ea854f5","5755492","1528493493","6/8/2018 9:31:33 PM","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","0x57b00c981363c67b11e07eaa71364bf20e8025fe","1" +"0xdc606edd75718594b48cbaaf54724950fb99ed2a75235a8272f5a46d12d5a30a","5755535","1528494075","6/8/2018 9:41:15 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","49" +"0x01258833ad0db431bffb42b61c31d21a4a4a7243c52814507f216f86f737e342","5755622","1528495424","6/8/2018 10:03:44 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0x01258833ad0db431bffb42b61c31d21a4a4a7243c52814507f216f86f737e342","5755622","1528495424","6/8/2018 10:03:44 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0005" +"0x01258833ad0db431bffb42b61c31d21a4a4a7243c52814507f216f86f737e342","5755622","1528495424","6/8/2018 10:03:44 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","0.0005" +"0xa52d11237a83bd03bb7867171dfc6ac6f36265d80a772f210fbd941dee457b52","5755657","1528496010","6/8/2018 10:13:30 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xe10841cf66252d5e122b294d27ba25b66546bbe0efbb18e5c11e85c2b20fc2c9","5757665","1528527694","6/9/2018 7:01:34 AM","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","0xe03af3670e95ced01d01ebfc3f7ab698faa36d22","59" +"0x3c40f4ddd4c5f4a7d96f61a59506c58f43c40c708ee2c5bde5e082b48f966626","5758145","1528535431","6/9/2018 9:10:31 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","10" +"0x67d717eceef5414fe0403910662a973d1319c5b9eab53847f3762deb60614252","5758176","1528535930","6/9/2018 9:18:50 AM","0xf4c27b8b002389864ac214cb13bfeef4cc5c4e8d","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","10" +"0xf20d1a81a01e98706b980f73b3894e61e1df0c870c211d67bce8a5aecd2c439b","5761303","1528583403","6/9/2018 10:30:03 PM","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1" +"0xaf9f85cfc1d06cd34cc5de687c75df9ebada5f953b12db4e9907af1fff0d4304","5762276","1528598221","6/10/2018 2:37:01 AM","0x2c1c0cb3dde2d6efa288a3a2652555fa8c3187a3","0x1ce7ae555139c5ef5a57cc8d814a867ee6ee33d8","1" +"0x7525ed2827ec47b112a249e104284821853cac216925570556fd2de2230aab5f","5763722","1528620415","6/10/2018 8:46:55 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0xe41d2489571d322189246dafa5ebde1f4699f498","5" +"0x982573ee5b01a4f5364b693dffbeb27470cd2a6d157734923bc83bb783b3c74d","5763732","1528620703","6/10/2018 8:51:43 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x408e41876cccdc0f92210600ef50372656052a38","5" +"0x4bdc63623b948c9323296888dcbb44c5e6a4ac3abad0da8cfe9d3c6acef2052f","5763761","1528621239","6/10/2018 9:00:39 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","2.5" +"0x7c97c4f379b146d042f2cfba727249894e2988a4b47e2f61cecafc06a3ce8a04","5763763","1528621258","6/10/2018 9:00:58 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x6810e776880c02933d47db1b9fc05908e5386b96","2.5" +"0xafa2cccfc20832b7d98d401d8b0efb9555d21463ebca5470173afa957946eb6c","5764998","1528639864","6/10/2018 2:11:04 PM","0xa560ad358f533b7cfc96bd4e1cb3c2848637d000","0xc7d98d5c92fa6d24d8fda344133b994c73030c07","15288.307417187" +"0xe9b58135026ec11a6cf0166f0309c355b5e6452c2c5dfeca188bfbcd2a58d8a7","5765583","1528648895","6/10/2018 4:41:35 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","40" +"0xe9b58135026ec11a6cf0166f0309c355b5e6452c2c5dfeca188bfbcd2a58d8a7","5765583","1528648895","6/10/2018 4:41:35 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","50" +"0xe9b58135026ec11a6cf0166f0309c355b5e6452c2c5dfeca188bfbcd2a58d8a7","5765583","1528648895","6/10/2018 4:41:35 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0x4564845af6e4ca85d8d97da11d011dae9abd33cdc78565ccac26c1e940659a6f","5765656","1528650061","6/10/2018 5:01:01 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1.98" +"0xacddda6d3dedd31d51f4f27be8d1e152e7dbc487806017085d626c48367a43b7","5765748","1528651422","6/10/2018 5:23:42 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","10" +"0xacddda6d3dedd31d51f4f27be8d1e152e7dbc487806017085d626c48367a43b7","5765748","1528651422","6/10/2018 5:23:42 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","10" +"0xe3bccaaf5e475e175b1871aa35d6800958add3aacfaf0d6fb977bd41c4cd788a","5765762","1528651630","6/10/2018 5:27:10 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xac292ee1d19d3553fba3ee945f7a1320bc77c1c89a93fb48b6e0c19d1c13683b","5765811","1528652653","6/10/2018 5:44:13 PM","0x719b8be8e2c3f07575d41a2580011db702029e5b","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xfa868d3e0f270257715728fd0c32047533ceffe0fea781f5989d24981470affd","5765955","1528654782","6/10/2018 6:19:42 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xfa868d3e0f270257715728fd0c32047533ceffe0fea781f5989d24981470affd","5765955","1528654782","6/10/2018 6:19:42 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x5cfddde0ea8cd6d012da2f01bb2dc43cd84dc77773b2b4c17e4ac29324ad3edf","5767835","1528683455","6/11/2018 2:17:35 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x026122654b5c91c8152fce1dcff9a8c086db6fa9","40" +"0x1427bd8185681603ba11d708fe4906e32288cf0b0b7d966640983bcc1841dee4","5768669","1528696383","6/11/2018 5:53:03 AM","0x2a0c0dbecc7e4d658f48e01e3fa353f44050c208","0x918453d249a22b6a8535c81e21f7530cd6ab59f1","1135.521610201" +"0x4398eee6ee82db958f59a2bf0082165f978342d36d22e3eac0e9effd43b2c11c","5771324","1528736973","6/11/2018 5:09:33 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x3eee84616862c251f95dbb7474a73575a2862077","100" +"0x7ddbd1e1fd6e065e88717468ae80255bf696445697ae023c56b9ff6f2d14b093","5772107","1528748609","6/11/2018 8:23:29 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0x719b8be8e2c3f07575d41a2580011db702029e5b","5" +"0xcd7947dc07d6df8e54f6e014e9f0223775416b56e215856d7be3f8b2a31671e9","5772133","1528748923","6/11/2018 8:28:43 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.01" +"0x02a1af954677e76b91d286158637044945b32fb0b3ca444262cf75ad1f7e39ed","5772152","1528749251","6/11/2018 8:34:11 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","10" +"0x02a1af954677e76b91d286158637044945b32fb0b3ca444262cf75ad1f7e39ed","5772152","1528749251","6/11/2018 8:34:11 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","10" +"0x02a1af954677e76b91d286158637044945b32fb0b3ca444262cf75ad1f7e39ed","5772152","1528749251","6/11/2018 8:34:11 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","5" +"0x965fe3b0f86ecdf2fc3e715a8da9faad7baaf42870dd3fa17076f30cd73e54f9","5772234","1528750375","6/11/2018 8:52:55 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0xf1c024eb3ccedeb60fc8a1c018d7dc6163c1b5abc27057e9bed059ee6dcb50b3","5772263","1528750858","6/11/2018 9:00:58 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.001" +"0x65cedfaf2ca6b6403b728a5cbba193655cf5d2b2312df1ee7f023ec63593768e","5774804","1528789930","6/12/2018 7:52:10 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000456" +"0x65cedfaf2ca6b6403b728a5cbba193655cf5d2b2312df1ee7f023ec63593768e","5774804","1528789930","6/12/2018 7:52:10 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0.000457" +"0x7ccb4af44e34c3270336799ccd1502e7d073f167c485ca1d52a17ef92e863780","5774905","1528791349","6/12/2018 8:15:49 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","150" +"0xac09917d42b2e5fca9c678645f9a6eaa757a9c91a93316f5d9552f5d07eec7f5","5774988","1528792638","6/12/2018 8:37:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000458" +"0xac09917d42b2e5fca9c678645f9a6eaa757a9c91a93316f5d9552f5d07eec7f5","5774988","1528792638","6/12/2018 8:37:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000457" +"0xac09917d42b2e5fca9c678645f9a6eaa757a9c91a93316f5d9552f5d07eec7f5","5774988","1528792638","6/12/2018 8:37:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000459" +"0xac09917d42b2e5fca9c678645f9a6eaa757a9c91a93316f5d9552f5d07eec7f5","5774988","1528792638","6/12/2018 8:37:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00048" +"0x57a50b8c5cf6346f097e3c153e4b441013d5adfce7fd02f36b3336f9eebb59b5","5775176","1528795490","6/12/2018 9:24:50 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","550" +"0xa0a11f2002f3590e9b5b64dabe1472394cc8b4b78f308814f268dc2a2cd8f28a","5775364","1528798158","6/12/2018 10:09:18 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xa0a11f2002f3590e9b5b64dabe1472394cc8b4b78f308814f268dc2a2cd8f28a","5775364","1528798158","6/12/2018 10:09:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.00046" +"0xa0a11f2002f3590e9b5b64dabe1472394cc8b4b78f308814f268dc2a2cd8f28a","5775364","1528798158","6/12/2018 10:09:18 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.000459" +"0xb8ac09810b43d06cae82cc9d38ce3c710831643c95f2a18a5424f0728fae85e2","5777888","1528836418","6/12/2018 8:46:58 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","15.132" +"0xd1e91dc89ce4678124482ce1b65e0e6de99bb6b42b3d911490a175aabdc732d0","5778918","1528851546","6/13/2018 12:59:06 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","100" +"0x50ff44b3f2bc1f554264a8e90d716e4c9b0e753f56d0d89db29bcf21a90819fb","5778931","1528851737","6/13/2018 1:02:17 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x50ff44b3f2bc1f554264a8e90d716e4c9b0e753f56d0d89db29bcf21a90819fb","5778931","1528851737","6/13/2018 1:02:17 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x50ff44b3f2bc1f554264a8e90d716e4c9b0e753f56d0d89db29bcf21a90819fb","5778931","1528851737","6/13/2018 1:02:17 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x7accccda2c8643b8ea4365912c00e9ab84c38c1dc183e9188019698de95c06bc","5778974","1528852385","6/13/2018 1:13:05 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","950" +"0x23b5aa07d91565ea46113a8e12a56fcbb47cd8da3d925bbba6bc7641ed0515a1","5778989","1528852595","6/13/2018 1:16:35 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0x23b5aa07d91565ea46113a8e12a56fcbb47cd8da3d925bbba6bc7641ed0515a1","5778989","1528852595","6/13/2018 1:16:35 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x34fc2b2aad3852e3a2628d1ca20f99da77797fb703d08f4b6b19796503f95cdb","5779031","1528853267","6/13/2018 1:27:47 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","400" +"0x4bc54c70309d3f1c86456d5339a2131ac001990cd8227981d3bd64ad855d8fab","5779035","1528853321","6/13/2018 1:28:41 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x4bc54c70309d3f1c86456d5339a2131ac001990cd8227981d3bd64ad855d8fab","5779035","1528853321","6/13/2018 1:28:41 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0x0c6e4560e84c57e298d7d3bdcd6aa214eefd782d22b6e21f5868fa2bcde14a4d","5779101","1528854314","6/13/2018 1:45:14 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x57b00c981363c67b11e07eaa71364bf20e8025fe","9501" +"0xcc1bca4bdcf955a11eab7295542d95b7ee72c18806b7e57ffaa713c8b5ae4715","5779106","1528854409","6/13/2018 1:46:49 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xcc1bca4bdcf955a11eab7295542d95b7ee72c18806b7e57ffaa713c8b5ae4715","5779106","1528854409","6/13/2018 1:46:49 AM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x7bbf2ecc221d2519dae526c4c5823fa44e031c623ddf1d2ee473ab04406d39a6","5781005","1528883567","6/13/2018 9:52:47 AM","0x3439ea50ed00e9ba69d195eb0b5b403b3ba5fba2","0xe81ad9c0b999222bfe4060ef36b9fef995bad9f9","100" +"0xd162d9069655c76d156a83868fceeb0e0c8c9e318dc8ebbcb04d0bbdc25959e9","5782624","1528908229","6/13/2018 4:43:49 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","10" +"0x9b389a059bc44a9b85d874d4c68170087fb3fe289b802b46cb3e72dd180d2bd2","5783045","1528914765","6/13/2018 6:32:45 PM","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0001" +"0x9b389a059bc44a9b85d874d4c68170087fb3fe289b802b46cb3e72dd180d2bd2","5783045","1528914765","6/13/2018 6:32:45 PM","0xf9dec99962b533e66f5cd2bc0f618ae11418f601","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x88b0f42e844b97e9ac6540461b7f5a93df2dff12813f0d9515f52f836dedaecf","5783738","1528924634","6/13/2018 9:17:14 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","270" +"0x164bb351acf08499a3537b8366dd92da26cf9829f74e4e14b753310810de75b2","5783777","1528925123","6/13/2018 9:25:23 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x164bb351acf08499a3537b8366dd92da26cf9829f74e4e14b753310810de75b2","5783777","1528925123","6/13/2018 9:25:23 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x275fd50ffd0ba9ae4427ee9d847007d670516b23e2b12925f505eefcbc9af977","5784356","1528933496","6/13/2018 11:44:56 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","2000" +"0x94d179a921222cd2b301381c6fcc268c6fc247a46318478161a4a4a2c8f46a06","5784381","1528933820","6/13/2018 11:50:20 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0xb50e79d958b4660eb088cc744aae0690d117de2b92278dc99780ab89dd40f99e","5784649","1528937841","6/14/2018 12:57:21 AM","0x76ce7bfe86b3a8f79871dad3e331ad6c07ae73b0","0xafa72fdd9aff5177fa402469c688c21998382854","0.0004" +"0xabb174c72ea46198d660fce3581899cab9d57d44a23de969cb2d91661ce05a96","5784830","1528940707","6/14/2018 1:45:07 AM","0xafa72fdd9aff5177fa402469c688c21998382854","0x81404be6b9d46554adabcc7599967cf157720d31","10" +"0xffbf7812740a4677833d3a4dbd49d3f8bdfc9ee74de714f354a01d2da542c956","5785250","1528946874","6/14/2018 3:27:54 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","275" +"0x402531eb34679e01e616ea29b0d32c943c077b5995a3fd865ddb76cca3056916","5786413","1528964440","6/14/2018 8:20:40 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x738dc22d4e8349e52339effb4dbc907ff93bae73d4a06692e8dd232fdf16b7da","5786415","1528964457","6/14/2018 8:20:57 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x7afb72b250ec026e448422068d8d2c7a5c6a9be72539048c5ccc63ee8dbdec57","5786418","1528964515","6/14/2018 8:21:55 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x6c60c6caf67bf0529c2aa1b5a9b40875218b2ef1def079cc5dd63ff2a3e98597","5786480","1528965428","6/14/2018 8:37:08 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0xfc59654c36ea23d5d1bc39d3dd8010c271ecbf13b284b471cbbc5d834e8122b0","5786494","1528965613","6/14/2018 8:40:13 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","1" +"0x2180addd00c3c726e4b3bd27ce10cd0a21e7af750719707496fe03119ce3e4ed","5786497","1528965658","6/14/2018 8:40:58 AM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","2" +"0x99dccd3b0e5f596bc62200430fa07f1ca84e1228c3158953328d0aa41dfff19a","5787595","1528982307","6/14/2018 1:18:27 PM","0x2b171b81b63b7f07a492d4e1d8af93ca216d56f8","0x57b00c981363c67b11e07eaa71364bf20e8025fe","8" +"0x1cb858ec76562ccf59eaa234ad5ec39ff18d130fbab28c5400829232074aad95","5787622","1528982722","6/14/2018 1:25:22 PM","0x2b171b81b63b7f07a492d4e1d8af93ca216d56f8","0xb97c51e406d570c5d7d5737b2e7e2c7175ba6932","8" +"0x65fbc4461ef6355ec560b8584f761631050d2c5f8bae30f731bc0ea001f09704","5787637","1528982907","6/14/2018 1:28:27 PM","0x2b171b81b63b7f07a492d4e1d8af93ca216d56f8","0xb97c51e406d570c5d7d5737b2e7e2c7175ba6932","7" +"0xfa523f7866e87fc08fb9c14519334655c6ef9f997f4f4419c80ab58d12b983e9","5788016","1528988890","6/14/2018 3:08:10 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xb97c51e406d570c5d7d5737b2e7e2c7175ba6932","354.14835147" +"0x1c52630ca2c94e4c99307fe0f023f6b0f90cbde333358963fbb1550bcaf73342","5788978","1529002951","6/14/2018 7:02:31 PM","0xfb7ec9ff07f7f1d73c1203aecbe834bdc8819fbb","0xf82f8842476541659c526b93c81fbcd190ee875e","19.9999" +"0x5c73a2d69062c483a925d258b2960161bf409a63c07fa4b0020215f14c58c88a","5789703","1529013449","6/14/2018 9:57:29 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x5c73a2d69062c483a925d258b2960161bf409a63c07fa4b0020215f14c58c88a","5789703","1529013449","6/14/2018 9:57:29 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0xdb18e58ba88cbdb81b7e180c1363d3b6ca46f64003dbc6779ce855c253777563","5792055","1529048972","6/15/2018 7:49:32 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xdb18e58ba88cbdb81b7e180c1363d3b6ca46f64003dbc6779ce855c253777563","5792055","1529048972","6/15/2018 7:49:32 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0xc0acae7fc6492c07db9e2a87da0580af534bee8f4b6471e1e9cf351e40473203","5794371","1529083790","6/15/2018 5:29:50 PM","0x81404be6b9d46554adabcc7599967cf157720d31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","2" +"0x7e3dd10006b7cc715a35eb5ef3af9566f011fd4c5500a0584a03b339b8893172","5794381","1529083911","6/15/2018 5:31:51 PM","0x81404be6b9d46554adabcc7599967cf157720d31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xe5931b30f01bc52484fa1bf3a526d6ba0b73cba496628b72c212bda4a875bebb","5794392","1529084057","6/15/2018 5:34:17 PM","0x81404be6b9d46554adabcc7599967cf157720d31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x1bac783549c02f632dbda74a8e9e2505fc2360c5071492699a5a67f26a18b08a","5794400","1529084154","6/15/2018 5:35:54 PM","0x81404be6b9d46554adabcc7599967cf157720d31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0x13dcee24faed9a6fc0befeb3bfaee0916e43b9737fe55da1ffd18e9e7fae1707","5794404","1529084204","6/15/2018 5:36:44 PM","0x81404be6b9d46554adabcc7599967cf157720d31","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","1" +"0xbbe5a0fe47db8fd184fac904e312bba459ac042311f6e1a22ba57d95eda84fd3","5795851","1529105285","6/15/2018 11:28:05 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","25" +"0xbbe5a0fe47db8fd184fac904e312bba459ac042311f6e1a22ba57d95eda84fd3","5795851","1529105285","6/15/2018 11:28:05 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x719b8be8e2c3f07575d41a2580011db702029e5b","10" +"0xbbe5a0fe47db8fd184fac904e312bba459ac042311f6e1a22ba57d95eda84fd3","5795851","1529105285","6/15/2018 11:28:05 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1" +"0x0674a6637e5bb15c235f16774236ca692da155668ce08f3814182a1c253d2f8f","5795878","1529105744","6/15/2018 11:35:44 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","600" +"0xaaf727fd6288641add6062842f023475d4e645d8627185b4b8dd47d3c6dc27fb","5795890","1529105937","6/15/2018 11:38:57 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","5E-05" +"0x5b8a2b13d6a8f75582ae64a9f6281a10e04ce0c7887c645f70a58aff912f404c","5807692","1529279144","6/17/2018 11:45:44 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x3d48587aa16d91a2e37198b5b428674bdaddf038","2.5" +"0x5b8a2b13d6a8f75582ae64a9f6281a10e04ce0c7887c645f70a58aff912f404c","5807692","1529279144","6/17/2018 11:45:44 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x3d48587aa16d91a2e37198b5b428674bdaddf038","5" +"0x5b8a2b13d6a8f75582ae64a9f6281a10e04ce0c7887c645f70a58aff912f404c","5807692","1529279144","6/17/2018 11:45:44 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x3d48587aa16d91a2e37198b5b428674bdaddf038","5" +"0x5b8a2b13d6a8f75582ae64a9f6281a10e04ce0c7887c645f70a58aff912f404c","5807692","1529279144","6/17/2018 11:45:44 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x3d48587aa16d91a2e37198b5b428674bdaddf038","7.5" +"0x5b8a2b13d6a8f75582ae64a9f6281a10e04ce0c7887c645f70a58aff912f404c","5807692","1529279144","6/17/2018 11:45:44 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x3d48587aa16d91a2e37198b5b428674bdaddf038","12.5" +"0x97f121e8cdc1a6f83de1a113037a3163995edc73d491c7136dbe32b90eb0ad6e","5807724","1529279619","6/17/2018 11:53:39 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0x3eee84616862c251f95dbb7474a73575a2862077","645.85164853" +"0xdbb576c915ff37ee00010f50b4d3b3e89c22ddf7e1a83fda52f9a14511453d46","5808148","1529285277","6/18/2018 1:27:57 AM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x2a575f3b0ce5ad9002c6ff7a24d275761f44af2d","10" +"0xdc7fd156d26633c0bec30af240d16eb057990d3b00b36d855d4af7a9fff795ff","5811593","1529335898","6/18/2018 3:31:38 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0.002" +"0x4c4147635c90af1bc85022aef7cb5c03abd075b7d05c30249760bef15ef6a381","5811642","1529336691","6/18/2018 3:44:51 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x3d48587aa16d91a2e37198b5b428674bdaddf038","1500" +"0xd00fcf9f68588ff393465f41c28b9ed4f10c9fe1d4446e88f799e4905b179257","5811647","1529336774","6/18/2018 3:46:14 PM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.002" +"0x596109df4de3743fa3d44ed254e4755cf9acac64c286677ea742d5ef5a6412db","5813083","1529357565","6/18/2018 9:32:45 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0xf4c27b8b002389864ac214cb13bfeef4cc5c4e8d","1500" +"0xa9d9c8fcf19a004647e7e2b6517505ad73f25c66329b96386fcfd1e9a5fca9cf","5816501","1529408070","6/19/2018 11:34:30 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1" +"0x2f67d264de0ba4e6511c49fa6c33625e917f3f72a2479c836a7c75e9fa529ae9","5818865","1529443493","6/19/2018 9:24:53 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0x328a95f31cf2af26e3471c47709f34b272b3668a","1.000227115" +"0xb2989df0eb32e7d2abcf505a3af02b790c7f5956737db9f06efdcdd8082d185b","5821705","1529485622","6/20/2018 9:07:02 AM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x153685a03c2025b6825ae164e2ff5681ee487667","18" +"0x1c3c82a562e7885ef9561184ea2e5b8379be1a315a5cb28fb93860d5f04ec2a2","5821731","1529485963","6/20/2018 9:12:43 AM","0x153685a03c2025b6825ae164e2ff5681ee487667","0x2b5ad5c4795c026514f8317c7a215e218dccd6cf","2" +"0x1a9527486f4b8209f9f31beece4f0e3d6efd8fc76f2c8eb54f94146e2c361b31","5822352","1529495522","6/20/2018 11:52:02 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","15" +"0x1a9527486f4b8209f9f31beece4f0e3d6efd8fc76f2c8eb54f94146e2c361b31","5822352","1529495522","6/20/2018 11:52:02 AM","0x3d48587aa16d91a2e37198b5b428674bdaddf038","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.392" +"0x25385942675b0243c15f295adb6fb4bee1f27087b887a84131b5db62216fc048","5822380","1529496018","6/20/2018 12:00:18 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","1" +"0x25385942675b0243c15f295adb6fb4bee1f27087b887a84131b5db62216fc048","5822380","1529496018","6/20/2018 12:00:18 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0x6aba98fd62bcf9d03665bf9e3a9ed8945be7fb6b3fb7c01d966d98f48cc69ba6","5822418","1529496525","6/20/2018 12:08:45 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x6aba98fd62bcf9d03665bf9e3a9ed8945be7fb6b3fb7c01d966d98f48cc69ba6","5822418","1529496525","6/20/2018 12:08:45 PM","0x3eee84616862c251f95dbb7474a73575a2862077","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.0005" +"0x6aba98fd62bcf9d03665bf9e3a9ed8945be7fb6b3fb7c01d966d98f48cc69ba6","5822418","1529496525","6/20/2018 12:08:45 PM","0x57b00c981363c67b11e07eaa71364bf20e8025fe","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0.001" +"0x8a12611c0e84dd5a38d02abe038a9cfa079711d7b6dab1a356f3899bb489e538","5823234","1529508590","6/20/2018 3:29:50 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x0c6dc123786d63bd6f7ecd86a68699d4acaf32ba","2" +"0x8f951f7469b292ce63f5efe6f4d6aee52e852e75d052ff20db5fd41570ce6913","5823238","1529508639","6/20/2018 3:30:39 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x4f3afec4e5a3f2a6a1a411def7d7dfe50ee057bf","2" +"0xbaa01a4244b5c446d7e1cc2e1752b9e80d4115400084c95d38ea2e8c8d52e679","5823246","1529508713","6/20/2018 3:31:53 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","2" +"0x355aa83b24e5a39d81208c3fe4eab4810b36cbfe96084229c31514303b394f9d","5823250","1529508772","6/20/2018 3:32:52 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0xe41d2489571d322189246dafa5ebde1f4699f498","2" +"0x5c4109f20cf515127ec187e0109670201daf3ef6feef357461d878e9d5b642a3","5823261","1529508933","6/20/2018 3:35:33 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0xc438b4c0dfbb1593be6dee03bbd1a84bb3aa6213","2" +"0x4c608d81ed94b885174b767826d31d5eed04e3c32ae9d06dd861b8e6de3cf25b","5823266","1529508977","6/20/2018 3:36:17 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0xbeb9ef514a379b997e0798fdcc901ee474b6d9a1","2" +"0x553ffa4fe9cbb9e1150fdfc655c191a29ceb828376101143669fe48ed6f759ac","5823271","1529509036","6/20/2018 3:37:16 PM","0x65471a455b20de893b6b9eef43fd7c779c7a7d87","0x949bed886c739f1a3273629b3320db0c5024c719","2" +"0xde3bf0e1895aec24937f7c48ee2c1cb096a3626ac2a56084a37958e46fa384ff","5823292","1529509438","6/20/2018 3:43:58 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0x20be6899da6ac2a12cdeb1a1456a25fdcee925cb","443.828955614" +"0x3d9e64d28ceac0762dfab6e88db2fed77a098041e4d67836df5701891ef08571","5823594","1529513809","6/20/2018 4:56:49 PM","0x8d12a197cb00d4747a1fe03395095ce2a5cc6819","0xac0cc42e99a1ed5f3e80e0e3aea4ec53c77cbf27","13" +"0xd6c3582e416de5b10aa590c51ad075b533bc7764ca0ee248dbf6b5161c4954ca","5825170","1529536792","6/20/2018 11:19:52 PM","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","0x9a2d163ab40f88c625fd475e807bbc3556566f80","3000" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","2" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","4" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","5" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","10" +"0xc875846bc7957364db96cf9b0fb808c037cc0a1760b8bcbc69a1ad490e3c9ff0","5828730","1529588991","6/21/2018 1:49:51 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","15" +"0x3fe223a9b8ca09868515bf07b8eedccee656b2938556d1d53ac5bedc39ba7487","5828741","1529589122","6/21/2018 1:52:02 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","20" +"0x3fe223a9b8ca09868515bf07b8eedccee656b2938556d1d53ac5bedc39ba7487","5828741","1529589122","6/21/2018 1:52:02 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","20" +"0x3fe223a9b8ca09868515bf07b8eedccee656b2938556d1d53ac5bedc39ba7487","5828741","1529589122","6/21/2018 1:52:02 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0xf1e65cd0b31fcb8713ac1902002b262d57c9da33","40" +"0x5f9e9e58922ab2a71d5114f3a06cc4b7e5cab7fc48fd5acc76a09fa98b3002dd","5828777","1529589616","6/21/2018 2:00:16 PM","0x26554809c4c63ee939a78edb189d5c4508f8d4b1","0x3d48587aa16d91a2e37198b5b428674bdaddf038","25" From 9dca6f819a13a81d92966bc7e54157e43811af62 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 14 Mar 2019 13:38:48 +0100 Subject: [PATCH 33/98] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f5b4c9f..b4eb2c0 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,8 @@ https://github.com/bokkypoobah/TokenTrader/wiki/AMIS-%E2%80%90-AMIS#how-to-watch ## Usage DAPP Contract usage interaction is constantly under development, however we recently released new contracts and interfaces with which it becomes much easier to call AMIS for your favorite DAPP project, for instance you could use it to develop your own smart contract for selfdrop, airdrop, exchange, transportation, insurance, conferences, concerts, ticket resale and trade it - see examples below: +- [Amis Dex dappvolume.com](https://dappvolume.com/dapp/820/amisdex) +- [Amis Dex cryptoknowmics](https://www.cryptoknowmics.com/dapps/details/amisdex/260) - [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) - [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex) - [Amis Dex on App.co](https://app.co/app/amisdex) From 83be939355a65f05364cfba97691439b286d62a9 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 17 Mar 2019 18:57:34 +0100 Subject: [PATCH 34/98] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b4eb2c0..76ca6d4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  -[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](http://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) +[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official AmisEtherDelta](https://img.shields.io/badge/official-etherdelta-brightgreen.svg)](https://etherdelta.com/#0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 @@ -199,6 +199,8 @@ DAPP Contract usage interaction is constantly under development, however we rece - [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) - [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex) - [Amis Dex on App.co](https://app.co/app/amisdex) +- [Amis Dex on DappReview](https://dapp.review/dapp/1211) +- [Amis Dex on DappFight](https://dappfight.com/dapp/amisdex) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) From 699537fdd9e57dc9ce2ec991acfd114ff667fe9a Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 17 Mar 2019 19:01:06 +0100 Subject: [PATCH 35/98] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 76ca6d4..d6092e7 100644 --- a/README.md +++ b/README.md @@ -201,6 +201,7 @@ DAPP Contract usage interaction is constantly under development, however we rece - [Amis Dex on App.co](https://app.co/app/amisdex) - [Amis Dex on DappReview](https://dapp.review/dapp/1211) - [Amis Dex on DappFight](https://dappfight.com/dapp/amisdex) +- [Amis Dex on DappSpy](http://www.dappspy.com/rankingDetails/eth/exchanges/1001) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) From b72722eb36a8a6a44a1f0a8370fa45b71ab56120 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 17 Mar 2019 20:32:49 +0100 Subject: [PATCH 36/98] Update README.md --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d6092e7..79b9107 100644 --- a/README.md +++ b/README.md @@ -194,14 +194,15 @@ https://github.com/bokkypoobah/TokenTrader/wiki/AMIS-%E2%80%90-AMIS#how-to-watch ## Usage DAPP Contract usage interaction is constantly under development, however we recently released new contracts and interfaces with which it becomes much easier to call AMIS for your favorite DAPP project, for instance you could use it to develop your own smart contract for selfdrop, airdrop, exchange, transportation, insurance, conferences, concerts, ticket resale and trade it - see examples below: -- [Amis Dex dappvolume.com](https://dappvolume.com/dapp/820/amisdex) -- [Amis Dex cryptoknowmics](https://www.cryptoknowmics.com/dapps/details/amisdex/260) -- [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex) -- [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex) -- [Amis Dex on App.co](https://app.co/app/amisdex) -- [Amis Dex on DappReview](https://dapp.review/dapp/1211) -- [Amis Dex on DappFight](https://dappfight.com/dapp/amisdex) -- [Amis Dex on DappSpy](http://www.dappspy.com/rankingDetails/eth/exchanges/1001) +- [Amis Dex dappvolume.com](https://dappvolume.com/dapp/820/amisdex?utm_source=AmiSolution) +- [Amis Dex cryptoknowmics](https://www.cryptoknowmics.com/dapps/details/amisdex/260?utm_source=AmiSolution) +- [Amis Dex on Stateofthedapps](https://www.stateofthedapps.com/dapps/amisdex?utm_source=AmiSolution) +- [Amis Dex on DappRadar](https://dappradar.com/app/1001/amisdex?utm_source=AmiSolution) +- [Amis Dex on App.co](https://app.co/app/amisdex?utm_source=AmiSolution) +- [Amis Dex on DappReview](https://dapp.review/dapp/1211?utm_source=AmiSolution) +- [Amis Dex on DappFight](https://dappfight.com/dapp/amisdex?utm_source=AmiSolution) +- [Amis Dex on DappSpy](http://www.dappspy.com/rankingDetails/eth/exchanges/1001?utm_source=AmiSolution) +- [Amis Dex on ratingdapp](https://ratingdapp.net/dapps/eth/1220/AMIS-DEX?utm_source=AmiSolution) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) From 4b7389901e1b7fd1ceeefdc5bfc9af70aae5ad00 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 17 Mar 2019 23:09:31 +0100 Subject: [PATCH 37/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 79b9107..63f36a4 100644 --- a/README.md +++ b/README.md @@ -202,7 +202,7 @@ DAPP Contract usage interaction is constantly under development, however we rece - [Amis Dex on DappReview](https://dapp.review/dapp/1211?utm_source=AmiSolution) - [Amis Dex on DappFight](https://dappfight.com/dapp/amisdex?utm_source=AmiSolution) - [Amis Dex on DappSpy](http://www.dappspy.com/rankingDetails/eth/exchanges/1001?utm_source=AmiSolution) -- [Amis Dex on ratingdapp](https://ratingdapp.net/dapps/eth/1220/AMIS-DEX?utm_source=AmiSolution) +- [Amis Dex on RatingDapp](https://ratingdapp.net/dapps/eth/1220/AMIS-DEX?utm_source=AmiSolution) - [Conference booking with AMIS ticket resale https://github.com/amisolution/ERC20-AMIS/amisforum/live/conference](https://amisolution.github.io/ERC20-AMIS/amisforum/live/conference) contract https://etherscan.io/address/0x7fe180e63198e50057c3f2817d058e8904c650e3 - [AmisDapp Airdrop revenue generator on Ropsten, Kovan and soon mainnet](https://amisolution.github.io/ERC20-AMIS/airdrop) - [AMIS Trade on-chain with Amisdex an On-chain Orderbook contract with builtin https://amis-erc20.github.io/amisdex](https://amis-erc20.github.io/amisdex) From 16cc38b92286545600ad4021eede763fe1629ce5 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 27 Mar 2019 15:15:36 +0100 Subject: [PATCH 38/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63f36a4..dde6496 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  -[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) +[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official Telegram](https://img.shields.io/badge/official-telegram-brightblue.svg)](https://t.me/amis_token) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official AmisEtherDelta](https://img.shields.io/badge/official-etherdelta-brightgreen.svg)](https://etherdelta.com/#0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 From a8f427363da8a51b91d275104fa696b92ae045b5 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 27 Mar 2019 15:16:36 +0100 Subject: [PATCH 39/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dde6496..cb80637 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AMIS-QRCODE [![Website Down](https://img.shields.io/badge/website-up-green.svg)](http://erc20-amis.amisolution.net/)  -[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official Telegram](https://img.shields.io/badge/official-telegram-brightblue.svg)](https://t.me/amis_token) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) +[![Join the Gitchat at https://gitter.im/amis-delta-dex/Lobby](https://badges.gitter.im/amis-delta-dex/Lobby.svg)](https://gitter.im/AMIS-DELTA-DEX/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Trade Bounty](https://img.shields.io/badge/trade-bounty-orange.svg)](https://amisdex.amisolution.net/exchange/?pairId=AMIS-ETH) [![Twitter AirDrop](https://img.shields.io/badge/Twitter-Airdrop-red.svg)](https://twitter.com/AMIStoken_ERC20) [![Official Twitter](https://img.shields.io/badge/official-twitter-brightgreen.svg)](https://twitter.com/amis_erc20) [![Official Telegram](https://img.shields.io/badge/official-telegram-lightblue.svg)](https://t.me/amis_token) [![Official AmisForkdelta](https://img.shields.io/badge/official-forkdelta-brightgreen.svg)](https://forkdelta.app/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official AmisEtherDelta](https://img.shields.io/badge/official-etherdelta-brightgreen.svg)](https://etherdelta.com/#0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 From a5d22c950dd37c5a9f10d66c4c3a562105c11712 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 23 May 2019 09:52:13 +0200 Subject: [PATCH 40/98] Update README.md --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cb80637..e41fd42 100644 --- a/README.md +++ b/README.md @@ -238,12 +238,18 @@ On the waves blockchain one can interact with the AMIS token natively and in a d - WAVES [wavesplatform.com](https://beta.wavesplatform.com/market/AMIS_WAVES) or https://beta.wavesplatform.com/dex?assetId2=WWiqqx527CUweb8eB5xLUPtLfzyFs371FkT2dtX49DC&assetId1=WAVES ## Exchange + Official list of decentralized exchanges for AMIS token +* [crypto-bridge OPENAMIS-ETH](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.ETH) +* [crypto-bridge OPENAMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.BTC) +* [crypto-bridge OPENAMIS-USDT](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.USDT) * [crypto-bridge AMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BTC) **New** *on BitShares* * [crypto-bridge AMIS-BTS](https://wallet.crypto-bridge.org/market/OPENAMIS_BTS) **New** *on BitShares* * [openledger.io AMIS-BitUSD](https://openledger.io/market/OPENAMIS_BTS) **New** *on BitShares* * [openledger.info AMIS-BitCNY](https://bitshares.openledger.info/market/OPENAMIS_BTS) **New** *on BitShares* -* [Waves AMIS](https://beta.wavesplatform.com/market/AMIS_WAVES) **New** *on Waves* +* [AMIS-BTC on Waves](https://client.wavesplatform.com/dex?assetId1=8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS&assetId2=WWiqqx527CUweb8eB5xLUPtLfzyFs371FkT2dtX49DC) +* [Waves AMIS](https://client.wavesplatform.com/dex?assetId1=WAVES&assetId2=WWiqqx527CUweb8eB5xLUPtLfzyFs371FkT2dtX49DC) **New** *on Waves* +* [AMIS-ETH on Waves](https://client.wavesplatform.com/dex?assetId1=WWiqqx527CUweb8eB5xLUPtLfzyFs371FkT2dtX49DC&assetId2=474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu) * [AMIS DEX #1](https://amis-delta.github.io/amisdelta/site) **New** *in beta* * [AMIS DEX #2](https://amis-erc20.github.io/amisdex/) **New** *in beta* * [AMIS DEX #3](https://amisdex.github.io/index/) **New** *in alpha* @@ -417,6 +423,9 @@ On Waves use either bitshares or the native wallet: ## Analytics ### Live streaming Charts + +- [CoinGecko](https://www.coingecko.com/en/coins/amis) + - [24h Live streaming Chart: https://amisolution.github.io/ERC20-AMIS/charts/amis-usd/cryptohistory/24h](https://amisolution.github.io/ERC20-AMIS/charts/amis-usd/cryptohistory/24h) ![Amis Chart by Crptocompare](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/images/cryptocompare-amis-chart-macd-28aug2018.png) @@ -463,11 +472,14 @@ Similar tokens that went through an ICO: ## Api ### Cryptocompare Streamer + - [Amis trade streamer https://amisdex.github.io/cryptoc0mpare/trade](https://amisdex.github.io/crypt0compare/streamer/trade/) - [Live stream https://amisdex.github.io/crypt0compare/streamer/current/](https://amisdex.github.io/crypt0compare/streamer/current/) ### Dex API review + - [coingecko api request for tokenjar](https://api.coingecko.com/api/v3/exchanges/tokenjar) +- [coingecko api request for Amis tickers](https://api.coingecko.com/api/v3/coins/amis/tickers) Response body From dea4215ac24eb6e0ccc6666aa947d094602e79f1 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 23 May 2019 14:04:22 +0200 Subject: [PATCH 41/98] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index 9e070f9..b4a60fd 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -www.amisolution.net \ No newline at end of file +amis-token.amisolution.net From e311bac6f18802795768b519ff5aff49566b9ca4 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 23 May 2019 14:21:25 +0200 Subject: [PATCH 42/98] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e41fd42..8a35626 100644 --- a/README.md +++ b/README.md @@ -344,10 +344,11 @@ Etherscan have introduced the dex tracker feature which could serve to provide R Yes and no. On one hand they provide relatively accurate data for most of the pairs, regarding dex tracked events, it's a little less clear since they don't read the data from the blocks but rather from the API of the dex which in return do not meet the expected reliability found by reading data blocks as available in the dex tracker feature for example. On the other hand side we acknowledge that Amis was initially designed as an experimental asset management token used to be traded on a large variety of DEX primarily for testing purposes, for that reason we never expected to be successful in establishing the market condition for Amis however during the course of its history we felt to be perceived as an exception due to our mode of introduction on the marketplace (No ICO). We also faced resistance and challenges in having AMIS continuously listed on decentralized exchanges (see Etherdelta/Idex experiences) besides the miscommunication of unexpected changes that affected the operations ruling the decentralized exchange UI e.g. min order size changes from 0.001 to 0.01 then back to 0.001, suppression of crosspair trading in the UI and many others. * Is AMIS delisted from CoinMarketCap? Where else is it listed ? + AMIS is not delisted from CoinMarketCap; CoinMarketCap decided to set the token as inactive and freeze AMIS's price @1174.93 USD. - Cryptocompare holds historical up-to-date AMIS trading data and never stopped polling Etherdelta's API as CoinMarketCap did. -- Coingecko relays AMIS/WETH price information retrieved from TokenJar'API, data source is inaccurate most of the time. -- 0xtracker provide accurate price information based on what's being read from the ethereum blockchain. +- Coingecko relays [AMIS/WETH](https://www.coingecko.com/en/coins/amis/) price information retrieved from TokenJar'API, data source is 99% accurate. +- 0xtracker provides NRT accurate price information based on what's being read from the ethereum blockchain via its 0x relayers. * How can one verify the true value of the AMIS token ? Data analytics modelling can help generating the chart based on etherscan dex tracker results; it provides the list of trades upon which one can plot the relevant data to provide a true accurate graphical representation of the Asset Instrument. From cc33576855cfbc4e07a8e834a7d47d60049fe1cf Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 23 May 2019 15:52:53 +0200 Subject: [PATCH 43/98] Update index.html --- charts/amis-usd/cryptohistory/index.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/charts/amis-usd/cryptohistory/index.html b/charts/amis-usd/cryptohistory/index.html index 66aee48..4bdb109 100644 --- a/charts/amis-usd/cryptohistory/index.html +++ b/charts/amis-usd/cryptohistory/index.html @@ -40,8 +40,10 @@

A new generation of decentralized exchanges (DEX) for c
-

AmisDEX we trust.

- +

In AmisDEX we trust.

+ + +

Streaming chart for AMIS by Amisdex the next generation of decentralized exchanges (DEX).

24H TF

From 3872afc7133fbadfaf28164faf5b6a1d8cb137dc Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 23 May 2019 16:21:40 +0200 Subject: [PATCH 44/98] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a35626..9ff45d6 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,9 @@ On the waves blockchain one can interact with the AMIS token natively and in a d ## Exchange -Official list of decentralized exchanges for AMIS token +The Official list of decentralized exchanges for the AMIS tokens is given below: +* [Saturn.network AMIS-ETH](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) +* [Saturn.network AMIS-ETC](https://www.saturn.network/exchange/ETC/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) * [crypto-bridge OPENAMIS-ETH](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.ETH) * [crypto-bridge OPENAMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.BTC) * [crypto-bridge OPENAMIS-USDT](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.USDT) From 82656705a3304fa5412432fb33738791c432b986 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 5 Jun 2019 14:58:09 +0200 Subject: [PATCH 45/98] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 9ff45d6..1490c97 100644 --- a/README.md +++ b/README.md @@ -483,6 +483,9 @@ Similar tokens that went through an ICO: - [coingecko api request for tokenjar](https://api.coingecko.com/api/v3/exchanges/tokenjar) - [coingecko api request for Amis tickers](https://api.coingecko.com/api/v3/coins/amis/tickers) +- [TokenJar API](https://tokenjar.io/api/cmc/ticker) +- [Bamboorelay API](https://sra.bamboorelay.com/0x/v2/) +- [Ledgerdex](https://api-v2.ledgerdex.com/sra/v2/) Response body From 41bb56a71f284dce40046b94e7f62eed8eaa5325 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 12 Jun 2019 13:10:58 +0200 Subject: [PATCH 46/98] Update custom.js --- amisforum/live/js/custom.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index c7afd88..3e4e4db 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -1,7 +1,7 @@ // Set the date we're counting down to -var countDownDate = new Date("Dec 31, 2018 00:00:00").getTime(); +var countDownDate = new Date("Dec 31, 2019 00:00:00").getTime(); -var url = "https:///api" +var url = "https://api.coinranking.com/v1/public/coin/4467" // Update the count down every 1 second var x = setInterval(function () { @@ -297,7 +297,7 @@ employees = { { "id":"1", - "name":"Laurent G", + "name":"Amisolution", "designation":"Founder and investor", "description":`Short description needed. `, @@ -350,9 +350,10 @@ if (win) { } } -var url = "https://account.amicorum.live/api"; +var url = "https://api.coinranking.com/v1/public/coin/4468"; $.ajax({ - url: url + "/user/getTokenRemain", + //url: url + "/user/getTokenRemain", *// + url: url + "/history/1y", type: "get", data: { From a4b33c45a3a634ea7fcaeba14223adc31b34df53 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 12 Jun 2019 18:05:48 +0200 Subject: [PATCH 47/98] Update index.html --- amisforum/live/index.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/amisforum/live/index.html b/amisforum/live/index.html index bc12d54..717a3bc 100644 --- a/amisforum/live/index.html +++ b/amisforum/live/index.html @@ -820,6 +820,11 @@

AMIS DELTA DEX FORUM LIVE
+
From 1bca9b0c59cf055f5e68953f9ccbd852e24611d2 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 12 Jun 2019 19:34:34 +0200 Subject: [PATCH 48/98] Create AmisErc223.sol --- contracts/AmisErc223.sol | 113 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 contracts/AmisErc223.sol diff --git a/contracts/AmisErc223.sol b/contracts/AmisErc223.sol new file mode 100644 index 0000000..5572109 --- /dev/null +++ b/contracts/AmisErc223.sol @@ -0,0 +1,113 @@ +// # https://remix.ethereum.org/#version=soljson-v0.5.24+commit.e67f0147.js&optimize=true&gist=7f2a15679aee59fba912aa929f70df1d +// +pragma solidity ^0.5.24; + +contract ERC223 { + uint public totalSupply; + function balanceOf(address who) public view returns (uint); + + function name() public view returns (string _name); + function symbol() public view returns (string _symbol); + function decimals() public view returns (uint8 _decimals); + function totalSupply() public view returns (uint256 _supply); + + function transfer(address to, uint value) public returns (bool ok); + function transfer(address to, uint value, bytes data) public returns (bool ok); + function transfer(address to, uint value, bytes data, string custom_fallback) public returns (bool ok); + + event Transfer(address indexed from, address indexed to, uint value, bytes indexed data); + +} + + +library SafeMath { + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + uint256 c = a - b; + + return c; + } + + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 + if (a == 0) { + return 0; + } + + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // Solidity only automatically asserts when dividing by 0 + require(b > 0, "SafeMath: division by zero"); + uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b != 0, "SafeMath: modulo by zero"); + return a % b; + } +} + +// change contract name to your contract's name +// i.e. "contract AMIS is ERC223Token" +contract YourNewToken is ERC223Token { + using SafeMath for uint256; + // for example, "AMIS" + string public name = "AMIS"; + // for example, "BTC" + string public symbol = "AMIS"; + // set token's precision + // pick any number from 0 to 18 + // for example, 9 decimal points means that + // smallest token unit will be 0.000000001 AMIS + uint public decimals = 9; + // total supply of the token + // for example, for Bitcoin it would be 21000000 + uint public totalSupply = 100000000000000 * (10**decimals); + + address private treasury = 0x5b878ba97bae92fc0aa6133edbf2f58d52350d65; + + // ICE price. You will need to do a little bit of math to figure it out + // given 9 decimals + uint256 private priceDiv = 2000000000; + event Purchase(address indexed purchaser, uint256 amount); + + constructor() public { + // This is how many tokens you want to allocate to yourself + balances[msg.sender] = 9500000000000 * (10**decimals); + // This is how many tokens you want to allocate for ICE + balances[0x0] = 90500000000000 * (10**decimals); + } + function () public payable { + bytes memory empty; + if (msg.value == 0) { revert(); } + uint256 purchasedAmount = msg.value.div(priceDiv); + if (purchasedAmount == 0) { revert(); } // not enough ETC sent + if (purchasedAmount > balances[0x0]) { revert(); } // too much ETC sent + + treasury.transfer(msg.value); + balances[0x0] = balances[0x0].sub(purchasedAmount); + balances[msg.sender] = balances[msg.sender].add(purchasedAmount); + + emit Transfer(0x0, msg.sender, purchasedAmount); + emit ERC223Transfer(0x0, msg.sender, purchasedAmount, empty); + emit Purchase(msg.sender, purchasedAmount); + } +} From 575d2453b05fceb16fbcf098e78512430f5abd4e Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 12 Jun 2019 19:36:06 +0200 Subject: [PATCH 49/98] Update and rename AmisErc223.sol to Amis.sol --- contracts/{AmisErc223.sol => Amis.sol} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename contracts/{AmisErc223.sol => Amis.sol} (98%) diff --git a/contracts/AmisErc223.sol b/contracts/Amis.sol similarity index 98% rename from contracts/AmisErc223.sol rename to contracts/Amis.sol index 5572109..e846d52 100644 --- a/contracts/AmisErc223.sol +++ b/contracts/Amis.sol @@ -67,11 +67,11 @@ library SafeMath { // change contract name to your contract's name // i.e. "contract AMIS is ERC223Token" -contract YourNewToken is ERC223Token { +contract Amis is ERC223Token { using SafeMath for uint256; // for example, "AMIS" string public name = "AMIS"; - // for example, "BTC" + // for example, "AMIS" string public symbol = "AMIS"; // set token's precision // pick any number from 0 to 18 From 6fb795fbf771c2bfeb43029a867f6eef96e958e3 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 13 Jun 2019 00:06:41 +0200 Subject: [PATCH 50/98] Update custom.js --- amisforum/live/js/custom.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index 3e4e4db..ccf3107 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -34,9 +34,9 @@ var x = setInterval(function () { // If the count down is over, write some text - if (distance < 0) { + if (circulatingSupply > 0) { clearInterval(x); - /* document.getElementById("demo").innerHTML = "EXPIRED"; */ + document.getElementById("demo").innerHTML = "EXPIRED"; } }, 1000); From 08a566168b8002f1b4030ca2365435ec0376be77 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 13 Jun 2019 09:53:14 +0200 Subject: [PATCH 51/98] Update custom.js --- amisforum/live/js/custom.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index ccf3107..6bf25b8 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -2,7 +2,7 @@ var countDownDate = new Date("Dec 31, 2019 00:00:00").getTime(); var url = "https://api.coinranking.com/v1/public/coin/4467" - +var circulatingSupply = new Date("Dec 31, 2019 00:00:00").getTime(); // Update the count down every 1 second var x = setInterval(function () { @@ -112,10 +112,6 @@ bar2.text.style.fontSize = '3rem'; bar2.text.style.color = '#15bdff'; bar2.animate(0.15); // Number from 0.0 to 1.0 - - - - var bar3 = new ProgressBar.Circle(progressBar3, { color: '#15bdff', // This has to be the same size as the maximum width to @@ -350,10 +346,11 @@ if (win) { } } -var url = "https://api.coinranking.com/v1/public/coin/4468"; +//var url = "https://api.coinranking.com/v1/public/coin/4468"; +var url = "https://api.coinranking.com/v1/public/coin"; $.ajax({ //url: url + "/user/getTokenRemain", *// - url: url + "/history/1y", + url: url + "/4468", type: "get", data: { From 28a3a6405476325896ae2ebe869faef2bf8b189c Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 13 Jun 2019 12:11:41 +0200 Subject: [PATCH 52/98] Update Amis.sol --- contracts/Amis.sol | 65 +--------------------------------------------- 1 file changed, 1 insertion(+), 64 deletions(-) diff --git a/contracts/Amis.sol b/contracts/Amis.sol index e846d52..53cf7d2 100644 --- a/contracts/Amis.sol +++ b/contracts/Amis.sol @@ -1,70 +1,7 @@ -// # https://remix.ethereum.org/#version=soljson-v0.5.24+commit.e67f0147.js&optimize=true&gist=7f2a15679aee59fba912aa929f70df1d +// # https://remix.ethereum.org/#version=soljson-v0.5.24+commit.e67f0147.js&optimize=true&gist=6ba2843f228efec36624338245bd09dd // pragma solidity ^0.5.24; -contract ERC223 { - uint public totalSupply; - function balanceOf(address who) public view returns (uint); - - function name() public view returns (string _name); - function symbol() public view returns (string _symbol); - function decimals() public view returns (uint8 _decimals); - function totalSupply() public view returns (uint256 _supply); - - function transfer(address to, uint value) public returns (bool ok); - function transfer(address to, uint value, bytes data) public returns (bool ok); - function transfer(address to, uint value, bytes data, string custom_fallback) public returns (bool ok); - - event Transfer(address indexed from, address indexed to, uint value, bytes indexed data); - -} - - -library SafeMath { - - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - require(c >= a, "SafeMath: addition overflow"); - - return c; - } - - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - require(b <= a, "SafeMath: subtraction overflow"); - uint256 c = a - b; - - return c; - } - - function mul(uint256 a, uint256 b) internal pure returns (uint256) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 - if (a == 0) { - return 0; - } - - uint256 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); - - return c; - } - - function div(uint256 a, uint256 b) internal pure returns (uint256) { - // Solidity only automatically asserts when dividing by 0 - require(b > 0, "SafeMath: division by zero"); - uint256 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold - - return c; - } - - function mod(uint256 a, uint256 b) internal pure returns (uint256) { - require(b != 0, "SafeMath: modulo by zero"); - return a % b; - } -} - // change contract name to your contract's name // i.e. "contract AMIS is ERC223Token" contract Amis is ERC223Token { From a37085852a4c7890bf9c6646e438316840108176 Mon Sep 17 00:00:00 2001 From: amisolution Date: Thu, 13 Jun 2019 12:14:47 +0200 Subject: [PATCH 53/98] Update Amis.sol --- contracts/Amis.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/Amis.sol b/contracts/Amis.sol index 53cf7d2..9f7a616 100644 --- a/contracts/Amis.sol +++ b/contracts/Amis.sol @@ -1,6 +1,6 @@ -// # https://remix.ethereum.org/#version=soljson-v0.5.24+commit.e67f0147.js&optimize=true&gist=6ba2843f228efec36624338245bd09dd +// # https://remix.ethereum.org/#version=soljson-v0.5.9+commit.e560f70d.js&optimize=true&gist=6ba2843f228efec36624338245bd09dd // -pragma solidity ^0.5.24; +pragma solidity ^0.5.9; // change contract name to your contract's name // i.e. "contract AMIS is ERC223Token" From 5d3eb1c91e98ec115abd997b17fa08dd9cf34f35 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Jun 2019 11:56:45 +0200 Subject: [PATCH 54/98] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1490c97..82ab5bf 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![ßtesting TokenStore](https://img.shields.io/badge/ßtesting-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719) + [![coinchangex](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) + [![Saturn](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) @@ -241,7 +243,7 @@ On the waves blockchain one can interact with the AMIS token natively and in a d The Official list of decentralized exchanges for the AMIS tokens is given below: * [Saturn.network AMIS-ETH](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) -* [Saturn.network AMIS-ETC](https://www.saturn.network/exchange/ETC/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) +* [coinchangex AMIS-ETH](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) * [crypto-bridge OPENAMIS-ETH](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.ETH) * [crypto-bridge OPENAMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.BTC) * [crypto-bridge OPENAMIS-USDT](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.USDT) From 8e1d68773ec5c2d6ed9cdeaaf0e0f7b874c01c9b Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Jun 2019 11:58:49 +0200 Subject: [PATCH 55/98] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 82ab5bf..5f2efd8 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS) - [![ßtesting TokenStore](https://img.shields.io/badge/ßtesting-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719) - [![coinchangex](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![TokenStore](https://img.shields.io/badge/TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719) + [![coinchangex](https://img.shields.io/badge/coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) + [![Saturn](https://img.shields.io/badge/saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) From 275bab82d1d10c0702ac905767f1ad6c5960979e Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 14 Jun 2019 12:01:39 +0200 Subject: [PATCH 56/98] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5f2efd8..738bd88 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@  [![Official BambooRelay](https://img.shields.io/badge/official-bamboorelay-brightgreen.svg)](https://bamboorelay.com/trade/AMIS-WETH) [![Official AmisTokenJar](https://img.shields.io/badge/official-tokenjar-brightgreen.svg)](https://tokenjar.io/amis)  [![ßtesting Dubiex](https://img.shields.io/badge/ßtesting-dubiex-yellow.svg)](https://dubiex.com/AMIS/ETH) [![Official AmisLedgerDex](https://img.shields.io/badge/official-ledgerdex-1330e3.svg)](https://app.ledgerdex.com/#/app/orders/maker-taker/AMIS/0x949bed886c739f1a3273629b3320db0c5024c719/WETH/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS) - [![TokenStore](https://img.shields.io/badge/TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719) - [![coinchangex](https://img.shields.io/badge/coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn](https://img.shields.io/badge/saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719) + [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) + [![Saturn](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) @@ -243,7 +243,7 @@ On the waves blockchain one can interact with the AMIS token natively and in a d The Official list of decentralized exchanges for the AMIS tokens is given below: * [Saturn.network AMIS-ETH](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) -* [coinchangex AMIS-ETH](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) +* [coinchangex AMIS-ETH](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) * [crypto-bridge OPENAMIS-ETH](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.ETH) * [crypto-bridge OPENAMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.BTC) * [crypto-bridge OPENAMIS-USDT](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.USDT) From 03755aa939e9b0aedd45370d574035714911855c Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 19 Jun 2019 17:57:48 +0200 Subject: [PATCH 57/98] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 738bd88..702e041 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Saturn](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) + [![Dapp Ethermium](https://img.shields.io/badge/dapp-ethermium-brightmagenta.svg)](https://ethermium.com/t/AMIS-AMIS) [!Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) From d94a132d51d98fb24f920cc6f776778ae471daf0 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 19 Jun 2019 18:00:28 +0200 Subject: [PATCH 58/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 702e041..fcde7b4 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Saturn](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) - [![Dapp Ethermium](https://img.shields.io/badge/dapp-ethermium-brightmagenta.svg)](https://ethermium.com/t/AMIS-AMIS) + [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [!Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) From d5ba7c78a50680335d18444d741bcc4208492055 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 19 Jun 2019 18:18:23 +0200 Subject: [PATCH 59/98] Update README.md --- README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fcde7b4..8dbb7fb 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,7 @@ The Official list of decentralized exchanges for the AMIS tokens is given below: * [AMIS DEX #3](https://amisdex.github.io/index/) **New** *in alpha* * [Amis Delta Dax Dev2](https://sprout-llama.glitch.me/) **New** *live* * [Bamboo relay](https://bamboorelay.com/trade/AMIS-WETH) 0x relay +* [Ethermium](https://ethermium.com/t/AMIS-AMIS) **New** *live* * [Cryptoderivatives market](https://cryptoderivatives.market/token/AMIS) * [Decentrex](https://amisdex.github.io/decentrex/) **Instructions for token transfer** * [Dubiex](https://dubiex.com/AMIS/ETH) *in beta* @@ -461,18 +462,19 @@ Density and statistical composition can be found @ bloxy How many Amis subscribers compared to a set of tokens created around Q4 2016 (ARC, NXC, PLU, SWT, DGD, 1ST...): Similar tokens that went through an ICO: -| Token Name | # of Subscribers | Creation Date | -| ARC |187 | Oct-31-2016 | -| BCAP |812 | Apr 10, 2017 | -| NXC |942 | Nov-01-2016 | -| PLU |1151 | Sep-04-2016 | -| SWT |2300 | Nov 01, 2016 | -| MLN | 2414 | Feb 15, 2017 | -| XAUR |4167 | Aug-08-2016 | -| TIME |5302 | | -| SNGLS |8236 | | -| DGD |8258 | | -| 1ST |18851 | | +| Token Name | # of Subscribers |Creation Date| +|------------|------------------|-------------| +| ARC |187 | Oct-31-2016 | +| BCAP |812 | Apr-10-2017 | +| NXC |942 | Nov-01-2016 | +| PLU |1151 | Sep-04-2016 | +| SWT |2300 | Nov-01-2016 | +| MLN |2414 | Feb-15-2017 | +| XAUR |4167 | Aug-08-2016 | +| TIME |5302 | | +| SNGLS |8236 | | +| DGD |8258 | | +| 1ST |18851 | | ## Api @@ -489,6 +491,8 @@ Similar tokens that went through an ICO: - [TokenJar API](https://tokenjar.io/api/cmc/ticker) - [Bamboorelay API](https://sra.bamboorelay.com/0x/v2/) - [Ledgerdex](https://api-v2.ledgerdex.com/sra/v2/) +- [Ethermium API Wrapper](https://github.com/ethermium-dex/nodejs-api-wrapper) +- [Ethermium API example](https://api.ethermium.com/v1/tokenTickers) Response body From 30616f97c5be0ffff121ca59c01f6e1a58c7b451 Mon Sep 17 00:00:00 2001 From: amisolution Date: Wed, 7 Aug 2019 07:15:44 +0200 Subject: [PATCH 60/98] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8dbb7fb..83085d9 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH)  [![Saturn](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop) - [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) + [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) [!Product Gif](https://raw.githubusercontent.com/amisolution/ERC20-AMIS/master/amisdex.gif) From 2ed2df9bf4bed6067a2a1141d0644bfcd23d28e2 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 15:48:42 +0200 Subject: [PATCH 61/98] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 83085d9..8a06ba4 100644 --- a/README.md +++ b/README.md @@ -244,6 +244,7 @@ On the waves blockchain one can interact with the AMIS token natively and in a d The Official list of decentralized exchanges for the AMIS tokens is given below: * [Saturn.network AMIS-ETH](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) +* [Saturn.network AMIS-ETC](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) * [coinchangex AMIS-ETH](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) * [crypto-bridge OPENAMIS-ETH](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.ETH) * [crypto-bridge OPENAMIS-BTC](https://wallet.crypto-bridge.org/market/OPENAMIS_BRIDGE.BTC) @@ -408,6 +409,7 @@ On Ethereum, one can easily create a wallet to store, send and receive AMIS: - [TrustWallet](trustwalletapp.com) - [MyCrypto](mycrypto.com) - [Nifty]() +- [SaturnWallet]() - [Balance.io](balance.io) - [CoinBase](wallet.coinbase.com) - [Amis Line Mobile Wallet](https://impartial-ellipse.glitch.me/) From e53f258fa56971a6cbb1979d9506b88c83fd37c6 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:14:33 +0200 Subject: [PATCH 62/98] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a06ba4..e97ba34 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Main Features: * Long Term Investment program based on Low volume. * ATF vs ICO: Asset Traded Fund is what characterizes an AMIS; it's also an ICO in the sense of an Initial Coin Option. * No ICO as we voluntereed to promote and build the AMIS business case around the concept of Initial Coin Option sold as Asset traded Fund. -* NO centralized Trading: Amis do not favor centralized trading platforms but rather engages natively with a set of Decentralized exchanges (Ether Delta, TokenJar, BambooRelay 0x relays, AmisDex) which will undoubtedly expand over time. +* NO centralized Trading: Amis do not favor centralized trading platforms but rather engages natively with a set of Decentralized exchanges (Ether Delta, TokenJar, BambooRelay 0x relays, AmisDex, Saturn) which will undoubtedly expand over time. Dematerialized, Decentralized, due to replace FIAT transactions in the real economy for the long term, Transborder proof. Run on the ethereum blockchain natively since its experimental inception. @@ -165,6 +165,8 @@ Remember that AMIS is unique; each and everyone can verify the official and genu Read AMIS token smart contract balance: [Etherscan https://etherscan.io/token/0x949bed886c739f1a3273629b3320db0c5024c719#readContract](https://etherscan.io/token/0x949bed886c739f1a3273629b3320db0c5024c719#readContract) +[AMIS / ETC on Blockscout](https://blockscout.com/etc/mainnet/address/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af) + AMIS unique code: [https://etherscan.io/address/0x949bEd886c739f1A3273629b3320db0C5024c719#code](https://etherscan.io/address/0x949bed886c739f1a3273629b3320db0c5024c719#code) From f5ed9f6acb749717f6d493a0f8bdaa23fc3d01dc Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:16:22 +0200 Subject: [PATCH 63/98] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e97ba34..84f2a47 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![Saturn ETH](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![Saturn ETC](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From f721a75944d7b68dc36e0a35dc634985a7380b53 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:17:44 +0200 Subject: [PATCH 64/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 84f2a47..88685c8 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn ETH](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) - [![Saturn ETC](https://img.shields.io/badge/Dex-saturn-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) + [![Saturn-ETH](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![Saturn-ETC](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From b5f5e1226d36ed1fd801cf4f6c159e68d8fe8263 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:18:29 +0200 Subject: [PATCH 65/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88685c8..d73498b 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn-ETH](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) - [![Saturn-ETC](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) + [![SaturnETH](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![SaturnETC](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From c56d4ab3a93cf7542f4a3c78a2671c8bac787041 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:19:28 +0200 Subject: [PATCH 66/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d73498b..135b782 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![SaturnETH](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) - [![SaturnETC](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) + [![Saturn_eth](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![Saturn_etc](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From 83eda751325e30b426ae7c8eb3e5efc31fea34c5 Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:20:34 +0200 Subject: [PATCH 67/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 135b782..b06637f 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![Saturn_eth](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) - [![Saturn_etc](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) + [![SaturnEth](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![SaturnEtc](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From cc0a090803c3f84cbcc27a353913c7624cf768ae Mon Sep 17 00:00:00 2001 From: amisolution Date: Mon, 16 Sep 2019 16:21:49 +0200 Subject: [PATCH 68/98] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b06637f..18bfee0 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ ) [![Official Cryptoderivatives](https://img.shields.io/badge/official-cryptoderivatives-4330e7.svg)](https://cryptoderivatives.market/token/AMIS) [![Official Cryptocompare](https://img.shields.io/badge/official-cryptocompare-brightgreen.svg)](https://www.cryptocompare.com/coins/amis) [![Official DexTracker](https://img.shields.io/badge/official-dextracker-brightgreen.svg)](https://etherscan.io/dextracker?filter=&q=AMIS)  [![TokenStore](https://img.shields.io/badge/Dex-TokenStore-yellow.svg)](https://token.store/trade/0x949bed886c739f1a3273629b3320db0c5024c719)  [![coinchangex](https://img.shields.io/badge/Dex-coinchangex-orange.svg)](https://www.coinchangex.com/#!/trade/0x949bed886c739f1a3273629b3320db0c5024c719-ETH) - [![SaturnEth](https://img.shields.io/badge/Dex-saturn-eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) - [![SaturnEtc](https://img.shields.io/badge/Dex-saturn-etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000) + [![Saturn-Eth](https://img.shields.io/badge/Saturn-Eth-magenta.svg)](https://www.saturn.network/exchange/ETH/order-book/0x949bed886c739f1a3273629b3320db0c5024c719/0x0000000000000000000000000000000000000000) + [![Saturn-Etc](https://img.shields.io/badge/Saturn-Etc-magenta.svg)](https://www.saturn.network/exchange/ETC/order-book/0xd8ebe4e6ac8d3c85e2f243e11e8b96c9b12c85af/0x0000000000000000000000000000000000000000)  [![αtesting EthenMarket](https://img.shields.io/badge/αtesting-ethenmarket-lightgrey.svg)](https://ethen.market/949bed886c739f1a3273629b3320db0c5024c719) [![ßtesting AmisDex](https://img.shields.io/badge/ßtesting-amisdex-lightblue.svg)](https://amisdex.github.io/amis-exchange-www) [![Dapp Airdropper](https://img.shields.io/badge/dapp-airdropper-brightgreen.svg)](https://amisolution.github.io/ERC20-AMIS/airdrop)  [![Ethermium](https://img.shields.io/badge/Dex-ethermium-magenta.svg)](https://ethermium.com/t/AMIS-AMIS) [![Official UniSwap](https://img.shields.io/badge/official-uniswap-cyan.svg)](https://uniswap.exchange/swap/AMIS) From 484f3d6fba33836b5a02f1faa9046bf94ffc8a46 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 13:31:09 +0100 Subject: [PATCH 69/98] Update README.md --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 18bfee0..34ca01a 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,21 @@ The Official list of decentralized exchanges for the AMIS tokens is given below: * [Simex](https://simex.global) Discontinued ## Reserve -###Facts by numbers 29 Aug 2018 +### Distribution + +### Total Supply +totalSupply: 20000000 + +### Total Reserve +totalReserve: 5846014.484763184 + +### Total Burnt +totalBurnt: 320000 + +### Circulating Supply +circulatingSupply: 14153986 + +### Facts by numbers 29 Aug 2018 - The AMIS circulation supply was decreased by 1.55% in the last couple of days; here is what happened and what it means for our subscribers: - Initial Coin Outset: 20.000.000 Mio - 3rd JAN 2017 - Decimals: 9 From 2bf3d568f317a07f7cef3e54053eb48643aa2489 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 15:34:43 +0100 Subject: [PATCH 70/98] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 34ca01a..43d37ac 100644 --- a/README.md +++ b/README.md @@ -292,7 +292,7 @@ totalReserve: 5846014.484763184 totalBurnt: 320000 ### Circulating Supply -circulatingSupply: 14153986 +circulatingSupply: 14153986-320000=13833986 ### Facts by numbers 29 Aug 2018 - The AMIS circulation supply was decreased by 1.55% in the last couple of days; here is what happened and what it means for our subscribers: @@ -303,7 +303,7 @@ circulatingSupply: 14153986 - Buy Back Program Incentives - The buy back program incentization campaign analyzes the trading behavior pattern of all participants to better determine how traders are able to identify trading sweet spots and how to position for their next move traded, to allow max return on investment from our eligible subscribers. - Lender/Borrower program underway -###AMIS present exhaustion regime +### AMIS present exhaustion regime -Not only have we prepared the path to deliberatly drain the amount of AMIS resources available at a particular time according to the market condition but we also took precautionary measures to maintain and to widen the scope of use of crypto derivatives asset class offered by AMIS product portfolio on the decentralized market whether it would be Bitshare, Ethereum or Waves blockchained orders. @@ -349,7 +349,7 @@ Block Explorer Analytics @@ -379,7 +379,7 @@

amisforum.live

- Only 19,690,000 AMIS Tokens available + Only 13,833,986 AMIS Tokens available

From d96c1cbd92620044b9c8915328dbe21a33d9a19e Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 16:22:59 +0100 Subject: [PATCH 72/98] Update custom.js --- amisforum/live/js/custom.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index 6bf25b8..2bdc0a3 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -1,8 +1,9 @@ // Set the date we're counting down to -var countDownDate = new Date("Dec 31, 2019 00:00:00").getTime(); - -var url = "https://api.coinranking.com/v1/public/coin/4467" -var circulatingSupply = new Date("Dec 31, 2019 00:00:00").getTime(); +var countDownDate = new Date("Dec 31, 2020 00:00:00").getTime(); +// https://amis-erc20-api.glitch.me/ERC20Tokens/0x949bEd886c739f1A3273629b3320db0C5024c719 +// var url = "https://api.coinranking.com/v1/public/coin/4467" +var url = "https://api.coingecko.com/api/v3/coins/amis" +var circulatingSupply = new Date("Dec 31, 2020 00:00:00").getTime(); // Update the count down every 1 second var x = setInterval(function () { @@ -347,10 +348,10 @@ if (win) { } //var url = "https://api.coinranking.com/v1/public/coin/4468"; -var url = "https://api.coinranking.com/v1/public/coin"; +var url = "https://api.coingecko.com/api/v3/coins"; $.ajax({ //url: url + "/user/getTokenRemain", *// - url: url + "/4468", + url: url + "/amis", type: "get", data: { From 43dcd7d01d3145e2a2e7be3d757ddfe9dd526bf0 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 16:30:51 +0100 Subject: [PATCH 73/98] Update index.html --- amisforum/live/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amisforum/live/index.html b/amisforum/live/index.html index 92dd9d3..9be6dae 100644 --- a/amisforum/live/index.html +++ b/amisforum/live/index.html @@ -699,7 +699,7 @@

AMIS DELTA DEX FORUM LIVE

-

Only 19,690,000 AMIS Tokens available +

Only 13,833,986 AMIS Tokens available

From b3638d39d4f8282cfe264e0e21b4fa7f11b04bab Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 17:21:52 +0100 Subject: [PATCH 74/98] Update custom.js --- amisforum/live/js/custom.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index 2bdc0a3..1a36194 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -2,7 +2,8 @@ var countDownDate = new Date("Dec 31, 2020 00:00:00").getTime(); // https://amis-erc20-api.glitch.me/ERC20Tokens/0x949bEd886c739f1A3273629b3320db0C5024c719 // var url = "https://api.coinranking.com/v1/public/coin/4467" -var url = "https://api.coingecko.com/api/v3/coins/amis" +// var url = "https://api.coingecko.com/api/v3/coins/amis" +var url = "https://amis-erc20-api.glitch.me/ERC20Tokens/0x949bEd886c739f1A3273629b3320db0C5024c719" var circulatingSupply = new Date("Dec 31, 2020 00:00:00").getTime(); // Update the count down every 1 second var x = setInterval(function () { From 5177b6b605bff8325b617765793d5bc861aed9bf Mon Sep 17 00:00:00 2001 From: amisolution Date: Sat, 2 Nov 2019 17:33:09 +0100 Subject: [PATCH 75/98] Update custom.js --- amisforum/live/js/custom.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index 1a36194..54ecca1 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -1,10 +1,10 @@ // Set the date we're counting down to -var countDownDate = new Date("Dec 31, 2020 00:00:00").getTime(); +var countDownDate = new Date("Nov 03, 2020 00:00:00").getTime(); // https://amis-erc20-api.glitch.me/ERC20Tokens/0x949bEd886c739f1A3273629b3320db0C5024c719 -// var url = "https://api.coinranking.com/v1/public/coin/4467" +// var url = "https://api.coinranking.com/v1/public/coin/4468" // var url = "https://api.coingecko.com/api/v3/coins/amis" var url = "https://amis-erc20-api.glitch.me/ERC20Tokens/0x949bEd886c739f1A3273629b3320db0C5024c719" -var circulatingSupply = new Date("Dec 31, 2020 00:00:00").getTime(); +var circulatingSupply = new Date("Nov 03, 2019 00:00:00").getTime(); // Update the count down every 1 second var x = setInterval(function () { From d66337f84077189d5e5d90e83bc56e3eff652be1 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 3 Nov 2019 10:54:50 +0100 Subject: [PATCH 76/98] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 43d37ac..6123579 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,15 @@ The Official list of decentralized exchanges for the AMIS tokens is given below: ## Reserve ### Distribution +Total +20,000,000 +Founders, Advisors, Reserve, Bonus (0x5b878ba97bae92fc0aa6133edbf2f58d52350d65) +- 5,846,014.484763184 +(0x0000) +- 320,000 +Est. Circulating Supply +13,833,986 + ### Total Supply totalSupply: 20000000 From 2f75bc40e3cf71a3debd20ec237559615922c771 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 3 Nov 2019 10:59:10 +0100 Subject: [PATCH 77/98] Update README.md --- README.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6123579..41f9c61 100644 --- a/README.md +++ b/README.md @@ -281,15 +281,10 @@ The Official list of decentralized exchanges for the AMIS tokens is given below: ## Reserve ### Distribution - -Total -20,000,000 -Founders, Advisors, Reserve, Bonus (0x5b878ba97bae92fc0aa6133edbf2f58d52350d65) -- 5,846,014.484763184 -(0x0000) -- 320,000 -Est. Circulating Supply -13,833,986 +- Total Supply: 20,000,000 +- Founders, Advisors, Reserve, Bonus (0x5b878ba97bae92fc0aa6133edbf2f58d52350d65): 5,846,014.484763184 +- Burnt(0x0000): 320,000 +- Est. Circulating Supply: 13,833,986 ### Total Supply totalSupply: 20000000 From ea9ad4a6156c3d258e2f5e62d61d5cc0cdfd7f09 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 06:21:26 +0100 Subject: [PATCH 78/98] Rename custom.js to _custom.js --- amisforum/live/js/{custom.js => _custom.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename amisforum/live/js/{custom.js => _custom.js} (100%) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/_custom.js similarity index 100% rename from amisforum/live/js/custom.js rename to amisforum/live/js/_custom.js From 62b7796c327b631233788be164e07777a1158ace Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 06:25:27 +0100 Subject: [PATCH 79/98] Create custom.js --- amisforum/live/js/custom.js | 369 ++++++++++++++++++++++++++++++++++++ 1 file changed, 369 insertions(+) create mode 100644 amisforum/live/js/custom.js diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js new file mode 100644 index 0000000..f28da1a --- /dev/null +++ b/amisforum/live/js/custom.js @@ -0,0 +1,369 @@ +// Set the date we're counting down to +var countDownDate = new Date("Jul 01, 2018 15:37:25").getTime(); + +var url = "https://amis-erc20-api.glitch.me/ERC20Tokens/amis" + +// Update the count down every 1 second +var x = setInterval(function () { + + // Get todays date and time + var now = new Date().getTime(); + + // Find the distance between now an the count down date + var distance = countDownDate - now; + + // Time calculations for days, hours, minutes and seconds + var days = Math.floor(distance / (1000 * 60 * 60 * 24)); + var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); + var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); + var seconds = Math.floor((distance % (1000 * 60)) / 1000); + + // Output the result in an element with id="demo" + /* document.getElementById("demo").innerHTML = days + "d " + hours + "h " + + minutes + "m " + seconds + "s "; */ + + +/* document.getElementById("hours").innerHTML = hours; + document.getElementById("days").innerHTML = days; + document.getElementById("mins").innerHTML = minutes; + document.getElementById("secs").innerHTML = seconds; + document.getElementById("hours2").innerHTML = hours; + document.getElementById("days2").innerHTML = days; + document.getElementById("mins2").innerHTML = minutes; + document.getElementById("secs2").innerHTML = seconds; */ + + + // If the count down is over, write some text + if (distance < 0) { + clearInterval(x); + /* document.getElementById("demo").innerHTML = "EXPIRED"; */ + } +}, 1000); + +//var ProgressBar = require('./progressbar.js/dist/progressbar.js') +// progressbar.js@1.0.0 version is used +// Docs: http://progressbarjs.readthedocs.org/en/1.0.0/ + + +var bar = new ProgressBar.Circle(progressBar, { + color: '#d50707', + // This has to be the same size as the maximum width to + // prevent clipping + strokeWidth: 6, + trailWidth: 6, + easing: 'easeInOut', + duration: 1400, + text: { + autoStyleContainer: false + }, + from: { color: '#15bdff', width: 6}, + to: { color: '#15bdff', width: 6}, + // Set default step function for all animate calls + step: function(state, circle) { + circle.path.setAttribute('stroke', state.color); + circle.path.setAttribute('stroke-width', state.width); + + var value = Math.round(circle.value() * 100); + if (value === 0) { + circle.setText(''); + } else { + circle.setText(value + "%"); + } + + } +}); +bar.text.style.fontFamily = 'pronova'; +bar.text.style.fontSize = '3rem'; +bar.text.style.color = '#15bdff'; +bar.animate(0.80); // Number from 0.0 to 1.0 + + + + +var bar2 = new ProgressBar.Circle(progressBar2, { + color: '#15bdff', + // This has to be the same size as the maximum width to + // prevent clipping + strokeWidth: 6, + trailWidth: 6, + easing: 'easeInOut', + duration: 1400, + text: { + autoStyleContainer: false + }, + from: { color: '#15bdff', width: 6}, + to: { color: '#15bdff', width: 6}, + // Set default step function for all animate calls + step: function(state, circle) { + circle.path.setAttribute('stroke', state.color); + circle.path.setAttribute('stroke-width', state.width); + + var value = Math.round(circle.value() * 100); + if (value === 0) { + circle.setText(''); + } else { + circle.setText(value + "%"); + } + + } +}); +bar2.text.style.fontFamily = 'pronova'; +bar2.text.style.fontSize = '3rem'; +bar2.text.style.color = '#15bdff'; +bar2.animate(0.15); // Number from 0.0 to 1.0 + + + + + +var bar3 = new ProgressBar.Circle(progressBar3, { + color: '#15bdff', + // This has to be the same size as the maximum width to + // prevent clipping + strokeWidth: 6, + trailWidth: 6, + easing: 'easeInOut', + duration: 1400, + text: { + autoStyleContainer: false + }, + from: { color: '#15bdff', width: 6}, + to: { color: '#15bdff', width: 6}, + // Set default step function for all animate calls + step: function(state, circle) { + circle.path.setAttribute('stroke', state.color); + circle.path.setAttribute('stroke-width', state.width); + + var value = Math.round(circle.value() * 100); + if (value === 0) { + circle.setText(''); + } else { + circle.setText(value + "%"); + } + + } +}); +bar3.text.style.fontFamily = 'pronova'; +bar3.text.style.fontSize = '3rem'; +bar3.text.style.color = '#15bdff'; +bar3.animate(0.02); // Number from 0.0 to 1.0 + + +var bar4 = new ProgressBar.Circle(progressBar4, { + color: '#15bdff', + // This has to be the same size as the maximum width to + // prevent clipping + strokeWidth: 6, + trailWidth: 6, + easing: 'easeInOut', + duration: 1400, + text: { + autoStyleContainer: false + }, + from: { color: '#15bdff', width: 6}, + to: { color: '#15bdff', width: 6}, + // Set default step function for all animate calls + step: function(state, circle) { + circle.path.setAttribute('stroke', state.color); + circle.path.setAttribute('stroke-width', state.width); + + var value = Math.round(circle.value() * 100); + if (value === 0) { + circle.setText(''); + } else { + circle.setText(value + "%"); + } + + } +}); +bar4.text.style.fontFamily = 'pronova'; +bar4.text.style.fontSize = '3rem'; +bar4.text.style.color = '#15bdff'; +bar4.animate(0.03); // Number from 0.0 to 1.0 + + +var acc = document.getElementsByClassName("accordion"); + for (var i = 0; i < acc.length; i++) { + acc[i].addEventListener("click", function () { + this.classList.toggle("active"); + var panel = this.nextElementSibling; + if (panel.style.display === "block") { + panel.style.display = "none"; + } else { + panel.style.display = "block"; + } + }); + } + + + + + $(".arrow-points-wrap").click(function () { + console.log($(this).find(".dbl-arr-rotate").attr("src")); + + if ($(this).find(".dbl-arr-rotate1").attr("src") == "images/FaqsIcon.png") { + $(this).find(".dbl-arr-rotate1").attr("src", "images/D.png") + } else { + $(this).find(".dbl-arr-rotate1").attr("src", "images/FaqsIcon.png") + } + }) + + + + toastr.options = { + "closeButton": true, + "debug": false, + "newestOnTop": false, + "progressBar": false, + "positionClass": "toast-bottom-right", + "preventDuplicates": false, + "onclick": null, + "showDuration": "300", + "hideDuration": "1000", + "timeOut": "5000", + "extendedTimeOut": "1000", + "showEasing": "swing", + "hideEasing": "linear", + "showMethod": "fadeIn", + "hideMethod": "fadeOut" + } + + + +var email = document.getElementById("emailUpdate"); + email.addEventListener("keydown", function (e) { + if (e.keyCode === 13) { + subscribe(); + } + }); + +function subscribe(){ + toastr.remove(); + var email = document.getElementById("emailUpdate").value; + console.log(email); + var error = false; + var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + + if(email == ""){ + toastr["error"]("Please enter the email!"); + error = true; + } + + if (email != "" && !regex.test(email)) { + toastr["error"]("Please enter valid email!"); + error = true; + + } + +if(error){ + +} +else{ + + $('.Sub-loader').show(); + + $.ajax({ + url: url + '/user/subscribe/'+email, + type: 'GET', + async: true, + success: function (data) { + console.log(data); + if (data.code == 200) { + $("#emailUpdate").val(""); + toastr["success"]("Congratulations! You have successfully subscribed to our updates."); + $(".Sub-loader").hide(); + } else { + toastr["error"](data.message); + $(".Sub-loader").hide(); + } + + }, + error: function (error) { + + $(".Sub-loader").hide(); + } + }); + + +} +} + + + +//team js +employees = { + "teamJson":[ + + { + "id":"1", + "name":"Amisolution", + "designation":"Social Media and Community Manager", + "description":"Short description needed.", + `, + "pictureURL":"images/photo1.jpg", + "linkedIn":"https://www.linkedin.com/in/" + + } + + + ] + +} + +function openModal(elem){ + + + + var obj = employees.teamJson.find(x=>x.id == elem); + console.log(obj); + + $(".modal-image").attr("src",obj.pictureURL); + $(".name-text").text(obj.name); + $(".desig-text").text(obj.designation); + $(".desc").text(obj.description); + $(".linked").attr("href",obj.linkedIn); + $('#shakil').modal('toggle'); +} + + +function closeModal(){ + $('#shakil').modal('hide'); +} + +function whitepaper(){ + var win = window.open('english.pdf', '_blank'); +if (win) { + win.focus(); +} else { + alert('Please allow popups for this website'); +} +} + +var url = "https://amis-erc20-api.glitch.me/api"; +$.ajax({ + url: url + "/user/getTokenRemain", + type: "get", + + data: { + + }, + success: function (response) { + + console.log(response); + + var percentage = response.message; + var elem = document.getElementById('progress-bar'); + var elem2 = document.getElementById('progress-bar2'); + console.log(percentage); + elem.style.width = percentage + "%"; + elem2.style.width = percentage + "%"; + }, + error: function (xhr) { + console.log(error); + if (xhr.status == 400) { + } + else { + } + }, + async: false +}); From 5c5ec1db2640b99eb87ed94e235c75f5a53cbbc9 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 06:42:25 +0100 Subject: [PATCH 80/98] Update custom.js --- amisforum/live/js/custom.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index f28da1a..c9244a7 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -297,8 +297,18 @@ employees = { { "id":"1", "name":"Amisolution", - "designation":"Social Media and Community Manager", - "description":"Short description needed.", + "designation":"Founder and investor", + "description":`Short description needed. + `, + "pictureURL":"images/photo1.png", + "linkedIn":"https://www.linkedin.com/in/ " + + }, + { + "id":"2", + "name":"Amisolution", + "designation":"AMI Solution Product Development", + "description":`Short description needed. `, "pictureURL":"images/photo1.jpg", "linkedIn":"https://www.linkedin.com/in/" From 59649447868a818a87db0a1e227d79705baa5d90 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 06:52:17 +0100 Subject: [PATCH 81/98] Update custom.js --- amisforum/live/js/custom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amisforum/live/js/custom.js b/amisforum/live/js/custom.js index c9244a7..47eac1d 100644 --- a/amisforum/live/js/custom.js +++ b/amisforum/live/js/custom.js @@ -1,5 +1,5 @@ // Set the date we're counting down to -var countDownDate = new Date("Jul 01, 2018 15:37:25").getTime(); +var countDownDate = new Date("Nov 03, 2020 15:37:25").getTime(); var url = "https://amis-erc20-api.glitch.me/ERC20Tokens/amis" From cdde9bd93b4d84670461b38fc81a10f0302edfbc Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 07:13:40 +0100 Subject: [PATCH 82/98] Update index.html --- amisforum/live/index.html | 93 +-------------------------------------- 1 file changed, 2 insertions(+), 91 deletions(-) diff --git a/amisforum/live/index.html b/amisforum/live/index.html index 9be6dae..f1ef8c9 100644 --- a/amisforum/live/index.html +++ b/amisforum/live/index.html @@ -123,7 +123,7 @@
-

- +
-
- - - -
-
- - - -
-
- - - -
-
- - - -
@@ -1494,24 +1440,6 @@

-
- -
-
- -
-
-
-

Laurent G

-

Founder & Investor

-
-
-
@@ -2011,23 +1939,6 @@

JOIN THE AMIS FORUM COMMUNITY

-
- +
    @@ -787,7 +787,7 @@

    AMIS DELTA DEX FORUM LIVE
    @@ -844,21 +844,11 @@

    AMIS DELTA DEX FORUM LIVE

    -
    - - - -
    -
    - - - -
    @@ -908,24 +898,6 @@

    AMIS DELTA DEX FORUM LIVE

-
- -
-
-
-
-
-
-
- - - -
-
@@ -1015,34 +987,12 @@

News & Press Release

-
- -
- - - -
- -
+
-
- - - -
-
- - - -
-
- - - -
+
@@ -1072,7 +1022,7 @@

News & Press Release

The AMIS TOKEN will act as a transactional vehicle on the AMIS DELTA DEX platform

- BUY/SELL AMIS TOKENS + BUY/SELL AMIS TOKENS

@@ -1562,8 +1512,7 @@

THE ADVISORY BOARD

From 9a6ca93ba54b8bbbe5c73f83486991df7609fb56 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 13:09:57 +0100 Subject: [PATCH 86/98] Create circulatingSupply.md --- circulatingSupply.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 circulatingSupply.md diff --git a/circulatingSupply.md b/circulatingSupply.md new file mode 100644 index 0000000..250d0e9 --- /dev/null +++ b/circulatingSupply.md @@ -0,0 +1 @@ +{"addr":"0x949bEd886c739f1A3273629b3320db0C5024c719","decimals":9,"description":"The AMIS designate Asset Management Instrument Solutions acting as one-stop shop Multi-dimensional, multi-purposes fast moving, versatile transactional vehicles running on the ethereum blockchain natively but also on Saturn, BitShares and Waves cascaded blockchains.","links":[{"Blog":"https://medium.com/@amis_erc20"},{"Bitcointalk":"https://bitcointalk.org/index.php?topic=1816765.0"},{"Email":"mailto:info@amisolution.net"},{"Facebook":"https://www.facebook.com/amis.erc20/"},{"Reddit":"https://www.reddit.com/r/amis_erc20/"},{"Telegram":"https://t.me/amis.token"},{"Twitter":"https://twitter.com/amis_erc20"},{"Website":"http://erc20-amis.amisolution.net/"}],"name":"AMIS","symbol":"AMIS","circulatingSupply":"13833987","numberOfExchanges":"6","numberOfMarkets":"6","totalReserve":"5846014.484763184","totalBurnt":"320000","circulatingSupplyBurntExcluded":"14153986","circulatingSupplyWithDecimals":"13833986.515236816","totalSupply":"20000000","image":"https://raw.githubusercontent.com/TrustWallet/tokens/master/images/amis.png"} From ecb787312623bba7a114a898b7e0b134ed51cd74 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 13:33:44 +0100 Subject: [PATCH 87/98] Update and rename circulatingSupply.md to circulatingSupplyWithDecimals.md --- circulatingSupply.md | 1 - circulatingSupplyWithDecimals.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 circulatingSupply.md create mode 100644 circulatingSupplyWithDecimals.md diff --git a/circulatingSupply.md b/circulatingSupply.md deleted file mode 100644 index 250d0e9..0000000 --- a/circulatingSupply.md +++ /dev/null @@ -1 +0,0 @@ -{"addr":"0x949bEd886c739f1A3273629b3320db0C5024c719","decimals":9,"description":"The AMIS designate Asset Management Instrument Solutions acting as one-stop shop Multi-dimensional, multi-purposes fast moving, versatile transactional vehicles running on the ethereum blockchain natively but also on Saturn, BitShares and Waves cascaded blockchains.","links":[{"Blog":"https://medium.com/@amis_erc20"},{"Bitcointalk":"https://bitcointalk.org/index.php?topic=1816765.0"},{"Email":"mailto:info@amisolution.net"},{"Facebook":"https://www.facebook.com/amis.erc20/"},{"Reddit":"https://www.reddit.com/r/amis_erc20/"},{"Telegram":"https://t.me/amis.token"},{"Twitter":"https://twitter.com/amis_erc20"},{"Website":"http://erc20-amis.amisolution.net/"}],"name":"AMIS","symbol":"AMIS","circulatingSupply":"13833987","numberOfExchanges":"6","numberOfMarkets":"6","totalReserve":"5846014.484763184","totalBurnt":"320000","circulatingSupplyBurntExcluded":"14153986","circulatingSupplyWithDecimals":"13833986.515236816","totalSupply":"20000000","image":"https://raw.githubusercontent.com/TrustWallet/tokens/master/images/amis.png"} diff --git a/circulatingSupplyWithDecimals.md b/circulatingSupplyWithDecimals.md new file mode 100644 index 0000000..9cd89a5 --- /dev/null +++ b/circulatingSupplyWithDecimals.md @@ -0,0 +1 @@ +{"addr":"0x949bEd886c739f1A3273629b3320db0C5024c719","decimals":9,"name":"AMIS","symbol":"AMIS","circulatingSupplyWithDecimals":"13,833,986.515236816","totalSupply":"20,000,000.000000000","image":"https://raw.githubusercontent.com/TrustWallet/tokens/master/images/amis.png"} From 5eabf2ccf0df3cba0af8cd6e48a13f8ca1377a41 Mon Sep 17 00:00:00 2001 From: amisolution Date: Fri, 28 Feb 2020 13:39:05 +0100 Subject: [PATCH 88/98] Create circulatingSupply.md --- circulatingSupply.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 circulatingSupply.md diff --git a/circulatingSupply.md b/circulatingSupply.md new file mode 100644 index 0000000..7658bce --- /dev/null +++ b/circulatingSupply.md @@ -0,0 +1 @@ +{"addr":"0x949bEd886c739f1A3273629b3320db0C5024c719","decimals":9,"name":"AMIS","symbol":"AMIS","circulatingSupply":"13833986515236816","totalSupply":"20000000000000000","image":"https://raw.githubusercontent.com/TrustWallet/tokens/master/images/amis.png"} From cc179deb7fe7a9bac9ea8c1fe66eacae7c1f0eb6 Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 16 Aug 2020 13:04:53 +0200 Subject: [PATCH 89/98] Update index.js --- airdrop/index.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/airdrop/index.js b/airdrop/index.js index e6378b2..becae68 100644 --- a/airdrop/index.js +++ b/airdrop/index.js @@ -6,11 +6,11 @@ console.log(web3.isConnected()); abi = JSON.parse('[{"constant":true,"inputs":[],"name":"maxDropsPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newBonus","type":"uint256"}],"name":"setBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddr","type":"address"}],"name":"banToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addressOfToken","type":"address"}],"name":"tokenHasFreeTrial","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_bonusDrops","type":"uint256"}],"name":"grantBonusDrops","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newRate","type":"uint256"}],"name":"setRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDropsMade","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMaxDropsPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenIsBanned","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getTotalDropsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"}],"name":"issueRefunds","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"trialDrops","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getDropsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressOfToken","type":"address"},{"name":"_recipients","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"multiValueAirdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bonusDropsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressOfToken","type":"address"},{"name":"_recipients","type":"address[]"},{"name":"_value","type":"uint256"}],"name":"singleValueAirdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getBonusDropsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dropUnitPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addressOfToken","type":"address"}],"name":"getRemainingTrialDrops","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getEthBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressOfToken","type":"address"},{"name":"_recipient","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdrawERC20Tokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTrialDrops","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_eth","type":"uint256"}],"name":"withdrawEth","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_bonusDrops","type":"uint256"}],"name":"revokeBonusCreditOf","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalDropsMade","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_addressOfToken","type":"address"}],"name":"getTokenAllowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxDrops","type":"uint256"}],"name":"setMaxDrops","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddr","type":"address"}],"name":"unbanToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"credit","type":"uint256"}],"name":"BonusCreditGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"credit","type":"uint256"}],"name":"BonusCreditRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":false,"name":"etherValue","type":"uint256"},{"indexed":false,"name":"credit","type":"uint256"}],"name":"CreditPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":false,"name":"creditConsumed","type":"uint256"}],"name":"AirdropInvoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"BonustChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenAddress","type":"address"}],"name":"TokenBanned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenAddress","type":"address"}],"name":"TokenUnbanned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"by","type":"address"},{"indexed":false,"name":"totalWei","type":"uint256"}],"name":"EthWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"RateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"MaxDropsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"totalWei","type":"uint256"}],"name":"RefundIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"sentTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ERC20TokensWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]'); var OneStopAirdrop = web3.eth.contract(abi); -var contractAddress = '0x8F3f14d8C8db1D544404Ab2A2273dB97740a8eb7'; +var contractAddress = '0xEB5d54Cb6cB56B99C7784A5f77Cb15df95c55F05'; var contractInstance = OneStopAirdrop.at(contractAddress); -var etherscanTxUrl = "https://etherscan.io/tx/0x8F3f14d8C8db1D544404Ab2A2273dB97740a8eb7"; -var etherscanUrl = "https://etherscan.io/address/0x8F3f14d8C8db1D544404Ab2A2273dB97740a8eb7#code"; +var etherscanTxUrl = "https://blockscout.com/etc/mainnet/tx/0xfd6c9bb205c393c650fba177d96f0f60d1bb3d6e9ebcb465ed4fd18f68551faa"; +var etherscanUrl = "https://blockscout.com/etc/mainnet/address/0xEB5d54Cb6cB56B99C7784A5f77Cb15df95c55F05/contracts"; web3.version.getNetwork((err, netId) => { @@ -42,6 +42,10 @@ web3.version.getNetwork((err, netId) => { //TODO ADD contractAddress = kovan address https://kovan.etherscan.io/address/0x6328426be01834de85ec0c10e3e940e629290bb1 break; + case "61": + $('#network').text("ETC Mainnet"); + contractAddress = '0xEB5d54Cb6cB56B99C7784A5f77Cb15df95c55F05'; + break; default: $('#network').text("NETWORK: UNKNOWN"); //TODO ADD contractAddress = undefined @@ -121,9 +125,9 @@ function withdrawEth() { } contractInstance.withdrawEth(ETH * (10 ** 18), {from: web3.eth.accounts[0], gasPrice: safeLowGasPrice * (10 ** 9)}, ((error, result) => { if(!error) { - console.log("ETH WITHDRAWN: " + balance); + console.log("ETH/ETC WITHDRAWN: " + balance); } else { - console.log("FAILED TO WITHDRAW ETH"); + console.log("FAILED TO WITHDRAW ETH/ETC"); } })) } @@ -452,7 +456,7 @@ function getEthBalance() { $('#balance').text("BALANCE: " + web3.fromWei(result, 'ether') + " ETH"); $('#user_balance').text("AVAILABLE BALANCE: " + web3.fromWei(result, 'ether') + " ETH"); } else { - console.log("FAILED TO GET ETH BALANCE"); + console.log("FAILED TO GET ETH/ETC BALANCE"); } })) } @@ -521,4 +525,4 @@ $(document).ready(function() { $('#contract').click(function() { window.open(etherscanUrl, '_blank'); -}); \ No newline at end of file +}); From 83c1cb0ca3ec0820a2023c14cf439af966cf1eca Mon Sep 17 00:00:00 2001 From: amisolution Date: Sun, 16 Aug 2020 13:07:34 +0200 Subject: [PATCH 90/98] Update index.html --- airdrop/index.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/airdrop/index.html b/airdrop/index.html index 2279f9c..09d5a61 100644 --- a/airdrop/index.html +++ b/airdrop/index.html @@ -90,15 +90,15 @@